<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Welcome on Kubernetes Contributors</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/</link><description>Recent content in Welcome on Kubernetes Contributors</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 28 Jul 2026 10:00:00 -0800</lastBuildDate><atom:link href="https://deploy-preview-846--kubernetes-contributor.netlify.app/index.xml" rel="self" type="application/rss+xml"/><item><title>Kubernetes Meet and Greet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2026/kcseu/meet-and-greet/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2026/kcseu/meet-and-greet/</guid><description>&lt;h3 id="about">About&lt;/h3>
&lt;p>Grab your lunch and come join the &lt;a href="https://sched.co/2H66n"
 
 target="_blank" rel="noopener">Kubernetes Meet and Greet&lt;/a>
! This event is for SIGs and WGs, new and experienced contributors. We will have representatives from many SIG / WG to answer questions and talk more about how to get involved.&lt;/p>
&lt;p>The Kubernetes M&amp;amp;G is for both:&lt;/p>
&lt;ul>
&lt;li>Experienced Kubernetes contributors who are interested in expanding their involvement in new SIGs / WGs, or just hanging out with their SIG/WG collaborators.&lt;/li>
&lt;li>New contributors who are looking for where they can contribute to Kubernetes&lt;/li>
&lt;/ul>
&lt;h3 id="details">Details&lt;/h3>
&lt;p>The &lt;a href="https://sched.co/2H66n"
 
 target="_blank" rel="noopener">Kubernetes Meet and Greet&lt;/a>
 will take place on Wednesday, March 25, from noon to 3pm, in the Europe Foyer.&lt;/p></description></item><item><title>Maintainer Summit Europe 2026</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2026/kcseu/maintainer-summit-eu/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2026/kcseu/maintainer-summit-eu/</guid><description>&lt;h3 id="about">About&lt;/h3>
&lt;p>The European edition of the Maintainer Summit will take place on &lt;strong>Sunday, March 22, 2026&lt;/strong>, in Amsterdam, Netherlands, alongside
&lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/" rel="noopener noreferrer" target="_blank">KubeCon + CloudNativeCon Europe 2026&lt;/a>.&lt;/p>
&lt;p>The Summit is a dedicated day for maintainers to collaborate in person. The event will feature:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Submitted Talks:&lt;/strong> Technical deep dives and project health updates.&lt;/li>
&lt;li>&lt;strong>Unconference Sessions:&lt;/strong> Open-space discussions for spontaneous problem-solving and SIG alignment.&lt;/li>
&lt;li>&lt;strong>Documentation Sprint:&lt;/strong> A collaborative session focused on improving project resources.&lt;/li>
&lt;li>&lt;strong>Contributor Social:&lt;/strong> An evening of games and networking following the technical tracks.&lt;/li>
&lt;/ul>
&lt;h3 id="-schedule--participation">📅 Schedule &amp;amp; Participation&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Volunteer &amp;amp; Staffing:&lt;/strong> If you are interested in volunteering or staffing for this event, please see &lt;a href="https://github.com/kubernetes/community/issues/8819"
 
 target="_blank" rel="noopener">kubernetes/community#8819&lt;/a>
.&lt;/li>
&lt;li>&lt;strong>Call for Proposals (CFP):&lt;/strong> Check the &lt;a href="https://maintainersummiteu2026.sched.com/"
 
 target="_blank" rel="noopener">event schedule&lt;/a>
 for submission deadlines.&lt;/li>
&lt;li>&lt;strong>Registration:&lt;/strong> &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/features-add-ons/maintainer-summit/#registration"
 
 target="_blank" rel="noopener">Register here&lt;/a>
.&lt;/li>
&lt;/ul>
&lt;h3 id="eligibility">Eligibility&lt;/h3>
&lt;p>Who can attend Maintainer Summit?&lt;/p></description></item><item><title>2019 Awards</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2019/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2019/</guid><description>&lt;p>By Special Interest Group (SIG)&lt;/p>
&lt;h4 id="sig-cloud-provider">SIG Cloud Provider&lt;/h4>
&lt;ul>
&lt;li>Lubomir Ivanov&lt;/li>
&lt;/ul>
&lt;h4 id="sig-instrumentation">SIG Instrumentation&lt;/h4>
&lt;ul>
&lt;li>Han Kang&lt;/li>
&lt;/ul>
&lt;h4 id="sig-release">SIG Release&lt;/h4>
&lt;ul>
&lt;li>Katharine Berry&lt;/li>
&lt;/ul>
&lt;h4 id="sig-scheduling">SIG Scheduling&lt;/h4>
&lt;ul>
&lt;li>Huang Wei&lt;/li>
&lt;/ul>
&lt;h4 id="sig-storage">SIG Storage&lt;/h4>
&lt;ul>
&lt;li>Michelle Au&lt;/li>
&lt;/ul>
&lt;h4 id="sig-windows">SIG Windows&lt;/h4>
&lt;ul>
&lt;li>Jordan Liggitt&lt;/li>
&lt;/ul>
&lt;h4 id="wg-multitenancy">WG Multitenancy&lt;/h4>
&lt;ul>
&lt;li>Ryan Bezdicek&lt;/li>
&lt;/ul></description></item><item><title>2020 Awards</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2020/</guid><description>&lt;p>By Special Interest Group (SIG)&lt;/p>
&lt;h4 id="api-machinery">API Machinery&lt;/h4>
&lt;ul>
&lt;li>Haowei Cai&lt;/li>
&lt;li>Chao Xu&lt;/li>
&lt;/ul>
&lt;h4 id="architecture">Architecture&lt;/h4>
&lt;ul>
&lt;li>Hippie Hacker&lt;/li>
&lt;li>Michelle Au&lt;/li>
&lt;li>Dawn Chen&lt;/li>
&lt;li>Paris Pittman&lt;/li>
&lt;/ul>
&lt;h4 id="authentication">Authentication&lt;/h4>
&lt;ul>
&lt;li>Shihang Zhang&lt;/li>
&lt;/ul>
&lt;h4 id="cli">CLI&lt;/h4>
&lt;ul>
&lt;li>Yao Zhou&lt;/li>
&lt;li>Brian Pursely&lt;/li>
&lt;li>Syam Sundar Kirubakaran&lt;/li>
&lt;/ul>
&lt;h4 id="cloud-provider">Cloud Provider&lt;/h4>
&lt;ul>
&lt;li>Cici Huang&lt;/li>
&lt;/ul>
&lt;h4 id="contributor-experience">Contributor Experience&lt;/h4>
&lt;ul>
&lt;li>Matthew Broberg&lt;/li>
&lt;li>Kaslin Fields&lt;/li>
&lt;li>Noah Kantrowitz&lt;/li>
&lt;li>Rajula Vineet Reddy&lt;/li>
&lt;/ul>
&lt;h4 id="cluster-lifecycle">Cluster Lifecycle&lt;/h4>
&lt;ul>
&lt;li>Ciprian Hacman&lt;/li>
&lt;li>John Gardiner Myers&lt;/li>
&lt;li>Ole Markus&lt;/li>
&lt;/ul>
&lt;h3 id="documentation">Documentation&lt;/h3>
&lt;ul>
&lt;li>Tim Bannister&lt;/li>
&lt;li>Qiming Teng&lt;/li>
&lt;li>Zachary Sarah Corleissen&lt;/li>
&lt;/ul>
&lt;h4 id="instrumentation">Instrumentation&lt;/h4>
&lt;ul>
&lt;li>Hongcai Ren&lt;/li>
&lt;li>Lili Cosic&lt;/li>
&lt;li>Marek Siarkowicz&lt;/li>
&lt;/ul>
&lt;h4 id="network">Network&lt;/h4>
&lt;ul>
&lt;li>Antonio Ojea&lt;/li>
&lt;li>Jay Vyas&lt;/li>
&lt;/ul>
&lt;h4 id="release">Release&lt;/h4>
&lt;ul>
&lt;li>Joyce Kung&lt;/li>
&lt;li>Daniel Mangum&lt;/li>
&lt;/ul>
&lt;h4 id="scheduling">Scheduling&lt;/h4>
&lt;ul>
&lt;li>Aldo Culquicondor&lt;/li>
&lt;/ul>
&lt;h4 id="storage">Storage&lt;/h4>
&lt;ul>
&lt;li>Patrick Ohly&lt;/li>
&lt;/ul>
&lt;h4 id="testing">Testing&lt;/h4>
&lt;ul>
&lt;li>Antonio Ojea&lt;/li>
&lt;li>Daniel Magnum&lt;/li>
&lt;/ul>
&lt;h4 id="usability">Usability&lt;/h4>
&lt;ul>
&lt;li>Gaby Moreno Cesar&lt;/li>
&lt;li>Carl J Pearson&lt;/li>
&lt;li>Josie Pynadath&lt;/li>
&lt;/ul>
&lt;h4 id="windows">Windows&lt;/h4>
&lt;ul>
&lt;li>James Sturtevant&lt;/li>
&lt;/ul></description></item><item><title>2021 Awards</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2021/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2021/</guid><description>&lt;p>By Special Interest Group (SIG) with listed message/nomination reason&lt;/p>
&lt;h4 id="api-machinery">API Machinery&lt;/h4>
&lt;p>&lt;em>Han Kang, @logicalhan&lt;/em>&lt;br>
For their continued contributions related to the overlap with SIG Instrumentation.&lt;/p>
&lt;p>&lt;em>Antoine Pelisse&lt;/em>&lt;br>
For their long term effort and leadership on server-side-apply and the related wg-api-expression.&lt;/p>
&lt;h4 id="apps">Apps&lt;/h4>
&lt;p>&lt;em>Aldo Culquicondor&lt;/em>&lt;br>
For improving the jobs controller, expanding its functionality&lt;/p>
&lt;h4 id="architecture">Architecture&lt;/h4>
&lt;p>&lt;em>Riaan Kleinhans&lt;/em>&lt;br>
Conformance Work&lt;/p>
&lt;p>&lt;em>Madhav Jivrajani&lt;/em>&lt;br>
KEP Reading Club&lt;/p>
&lt;p>&lt;em>Kirsten Garrison, @kikisdeliveryservice&lt;/em>&lt;br>
Enhancements Subproject&lt;/p>
&lt;p>&lt;em>Elana Hashman, @ehashdn&lt;/em>&lt;br>
Production Readiness Reviews&lt;/p></description></item><item><title>2022 Awards</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2022/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2022/</guid><description>&lt;p>By Special Interest Group (SIG) with listed message/nomination reason&lt;/p>
&lt;h4 id="api-machinery">API Machinery&lt;/h4>
&lt;p>&lt;em>Joe Betz, &lt;a href="https://github.com/jpbetz"
 
 target="_blank" rel="noopener">@jpbetz&lt;/a>
&lt;/em>&lt;br>
For his leadership and contributions introducing CEL as a powerful feature for Kubernetes, and leading the strategy and execution of all the subsequent projects like CRD Validation, Admission Control, and more to come.&lt;/p>
&lt;p>&lt;em>Antonio Ojea, &lt;a href="https://github.com/aojea"
 
 target="_blank" rel="noopener">@aojea&lt;/a>
&lt;/em>&lt;br>
For the long list of sustained contributions, especially for the cross-over from networking to apimachinery/client-go, picking up bug fixes, backports, and code reviews.&lt;/p></description></item><item><title>2023 Awards</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2023/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2023/</guid><description>&lt;p>By Special Interest Group (SIG) with listed message/nomination reason&lt;/p>
&lt;h4 id="api-machinery">API Machinery&lt;/h4>
&lt;p>&lt;em>Mike Spreitzer, &lt;a href="https://github.com/MikeSpreitzer"
 
 target="_blank" rel="noopener">@MikeSpreitzer&lt;/a>
&lt;/em>&lt;br>
For his continued contributions and relentless effort in designing, leading, implementing, and refining priority and fairness for the kube-apiserver.&lt;/p>
&lt;p>&lt;em>Jeffrey Ying, &lt;a href="https://github.com/Jefftree"
 
 target="_blank" rel="noopener">@Jefftree&lt;/a>
&lt;/em>&lt;br>
For his design and implementation work for aggregated discovery which improves all discovering clients for his design and implementation work for aggregated discovery which improves all discovering REST clients.&lt;/p>
&lt;h4 id="apps">Apps&lt;/h4>
&lt;p>&lt;em>Michał Woźniak, &lt;a href="https://github.com/mimowo"
 
 target="_blank" rel="noopener">@mimowo&lt;/a>
&lt;/em>&lt;br>
Michał has been consistently contributing improvements and fixes to the job controller to improve its usage in various batch workloads.&lt;/p></description></item><item><title>2024 Awards</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2024/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2024/</guid><description>&lt;p>By Special Interest Group (SIG) with listed message/nomination reason&lt;/p>
&lt;h4 id="api-machinery">API Machinery&lt;/h4>
&lt;p>&lt;em>Marek Siarkowicz, &lt;a href="https://github.com/serathius"
 
 target="_blank" rel="noopener">@serathius&lt;/a>
&lt;/em>&lt;br>
Marek’s contributions to the Consistent Reads from Cache project over the past few years have been truly inspiring. This initiative required deep expertise in both etcd and Kubernetes, coupled with a steadfast determination to see it through to completion. Marek’s work has led to one of the most significant scalability improvements in recent years. Without his dedication and skill, this achievement would not have been possible.&lt;/p></description></item><item><title>2025 Awards</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2025/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/awards/2025/</guid><description>&lt;p>By Special Interest Group (SIG) with listed message/nomination reason&lt;/p>
&lt;h4 id="api-machinery">API Machinery&lt;/h4>
&lt;p>&lt;em>Aaron Prindle, &lt;a href="https://github.com/aaron-prindle"
 
 target="_blank" rel="noopener">@aaron-prindle&lt;/a>
&lt;/em>&lt;br>
Aaron has been a driving force behind the new declarative validation framework in Kubernetes. His leadership and technical contributions to KEP-5073, which introduces validation-gen, have been instrumental in moving Kubernetes API validation from complex, handwritten Go code to a more maintainable and author-friendly declarative model. Over the last year, Aaron&amp;rsquo;s work has established the foundational infrastructure for this transition, including the creation of the validation-gen code generator. This work significantly lowers the barrier for new contributors and improves the overall quality and consistency of the Kubernetes API, making it a more robust and accessible project for the entire community.&lt;/p></description></item><item><title>Community Calendar</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/calendar/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/calendar/</guid><description>&lt;p>&lt;em>Displayed times are in your local timezone&lt;/em>&lt;/p>
&lt;div class="calendar-container">

 &lt;div id="calendar">&lt;/div>
 
&lt;/div></description></item><item><title>How to Join</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/how-to-join/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/how-to-join/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP0MPeiM9oAffsxtrUgUAu1g"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;p>The celebration and all the activities will all take place on the official
Kubernetes &lt;a href="https://discord.com/"
 
 target="_blank" rel="noopener">Discord&lt;/a>
 server with major events being streamed to the
&lt;a href="https://youtube.com/kubernetescommunity"
 
 target="_blank" rel="noopener">Kubernetes YouTube Channel&lt;/a>
.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#register-for-the-event"
 
 >Register for the event&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#connecting-to-discord"
 
 >Connecting to Discord&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#create-and-verify-your-account"
 
 >Create and verify your account&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#connecting-to-the-server"
 
 >Connecting to the server&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tips-and-suggestions-for-using-discord"
 
 >Tips and suggestions for using Discord&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#managing-audio"
 
 >Managing audio&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sharing-your-screen-or-video"
 
 >Sharing your screen or video&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting-your-audiovideo-settings"
 
 >Troubleshooting your audio/video settings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-to-get-help"
 
 >Where to get help&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="register-for-the-event">Register for the event&lt;/h2>
&lt;p>Invites will be sent to people that &lt;a href="https://forms.gle/51tqQgxuHxLaeU1P8"
 
 target="_blank" rel="noopener">register&lt;/a>
 on Thursday, December 10th. If you
register after that date, an invite will be sent shortly after you&amp;rsquo;ve signed up.&lt;/p></description></item><item><title>How to Join</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/how-to-join/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/how-to-join/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP1nRmC5ks6szxfDN69ZZFcS"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;p>The celebration and all the activities will all take place on the official
Kubernetes &lt;a href="https://discord.com/"
 
 target="_blank" rel="noopener">Discord&lt;/a>
 server with major events being streamed to the
&lt;a href="https://youtube.com/kubernetescommunity"
 
 target="_blank" rel="noopener">Kubernetes YouTube Channel&lt;/a>
.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#register-for-the-event"
 
 >Register for the event&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#connecting-to-discord"
 
 >Connecting to Discord&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#create-and-verify-your-account"
 
 >Create and verify your account&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#connecting-to-the-server"
 
 >Connecting to the server&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tips-and-suggestions-for-using-discord"
 
 >Tips and suggestions for using Discord&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#managing-audio"
 
 >Managing audio&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sharing-your-screen-or-video"
 
 >Sharing your screen or video&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting-your-audiovideo-settings"
 
 >Troubleshooting your audio/video settings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-to-get-help"
 
 >Where to get help&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="register-for-the-event">Register for the event&lt;/h2>
&lt;p>Invites will be sent to people that &lt;a href="https://forms.gle/oAppmLDggEEGx5tz5"
 
 target="_blank" rel="noopener">register&lt;/a>
 closer to the event.&lt;/p></description></item><item><title>Section 1: Starting Out</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/01-starting-out/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/01-starting-out/</guid><description>&lt;h2 id="welcome-to-kubernetes">Welcome to Kubernetes!&lt;/h2>
&lt;p>Welcome to the New Contributor course for Kubernetes!&lt;/p>
&lt;hr>
&lt;h2 id="section-1-starting-out">Section 1: Starting Out&lt;/h2>
&lt;p>Each unit of this course consists of a slideshow and links to resources. Take your time reading the materials, and feel free to reach out to the community with questions.&lt;/p>
&lt;p>We look forward to your contributions!&lt;/p>
&lt;hr>
&lt;h2 id="what-you-are-about-to-learn">What you are about to learn&lt;/h2>
&lt;p>This first unit is all about starting out in the Kubernetes community. By the end of this unit, you will:&lt;/p></description></item><item><title>Services and Requests</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/services/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/services/</guid><description>&lt;ul>
&lt;li>&lt;a href="#github-requests"
 
 >GitHub requests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#organization-membership"
 
 >Organization membership&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#team-membership"
 
 >Team membership&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#repo-requests"
 
 >Repo requests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#communication-platform-and-services"
 
 >Communication platform and services&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#contributor-communications"
 
 >Contributor communications&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mailing-lists"
 
 >Mailing lists&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#slack"
 
 >Slack&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#surveys"
 
 >Surveys&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#youtube"
 
 >YouTube&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#zoom"
 
 >Zoom&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#other"
 
 >Other&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#netlify-websites"
 
 >Netlify websites&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#funding"
 
 >Funding&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="github-requests">GitHub requests&lt;/h2>
&lt;h3 id="organization-membership">Organization membership&lt;/h3>
&lt;p>&lt;a href="https://git.k8s.io/community/community-membership.md"
 
 target="_blank" rel="noopener">Kubernetes GitHub Org members&lt;/a>
 should be actively contributing to the upstream
project, and should meet the general requirements outlined in the
&lt;a href="https://git.k8s.io/community/community-membership.md#member"
 
 target="_blank" rel="noopener">community membership guidelines&lt;/a>
.&lt;/p>
&lt;p>Org membership requests can be made using the &lt;a href="https://github.com/kubernetes/org/issues/new?assignees=&amp;amp;labels=area%2Fgithub-membership&amp;amp;template=membership.yml&amp;amp;title=REQUEST%3A&amp;#43;New&amp;#43;membership&amp;#43;for&amp;#43;%3Cyour-GH-handle%3E"
 
 target="_blank" rel="noopener">Org Membership Request&lt;/a>
 form in
the &lt;a href="https://github.com/kubernetes/org"
 
 target="_blank" rel="noopener">kubernetes/org&lt;/a>
 repo. Requests are often processed in batch once every 2-3
business days.&lt;/p></description></item><item><title>Contributor Cheatsheet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/contributor-cheatsheet/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/contributor-cheatsheet/</guid><description>&lt;p>&lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-de.md"
 
 target="_blank" rel="noopener">Deutsch&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-fr.md"
 
 target="_blank" rel="noopener">Français&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-id.md"
 
 target="_blank" rel="noopener">Bahasa Indonesia&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-ja.md"
 
 target="_blank" rel="noopener">日本語&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-ko.md"
 
 target="_blank" rel="noopener">한국어&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-pt.md"
 
 target="_blank" rel="noopener">Português&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-zh.md"
 
 target="_blank" rel="noopener">中文&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-uk.md"
 
 target="_blank" rel="noopener">Українська&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-it.md"
 
 target="_blank" rel="noopener">Italian&lt;/a>
 | &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/guide/contributor-cheatsheet/README-hi.md"
 
 target="_blank" rel="noopener">हिन्दी&lt;/a>
&lt;/p>
&lt;p>A list of common resources when contributing to Kubernetes, tips, tricks, and
common best practices used within the Kubernetes project. It is a &amp;ldquo;TL;DR&amp;rdquo; or
quick reference of useful information to make your GitHub contribution experience
better.&lt;/p>
&lt;p>&lt;strong>Table of Contents&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#helpful-resources"
 
 >Helpful Resources&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#getting-started"
 
 >Getting Started&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sigs-and-other-groups"
 
 >SIGs and Other Groups&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#community"
 
 >Community&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workflow"
 
 >Workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tests"
 
 >Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#important-email-aliases"
 
 >Important Email Aliases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-useful-links"
 
 >Other Useful Links&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#communicating-effectively-on-github"
 
 >Communicating Effectively on GitHub&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-to-be-excellent-to-each-other"
 
 >How to be Excellent to Each Other&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#examples-of-goodbad-communication"
 
 >Examples of Good/Bad Communication&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#submitting-a-contribution"
 
 >Submitting a Contribution&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#signing-the-cla"
 
 >Signing the CLA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#opening-and-responding-to-issues"
 
 >Opening and Responding to Issues&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#creating-an-issue"
 
 >Creating an Issue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#responding-to-an-issue"
 
 >Responding to an Issue&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#opening-a-pull-request"
 
 >Opening a Pull Request&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#creating-a-pull-request"
 
 >Creating a Pull Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-pr-description"
 
 >Example PR Description&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting-a-pull-request"
 
 >Troubleshooting a Pull Request&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#labels"
 
 >Labels&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#working-locally"
 
 >Working Locally&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#branch-strategy"
 
 >Branch Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adding-upstream"
 
 >Adding Upstream&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#keeping-your-fork-in-sync"
 
 >Keeping Your Fork in Sync&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#squashing-commits"
 
 >Squashing Commits&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="helpful-resources">Helpful Resources&lt;/h2>
&lt;h3 id="getting-started">Getting Started&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://www.kubernetes.dev/docs/onboarding"
 
 target="_blank" rel="noopener">Contributor Course&lt;/a>
 - &lt;strong>NEW&lt;/strong> - The E-Learning for Contributors course for Kubernetes!&lt;/li>
&lt;li>&lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide"
 
 >Contributor Guide&lt;/a>
 - Guide on how to begin contributing to Kubernetes
Project.&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/README.md"
 
 target="_blank" rel="noopener">Developer Guide&lt;/a>
 - Guide to contributing code directly to the Kubernetes
Project.&lt;/li>
&lt;li>&lt;a href="https://kubernetes.io/docs/reference/issues-security/security/"
 
 target="_blank" rel="noopener">Security and Disclosure Information&lt;/a>
 - Guide for reporting vulnerabilities
and the security release process.&lt;/li>
&lt;/ul>
&lt;h3 id="sigs-and-other-groups">SIGs and Other Groups&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://github.com/kubernetes/community/blob/main/sig-list.md"
 
 target="_blank" rel="noopener">Master Group List&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="community">Community&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://calendar.google.com/calendar/embed?src=calendar%40kubernetes.io"
 
 target="_blank" rel="noopener">Calendar&lt;/a>
 - View all the Kubernetes Community events (SIG/WG meetings,
events etc.)&lt;/li>
&lt;li>&lt;a href="https://groups.google.com/a/kubernetes.io/g/dev"
 
 target="_blank" rel="noopener">kubernetes-dev&lt;/a>
 - The Kubernetes development mailing list&lt;/li>
&lt;li>&lt;a href="https://discuss.kubernetes.io/"
 
 target="_blank" rel="noopener">Kubernetes Forum&lt;/a>
 - Official Kubernetes forum.&lt;/li>
&lt;li>&lt;a href="http://slack.k8s.io/"
 
 target="_blank" rel="noopener">Slack channels&lt;/a>
 - Official Kubernetes Slack.&lt;/li>
&lt;li>&lt;a href="https://stackoverflow.com/questions/tagged/kubernetes"
 
 target="_blank" rel="noopener">Stack Overflow&lt;/a>
 - A place to ask your Kubernetes end-user questions.&lt;/li>
&lt;li>&lt;a href="https://www.youtube.com/c/KubernetesCommunity/"
 
 target="_blank" rel="noopener">YouTube Channel&lt;/a>
 - Official channel for the Kubernetes community.&lt;/li>
&lt;/ul>
&lt;h3 id="workflow">Workflow&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://prow.k8s.io"
 
 target="_blank" rel="noopener">Prow&lt;/a>
 - Kubernetes CI/CD System.&lt;/li>
&lt;li>&lt;a href="https://sigs.k8s.io/prow/site/content/en/docs/components/core/tide/pr-authors.md"
 
 target="_blank" rel="noopener">Tide&lt;/a>
 - Prow plugin that manages merges and tests. &lt;a href="https://prow.k8s.io/tide"
 
 target="_blank" rel="noopener">Tide Dashboard&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://go.k8s.io/bot-commands"
 
 target="_blank" rel="noopener">Bot commands&lt;/a>
 - Commands used to interact with Kubernetes Bots (examples:
&lt;code>/cc&lt;/code>, &lt;code>/lgtm&lt;/code>, and &lt;code>/retest&lt;/code>)&lt;/li>
&lt;li>&lt;a href="https://go.k8s.io/github-labels"
 
 target="_blank" rel="noopener">GitHub labels&lt;/a>
 - List of labels used throughout the Kubernetes Project&lt;/li>
&lt;li>&lt;a href="https://cs.k8s.io/"
 
 target="_blank" rel="noopener">Kubernetes Code Search&lt;/a>
, maintained by &lt;a href="https://github.com/dims"
 
 target="_blank" rel="noopener">@dims&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="tests">Tests&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://prow.k8s.io"
 
 target="_blank" rel="noopener">Prow&lt;/a>
 - Kubernetes CI/CD System.&lt;/li>
&lt;li>&lt;a href="https://testgrid.k8s.io"
 
 target="_blank" rel="noopener">Test Grid&lt;/a>
 - View historical tests and their associated information.&lt;/li>
&lt;li>&lt;a href="https://go.k8s.io/triage"
 
 target="_blank" rel="noopener">Triage Dashboard&lt;/a>
 - Aggregates similar failures together for better
troubleshooting.&lt;/li>
&lt;/ul>
&lt;h3 id="important-email-aliases">Important Email Aliases&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="mailto:community@kubernetes.io"
 
 >community@kubernetes.io&lt;/a>
 - Mail someone on the community team (SIG Contributor
Experience) about a community issue.&lt;/li>
&lt;li>&lt;a href="mailto:conduct@kubernetes.io"
 
 >conduct@kubernetes.io&lt;/a>
 - Contact the Code of Conduct committee, private mailing
list.&lt;/li>
&lt;li>&lt;a href="mailto:github@kubernetes.io"
 
 >github@kubernetes.io&lt;/a>
 - Mail the &lt;a href="https://github.com/kubernetes/community/blob/main/github-management#github-administration-team"
 
 target="_blank" rel="noopener">GitHub Administration Team&lt;/a>
 privately,
for sensitive items.&lt;/li>
&lt;li>&lt;a href="mailto:steering@kubernetes.io"
 
 >steering@kubernetes.io&lt;/a>
 - Mail the steering committee. Public address with
public archive.&lt;/li>
&lt;li>&lt;a href="mailto:steering-private@kubernetes.io"
 
 >steering-private@kubernetes.io&lt;/a>
 - Mail the steering committee privately, for
sensitive items.&lt;/li>
&lt;li>&lt;a href="mailto:social@cncf.io"
 
 >social@cncf.io&lt;/a>
 - Contact the CNCF social team; blog, twitter account, and
other social properties.&lt;/li>
&lt;/ul>
&lt;h3 id="other-useful-links">Other Useful Links&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://k8s.devstats.cncf.io"
 
 target="_blank" rel="noopener">Developer Statistics&lt;/a>
 - View developer statistics for all CNCF managed
projects.&lt;/li>
&lt;li>&lt;a href="https://kubernetes.io/releases/patch-releases/"
 
 target="_blank" rel="noopener">Kubernetes Patch Release&lt;/a>
 Schedule and team contact information for Kubernetes patch releases.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="communicating-effectively-on-github">Communicating Effectively on GitHub&lt;/h2>
&lt;h3 id="how-to-be-excellent-to-each-other">How to be Excellent to Each Other&lt;/h3>
&lt;p>As a first step, familiarize yourself with the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct"
 
 >Code of Conduct&lt;/a>
.&lt;/p></description></item><item><title>Events and Activities</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/activities/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/activities/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP0MPeiM9oAffsxtrUgUAu1g"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;p>&lt;strong>NOTE:&lt;/strong> This list is not complete or final, there will be room for more :)&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#events"
 
 >Events&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-contributor-awards"
 
 >Kubernetes Contributor Awards&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#most-extreme-kubernetes-challenge---devops-party-game"
 
 >Most Extreme Kubernetes Challenge - DevOps Party Game&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-great-cloud-native-bake-off"
 
 >The Great Cloud Native Bake Off&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#party-games"
 
 >Party Games&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#among-us"
 
 >Among Us&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#animal-crossing"
 
 >Animal Crossing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#destiny-2"
 
 >Destiny 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fall-guys"
 
 >Fall Guys&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#skribblio"
 
 >skribbl.io&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#jackbox"
 
 >Jackbox&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#board-games"
 
 >Board Games&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#board-game-arena"
 
 >Board Game Arena&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dominion-online"
 
 >Dominion Online&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#jintekinet-netrunner"
 
 >Jinteki.net (Netrunner)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tabletopia"
 
 >Tabletopia&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#yucata"
 
 >Yucata&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#boiteajeux"
 
 >Boiteajeux&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tabletop-simulator"
 
 >Tabletop Simulator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#wingspan"
 
 >Wingspan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#race-for-the-galaxy"
 
 >Race For The Galaxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#terraforming-mars"
 
 >Terraforming Mars&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ticket-to-ride"
 
 >Ticket To Ride&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sentinels-of-the-multiverse"
 
 >Sentinels Of The Multiverse&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#roll-for-the-galaxy"
 
 >Roll For The Galaxy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#virtual-photobooth"
 
 >Virtual Photobooth&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h2 id="events">Events&lt;/h2>
&lt;h3 id="kubernetes-contributor-awards">Kubernetes Contributor Awards&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="https://sched.co/gC19"
 
 target="_blank" rel="noopener">Session link&lt;/a>
&lt;/li>
&lt;/ul>
&lt;p>Kubernetes SIG Co-Chairs and Tech Leads would like for you to attend this special
event where we honor and dedicate the hard work that the community has been
working on. These peer awards are a tradition at the Kubernetes Contributor
Summits so we are bringing them virtual, please join us to thank and support all
the people who have worked hard to help us this year.&lt;/p></description></item><item><title>Events and Activities</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/activities/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/activities/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP1nRmC5ks6szxfDN69ZZFcS"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;p>&lt;strong>NOTE:&lt;/strong> This list is not complete or final, there will be room for more :)&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#events"
 
 >Events&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-contributor-awards"
 
 >Kubernetes Contributor Awards&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#most-extreme-kubernetes-challenge---devops-party-game"
 
 >Most Extreme Kubernetes Challenge - DevOps Party Game&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cloud-native-community-cookbook---kiwi-hackbach-edition"
 
 >Cloud Native Community Cookbook - Hackbach Edition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#krafternetes"
 
 >Krafternetes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-the-tabletop-rpg"
 
 >Kubernetes the Tabletop RPG&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="events">Events&lt;/h2>
&lt;h3 id="kubernetes-contributor-awards">Kubernetes Contributor Awards&lt;/h3>
&lt;p>Kubernetes SIG Co-Chairs and Tech Leads would like for you to attend this special
event where we honor and dedicate the hard work that the community has been
working on. These peer awards are a tradition at the Kubernetes Contributor
Summits so we are bringing them virtual, please join us to thank and support all
the people who have worked hard to help us this year.&lt;/p></description></item><item><title>Kubernetes Community Values</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/values/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/values/</guid><description>&lt;p>Kubernetes Community culture contributes substantially to the project&amp;rsquo;s success. The following values have evolved over time, pushing our project and peers toward constant improvement.&lt;/p>
&lt;h2 id="distribution-is-better-than-centralization">Distribution is better than centralization&lt;/h2>
&lt;p>The scale of the Kubernetes project is only viable through high-trust and high-visibility distribution of work, which includes delegation of authority, decision making, technical design, code ownership, and documentation. Distributed asynchronous ownership, collaboration, communication and decision making are the cornerstones of our world-wide community.&lt;/p></description></item><item><title>Registration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/registration/</guid><description>&lt;p>Registration is open to all members of one of the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/faq/#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Kubernetes orgs&lt;/a>
 or sponsored
attendees.&lt;/p>
&lt;p>&lt;b>&lt;a href="https://cvent.me/384mb9" rel="noopener noreferrer" target="_blank">Register Here&lt;/a>&lt;/b>&lt;/p>
&lt;p>If you are not yet a member, but active within the project, please consider
joining! The process of joining is straight forward. See our &lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>

docs for more information. If your application to join is pending, please
contact us at &lt;a href="mailto:community@kubernetes.io"
 
 >community@kubernetes.io&lt;/a>
 about registering.&lt;/p>
&lt;p>&lt;strong>NOTE:&lt;/strong> The summit adheres to KubeCon’s &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/attend/health-and-safety/"
 
 target="_blank" rel="noopener">Health &amp;amp; Safety Guidelines&lt;/a>
 requiring
&lt;strong>ALL&lt;/strong> in-person attendees to be fully vaccinated against the COVID-19 virus.&lt;/p></description></item><item><title>Registration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/registration/</guid><description>&lt;p>Registration is open to all members of one of the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/faq/#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Kubernetes orgs&lt;/a>
 or
sponsored attendees.&lt;/p>
&lt;p>If you are not yet a member, but active within the project, please consider
joining! The process of joining is straight forward. See our &lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>

docs for more information. If your application to join is pending, please
contact us at &lt;a href="mailto:community@kubernetes.io"
 
 >community@kubernetes.io&lt;/a>
 about registering.&lt;/p>
&lt;p>Registration will close on &lt;strong>October 20th&lt;/strong>.&lt;/p>
&lt;p>&lt;strong>NOTE:&lt;/strong> The summit adheres to KubeCon’s &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/attend/health-and-safety/"
 
 target="_blank" rel="noopener">Health &amp;amp; Safety Guidelines&lt;/a>
 requiring
&lt;strong>ALL&lt;/strong> in-person attendees to be fully vaccinated against the COVID-19 virus or
to show proof of a negative COVID-19 test administered by a verified provider.&lt;/p></description></item><item><title>Registration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/registration/</guid><description>&lt;p>Registration is open to all members of one of the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/faq/#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Kubernetes orgs&lt;/a>
.&lt;/p>
&lt;p>If you are not yet a member, but active within the project, please consider
joining! The process of joining is straight forward. See our &lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>

docs for more information. If your application to join is pending, please
contact us at &lt;a href="mailto:summit-team@kubernetes.io"
 
 >summit-team@kubernetes.io&lt;/a>
 about registering.&lt;/p>
&lt;p>&lt;strong>NOTE:&lt;/strong> The summit adheres to KubeCon’s &lt;a href="https://www.lfasiallc.com/kubecon-cloudnativecon-open-source-summit-china/attend/health-safety/"
 
 target="_blank" rel="noopener">Health &amp;amp; Safety Guidelines&lt;/a>
&lt;/p>
&lt;p>If you acknowledge the above, please go ahead and click below to register:&lt;/p></description></item><item><title>Registration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/registration/</guid><description>&lt;p>Registration is open to all members of one of the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/faq/#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Kubernetes orgs&lt;/a>
 or
sponsored attendees.&lt;/p>
&lt;p>If you are not yet a member, but active within the project, please consider
joining! The process of joining is straight forward. See our &lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>

docs for more information. If your application to join is pending, please
contact us at &lt;a href="mailto:community@kubernetes.io"
 
 >community@kubernetes.io&lt;/a>
 about registering.&lt;/p>
&lt;p>&lt;strong>NOTE:&lt;/strong> The summit adheres to KubeCon’s &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/attend/health-and-safety/"
 
 target="_blank" rel="noopener">Health &amp;amp; Safety Guidelines&lt;/a>
&lt;/p>
&lt;p>If you acknowledge the above, please go ahead and click below to register:&lt;/p></description></item><item><title>Registration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/registration/</guid><description>&lt;p>Registration is open to all members of one of the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/faq/#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Kubernetes orgs&lt;/a>
, qualified Etcd contributors, or sponsored attendees.
Registration closes: &lt;strong>Thursday, November 2nd, 2023; 16:00 US Eastern Time&lt;/strong>&lt;/p>
&lt;p>If you are not yet a member, but active within the project, please consider
joining! The process of joining is straight forward. See our &lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>

docs for more information. If your application to join is pending, please
contact us at &lt;a href="mailto:summit-team@kubernetes.io"
 
 >summit-team@kubernetes.io&lt;/a>
 about registering.&lt;/p></description></item><item><title>Registration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/registration/</guid><description>&lt;p>Registration is open to all members of one of the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/faq/#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Kubernetes orgs&lt;/a>
 or
sponsored attendees.&lt;/p>
&lt;p>If you are not yet a member, but active within the project, please consider
joining! The process of joining is straight forward. See our &lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>

docs for more information. If your application to join is pending, please
contact us at &lt;a href="mailto:community@kubernetes.io"
 
 >community@kubernetes.io&lt;/a>
 about registering.&lt;/p>
&lt;p>&lt;strong>NOTE:&lt;/strong> The summit adheres to KubeCon’s &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/attend/health-and-safety/"
 
 target="_blank" rel="noopener">Health &amp;amp; Safety Guidelines&lt;/a>
&lt;/p>
&lt;p>If you acknowledge the above, please go ahead and click below to register:&lt;/p></description></item><item><title>Registration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/registration/</guid><description>&lt;p>Registration is open to all members of one of the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/faq/#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Kubernetes orgs&lt;/a>
, qualified Etcd contributors, or sponsored attendees.
Registration closes: &lt;strong>Thursday, November 7th, 2024; 16:00 US Eastern Time&lt;/strong>&lt;/p>
&lt;p>If you are not yet a member, but active within the project, please consider
joining! The process of joining is straight forward. See our &lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>

docs for more information. If your application to join is pending, please
contact us at &lt;a href="mailto:summit-team@kubernetes.io"
 
 >summit-team@kubernetes.io&lt;/a>
 about registering.&lt;/p></description></item><item><title>RSVP</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/registration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/registration/</guid><description>&lt;p>As we are not holding the formal Contributor Summit, we are not running
conference registration. SIGs and subprojects who choose to hold a mini-event
will be responsible for any kind of signups they need to manage.&lt;/p>
&lt;p>We &lt;strong>will&lt;/strong> be holding an evening social event, however, and have an RSVP link
for attendees. To attend the social, you must be a member or active contributor
of one of the Kubernetes GitHub Orgs (e.g., &lt;a href="https://github.com/kubernetes"
 
 target="_blank" rel="noopener">kubernetes&lt;/a>
 or &lt;a href="https://github.com/kubernetes-sigs"
 
 target="_blank" rel="noopener">kubernetes-sigs&lt;/a>
) or
a sponsored attendee. If you are an active contributor but not a member, consider
&lt;a href="https://github.com/kubernetes/community/blob/main/community-membership.md#member"
 
 target="_blank" rel="noopener">applying for org membership&lt;/a>
!&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/schedule/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP0MPeiM9oAffsxtrUgUAu1g"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;p>Thursday December 10th, the doors will open and members will be invited to discord.&lt;/p>
&lt;p>Events and official activities are planned for Friday and Saturday, with the
server remaining open on Sunday for anyone that would still like to join in and hang out.&lt;/p>
&lt;a id="sched-embed" href="https://kcc2020.sched.com">
 Kubernetes Contributor Celebration
&lt;/a>
&lt;script type="text/javascript" src="https://kcc2020.sched.com/js/embed.js">&lt;/script></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/schedule/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP1nRmC5ks6szxfDN69ZZFcS"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;a id="sched-embed" href="https://kcc2021.sched.com">
 Kubernetes Contributor Celebration
&lt;/a>
&lt;script type="text/javascript" src="https://kcc2021.sched.com/js/embed.js">&lt;/script></description></item><item><title>Section 2: Getting Into GitHub</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/02-getting-into-github/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/02-getting-into-github/</guid><description>&lt;h2 id="section-2-getting-into-github">Section 2: Getting Into GitHub&lt;/h2>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you&amp;rsquo;re about to learn&lt;/h2>
&lt;p>The first step to being a Kubernetes contributor is getting into GitHub! After this unit, you will:&lt;/p>
&lt;ul>
&lt;li>Understand GitHub capabilities and how Kubernetes uses it&lt;/li>
&lt;li>Understand fork and clone and be able to perform these on a repository&lt;/li>
&lt;li>Be able to complete the contributor license agreement (CLA) and make a first pull request&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="what-is-github">What is GitHub?&lt;/h2>
&lt;ul>
&lt;li>GitHub is a web service for managing software development with Git.&lt;/li>
&lt;li>It provides bug tracking, task management, hosted development environments, continuous integration, and &lt;a href="https://github.com/about"
 
 target="_blank" rel="noopener">other important features&lt;/a>
.&lt;/li>
&lt;li>GitHub hosts the source code for many open source projects, including Kubernetes.&lt;/li>
&lt;/ul>
&lt;p>Working with GitHub is straightforward, but if you are new to it, it can seem complex. We want to make the process as easy as possible for you!&lt;/p></description></item><item><title>Making your First Contribution</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/first-contribution/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/first-contribution/</guid><description>&lt;ul>
&lt;li>&lt;a href="#find-something-to-work-on"
 
 >Find something to work on&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#find-a-good-first-topic"
 
 >Find a good first topic&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#issue-assignment-in-github"
 
 >Issue Assignment in Github&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#learn-about-sigs"
 
 >Learn about SIGs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sig-structure"
 
 >SIG structure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#find-a-sig-that-is-related-to-your-contribution"
 
 >Find a SIG that is related to your contribution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#sig-specific-contributing-guidelines"
 
 >SIG-specific contributing guidelines&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#file-an-issue"
 
 >File an Issue&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="find-something-to-work-on">Find something to work on&lt;/h2>
&lt;p>The first step to getting starting contributing to Kubernetes is to find something
to work on. Help is always welcome, and no contribution is too small (but see below)!&lt;/p></description></item><item><title>Mentoring Programs and Resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/mentoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/mentoring/</guid><description>&lt;p>This page indexes all of the mentoring initiatives for contributing to the Kubernetes project. For end user mentoring initiatives, check out KubeCon and other CNCF events and programs.&lt;/p>
&lt;hr>
&lt;p>We understand that everyone has different learning styles and we want to support
as many of those as possible. Mentoring is vital to the growth of an individual
and organization of every kind. For Kubernetes, the larger the project becomes
, it&amp;rsquo;s necessary to keep a continuous pipeline of quality contributors and we want you to hang around!&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/schedule/</guid><description>&lt;p>&lt;strong>NOTE:&lt;/strong> You must go through vaccine verification and pick up your badge before
attending the summit or social evening event.&lt;/p>
&lt;h2 id="steering-ama">Steering AMA&lt;/h2>
&lt;p>The Summit will start off with an AMA with members of the Kubernetes Steering
Committee. Bring any and all questions about how we&amp;rsquo;re running the project,
ongoing efforts &amp;amp; issues, and whatever you&amp;rsquo;d like to discuss with Steering.&lt;/p>
&lt;h2 id="unconference">Unconference&lt;/h2>
&lt;p>The Contributor Summit will be an &lt;a href="https://blog.crisp.se/2016/08/30/henrikkniberg/what-is-an-unconference"
 
 target="_blank" rel="noopener">Unconference-style event&lt;/a>
. This means that
you should arrive with topics in mind, and we will pitch them and vote on them
in the morning, and then hold sessions in the afternoon, after the Steering AMA.
This is the format used at many &lt;a href="https://devopsdays.org/open-space-format/"
 
 target="_blank" rel="noopener">DevOps Days&lt;/a>
, and helps us accommodate changing
needs and unpredictable travel schedules.&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/schedule/</guid><description>&lt;a id="sched-embed" href="https://kcsna2022.sched.com/">
 Kubernetes Contributor Summit Europe 2022
&lt;/a>
&lt;script type="text/javascript" src="https://kcsna2022.sched.com/js/embed.js">&lt;/script></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/schedule/</guid><description>&lt;p>&lt;strong>NOTE:&lt;/strong> You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit event.&lt;/p>
&lt;h2 id="schedule">Schedule&lt;/h2>
&lt;p>Tuesday, September 26th&lt;/p>
&lt;ul>
&lt;li>09:00 ~ 09:15 am - Welcome: &lt;a href="https://github.com/kevin-wangzefeng"
 
 target="_blank" rel="noopener">Kevin Wang&lt;/a>
 (Huawei Cloud)/&lt;a href="https://github.com/puja108"
 
 target="_blank" rel="noopener">Puja&lt;/a>
 (Gaint Swarm)&lt;/li>
&lt;li>09:15 ~ 09:45 am - &lt;a href="https://github.com/kubernetes/community/blob/main/sig-multicluster/README.md"
 
 target="_blank" rel="noopener">#sig-multi-cluster&lt;/a>
: Technical thinking, practice, and planning of multi-cluster management in the Kubernetes community by &lt;a href="https://github.com/RainbowMango"
 
 target="_blank" rel="noopener">Hongcai Ren&lt;/a>
 (Huawei Cloud, &lt;a href="https://github.com/karmada-io/karmada/"
 
 target="_blank" rel="noopener">Karmada&lt;/a>
 Maintainer)&lt;/li>
&lt;li>09:45 ~ 10:15 am - Declaratively deploy your Kubernetes manifests, Kustomize configs, and Charts as Helm releases: &lt;a href="https://github.com/helmfile/helmfile"
 
 target="_blank" rel="noopener">Helmfile&lt;/a>
 by &lt;a href="https://github.com/yxxhero"
 
 target="_blank" rel="noopener">Xiongxiong Yuan&lt;/a>
 (Gitlab China)&lt;/li>
&lt;li>10:15 ~ 10:30 am - Break/Networking (Tea break) &amp;amp; Group Photo&lt;/li>
&lt;li>10:30 ~ 11:00 am - &lt;a href="https://github.com/kubernetes/community/blob/main/sig-scheduling/README.md"
 
 target="_blank" rel="noopener">#sig-scheduling&lt;/a>
: Kubernetes Scheduling Updates and Future: &lt;a href="https://github.com/william-wang"
 
 target="_blank" rel="noopener">Leibo Wang&lt;/a>
 (Huawei Cloud)&lt;/li>
&lt;li>11:00 ~ 12:30 am - Unconference&lt;/li>
&lt;li>Lunch &amp;amp; Networking&lt;/li>
&lt;/ul>
&lt;h3 id="unconference">Unconference&lt;/h3>
&lt;p>The unconference sessions coming soon!
If you have a topic in mind, please check back soon - we&amp;rsquo;ll launch a tracking issue for submissions closer to the event.&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/schedule/</guid><description>&lt;p>&lt;strong>NOTE:&lt;/strong> You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit or social evening event.&lt;/p>
&lt;h2 id="steering-ama">Steering AMA&lt;/h2>
&lt;p>The Summit will start off with an AMA with members of the Kubernetes Steering
Committee. Bring any and all questions about how we&amp;rsquo;re running the project,
ongoing efforts &amp;amp; issues, and whatever you&amp;rsquo;d like to discuss with Steering.&lt;/p>
&lt;h2 id="unconference">Unconference&lt;/h2>
&lt;p>The Contributor Summit will be primarily an &lt;a href="https://blog.crisp.se/2016/08/30/henrikkniberg/what-is-an-unconference"
 
 target="_blank" rel="noopener">Unconference-style event&lt;/a>
. This means that
you should arrive with topics in mind, and we will pitch them and vote on them
in the morning, and then hold sessions in the afternoon, after the Steering AMA.
This is the format used at many &lt;a href="https://devopsdays.org/open-space-format/"
 
 target="_blank" rel="noopener">DevOps Days&lt;/a>
, and helps us accommodate changing
needs and unpredictable travel schedules.&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/schedule/</guid><description>&lt;p>&lt;strong>NOTE:&lt;/strong> You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit or social evening event.&lt;/p>
&lt;h2 id="cfp">CFP&lt;/h2>
&lt;p>A &lt;a href="https://forms.gle/htQSHpot9rp1csDz8"
 
 target="_blank" rel="noopener">CFP&lt;/a>
 for sessions is open through Friday, September 15th.
Please, expect the schedule to be announced on October 6th, 2023.&lt;/p>
&lt;h2 id="steering-ama">Steering AMA&lt;/h2>
&lt;p>The Summit will start off with an AMA with members of the Kubernetes Steering
Committee. Bring any and all questions about how we&amp;rsquo;re running the project,
ongoing efforts &amp;amp; issues, and whatever you&amp;rsquo;d like to discuss with Steering.&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/schedule/</guid><description>&lt;p>&lt;strong>NOTE:&lt;/strong> You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit or social evening event.&lt;/p>
&lt;h2 id="steering-ama">Steering AMA&lt;/h2>
&lt;p>The Summit will start off with an AMA with members of the Kubernetes Steering
Committee. Bring any and all questions about how we&amp;rsquo;re running the project,
ongoing efforts &amp;amp; issues, and whatever you&amp;rsquo;d like to discuss with Steering.&lt;/p>
&lt;h2 id="unconference">Unconference&lt;/h2>
&lt;p>The Contributor Summit will include one track of
&lt;a href="https://blog.crisp.se/2016/08/30/henrikkniberg/what-is-an-unconference"
 
 target="_blank" rel="noopener">Unconference-style sessions&lt;/a>
.&lt;br>
After the CfP closes, contributors will be able to pitch and vote on last-minute
sessions in a GitHub Issue, and final selection of those topics will be made
at the Summit itself. This allows us to incorporate community issues and ideas
that come to light after the CfP ends.&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/schedule/</guid><description>&lt;p>&lt;strong>NOTE:&lt;/strong> You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit or social evening event.&lt;/p>
&lt;h2 id="cfp">CFP&lt;/h2>
&lt;p>The Cfp is closed. You can still propose topics in the Unconference sessions. See below for the kinds of session proposals which are appropriate.&lt;/p>
&lt;h2 id="steering-ama">Steering AMA&lt;/h2>
&lt;p>The Summit will start off with an AMA with members of the Kubernetes Steering
Committee. Bring any and all questions about how we&amp;rsquo;re running the project,
ongoing efforts &amp;amp; issues, and whatever you&amp;rsquo;d like to discuss with Steering.&lt;/p></description></item><item><title>Section 3: Pull Requests</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/03-pull-requests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/03-pull-requests/</guid><description>&lt;h2 id="section-3-pull-requests">Section 3: Pull Requests&lt;/h2>
&lt;hr>
&lt;h3 id="objectives">Objectives&lt;/h3>
&lt;p>This unit will teach you all about how to submit and manage pull requests for the different Kubernetes repositories. By the end of this unit, you will be able to:&lt;/p>
&lt;ul>
&lt;li>Reference and operate in the Kubernetes GitHub workflow&lt;/li>
&lt;li>Recognize common bots and their messages&lt;/li>
&lt;li>Respond to code comments and test failures&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h3 id="what-is-a-pull-request">What is a pull request?&lt;/h3>
&lt;p>Before we start teaching you how to use pull requests, we should tell you what they are!&lt;/p></description></item><item><title>Contributing to Kubernetes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/contributing/</guid><description>&lt;ul>
&lt;li>&lt;a href="#communication"
 
 >Communication&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#github-workflow"
 
 >GitHub workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#opening-a-pull-request"
 
 >Open a Pull Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#code-review"
 
 >Code Review&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#best-practices"
 
 >Best Practices&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing"
 
 >Testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation"
 
 >Documentation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#issues-management-or-triage"
 
 >Issues Management or Triage&lt;/a>
&lt;/li>
&lt;/ul>
&lt;p>Kubernetes is open source, but many of the people working on it do so as their day job.
In order to avoid forcing people to be &amp;ldquo;at work&amp;rdquo; effectively 24/7, we want to establish some semi-formal protocols around development.
Hopefully, these rules make things go more smoothly.
If you find that this is not the case, please complain loudly.&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2020/kcc/faq/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP0MPeiM9oAffsxtrUgUAu1g"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;ul>
&lt;li>&lt;a href="#general-information"
 
 >General Information&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-is-the-kubernetes-contributor-celebration"
 
 >What is the Kubernetes Contributor Celebration?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-is-it"
 
 >When is it?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-do-i-register"
 
 >How do I register?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-friends-and-family-allowed"
 
 >Are friends and family allowed?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-celebration-being-held"
 
 >Where is the celebration being held?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-will-i-get-my-invite"
 
 >When will I get my invite?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-sort-of-activities-are-planned"
 
 >What sort of activities are planned?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#discord-information"
 
 >Discord Information&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-do-i-join"
 
 >How do I join?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-verify-myself-once-i-connect-complete-captcha"
 
 >Why do I need to verify myself once I connect (complete captcha)?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-agree-to-abide-by-the-code-of-conduct"
 
 >Why do I need to agree to abide by the Code of Conduct?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-can-i-only-see-the-instructions-to-connect-and-info-channels"
 
 >Why can I only see the instructions-to-connect and info channels?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-this-yagpdbxyz-and-why-is-it-messaging-me"
 
 >What is this YAGPDB.xyz and why is it messaging me?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-do-i-display-my-pronouns-in-discord"
 
 >How do I display my pronouns in Discord?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-channel-info-channels-for"
 
 >What are the &lt;code>#&amp;lt;channel&amp;gt;-info&lt;/code> channels for?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-channel-links-channels-for"
 
 >What are the &lt;code>#&amp;lt;channel&amp;gt;-links&lt;/code> channels for?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-do-i-know-if-someone-is-a-moderator-staff-member-or-an-admin"
 
 >How do I know if someone is a Moderator, Staff Member or an Admin?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#someone-is-spammingharassing-me-what-should-i-do"
 
 >Someone is spamming/harassing me, what should I do?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#discord-is-running-slowly-or-stuttering-what-should-i-do"
 
 >Discord is running slowly or stuttering, what should I do?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#help-i-have-a-question"
 
 >Help! I have a question?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="general-information">General Information&lt;/h2>
&lt;h3 id="what-is-the-kubernetes-contributor-celebration">What is the Kubernetes Contributor Celebration?&lt;/h3>
&lt;p>The Kubernetes Contributor Celebration is an attempt to reclaim that and
celebrate our accomplishments. It&amp;rsquo;s a time for us to relax, chat and do something
fun with your fellow contributors!&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/faq/</guid><description>&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Notice&lt;/h4>

 &lt;p>This event has passed. Recordings from the event can be found on the &lt;a href="https://youtube.com/playlist?list=PL69nYSiGNLP1nRmC5ks6szxfDN69ZZFcS"
&lt;p>target=&amp;quot;_blank&amp;quot; rel=&amp;ldquo;noopener&amp;rdquo;&amp;gt;Kubernetes Community YouTube Channel&lt;/a>
.&lt;/p>&lt;/p>


&lt;/div>

&lt;ul>
&lt;li>&lt;a href="#general-information"
 
 >General Information&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-is-the-kubernetes-contributor-celebration"
 
 >What is the Kubernetes Contributor Celebration?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-is-it"
 
 >When is it?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-do-i-register"
 
 >How do I register?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-friends-and-family-allowed"
 
 >Are friends and family allowed?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-celebration-being-held"
 
 >Where is the celebration being held?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-will-i-get-my-invite"
 
 >When will I get my invite?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-sort-of-activities-are-planned"
 
 >What sort of activities are planned?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#discord-information"
 
 >Discord Information&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-do-i-join"
 
 >How do I join?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-verify-myself-once-i-connect-complete-captcha"
 
 >Why do I need to verify myself once I connect (complete captcha)?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-agree-to-abide-by-the-code-of-conduct"
 
 >Why do I need to agree to abide by the Code of Conduct?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-can-i-only-see-the-instructions-to-connect-and-info-channels"
 
 >Why can I only see the instructions-to-connect and info channels?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-this-yagpdbxyz-and-why-is-it-messaging-me"
 
 >What is this YAGPDB.xyz and why is it messaging me?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-do-i-display-my-pronouns-in-discord"
 
 >How do I display my pronouns in Discord?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#information-on-each-channel-in-discord"
 
 >Information on each channel in Discord&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-the-horizontal-voice-autoscaler-channel-for"
 
 >What is the &lt;code>HORIZONTAL VOICE AUTOSCALER&lt;/code> channel for?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-do-i-know-if-someone-is-a-moderator-staff-member-or-an-admin"
 
 >How do I know if someone is a Moderator, Staff Member or an Admin?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#someone-is-spammingharassing-me-what-should-i-do"
 
 >Someone is spamming/harassing me, what should I do?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#discord-is-running-slowly-or-stuttering-what-should-i-do"
 
 >Discord is running slowly or stuttering, what should I do?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#help-i-have-a-question"
 
 >Help! I have a question?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="general-information">General Information&lt;/h2>
&lt;h3 id="what-is-the-kubernetes-contributor-celebration">What is the Kubernetes Contributor Celebration?&lt;/h3>
&lt;p>The Kubernetes Contributor Celebration is an attempt to reclaim that and
celebrate our accomplishments. It&amp;rsquo;s a time for us to relax, chat and do something
fun with your fellow contributors!&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-is-vaccination-required-to-attend-in-person"
 
 >Why is vaccination required to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Why do I need to be a Kubernetes Org member to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-sponsored-attendee"
 
 >What is a sponsored attendee?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-am-not-an-org-member-can-i-still-attend"
 
 >I am not an Org member. Can I still attend?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>October 11th, the Monday before &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/"
 
 target="_blank" rel="noopener">KubeCon North America&lt;/a>
.&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/location/</guid><description>&lt;h3 id="feria-valencia">Feria Valencia&lt;/h3>
&lt;p>Registration and badge pick-up will be available at the
&lt;a href="https://www.feriavalencia.com/en/" rel="noopener noreferrer" target="_blank">Feria Valencia&lt;/a>.
You &lt;strong>MUST&lt;/strong> go through vaccination verification and pick up your badge before
attending the summit or evening social event.&lt;/p>
&lt;p>The summit itself will be on Level 3 of the Feria Valencia Event Center. Masking
is required.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
Av. de les Fires, s/n, 46035&lt;br>
València, Spain&lt;br>&lt;/p>
&lt;h3 id="la-casa-de-la-mar">La Casa de la Mar&lt;/h3>
&lt;p>The Contributor Social will be held at the
&lt;a href="https://lacasadelamar.com/espacios-patacona/" rel="noopener noreferrer" target="_blank">La Casa de la Mar&lt;/a>
several kilometers from the Feria. CNCF will be providing a bus from the Fiera
to the venue, and our community will also organize ride-sharing. Details to be
posted later. Masking and vaccination are required for the party.&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/location/</guid><description>&lt;img align="right" src="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/venue-map.png" width="50%" alt="Venue Map">
&lt;h3 id="huntington-place">Huntington Place&lt;/h3>
&lt;p>Registration and badge pick-up will be available at the
&lt;a href="https://www.huntingtonplacedetroit.com/" rel="noopener noreferrer" target="_blank">Huntington Place Convention Center&lt;/a>.
You &lt;strong>MUST&lt;/strong> pick up your badge &lt;strong>before&lt;/strong> attending the summit or evening social event.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
1 Washington Blvd&lt;br>
Detroit, MI 48226&lt;br>&lt;/p>
&lt;h3 id="deluxx-fluxx">Deluxx Fluxx&lt;/h3>
&lt;p>The evening &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/social/"
 
 >social&lt;/a>
 will be held at Deluxx Fluxx, a short walk away from the
convention center.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
1274 Library St&lt;br>
Detroit, MI 48226&lt;br>&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/location/</guid><description>&lt;h3 id="shanghai-convention--exhibition-center-of-international-sourcing">Shanghai Convention &amp;amp; Exhibition Center Of International Sourcing&lt;/h3>
&lt;p>Registration and badge pick-up will be available at the
&lt;a href="https://en.shcec.com.cn/" rel="noopener noreferrer" target="_blank">Shanghai Convention &amp;amp; Exhibition Center Of International Sourcing&lt;/a>.
You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit event.&lt;/p>
&lt;p>The summit itself will be in the Shanghai Convention &amp;amp; Exhibition Center Of International Sourcing. Masks are recommended, but not required for event attendees. Some masks will be available.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
No.2739 West Guangfu Road, Putuo District, Shanghai (200062)&lt;br>&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/location/</guid><description>&lt;h3 id="rai-amsterdam">RAI Amsterdam&lt;/h3>
&lt;p>Registration and badge pick-up will be available at the
&lt;a href="https://www.rai.nl/en" rel="noopener noreferrer" target="_blank">RAI Amsterdam&lt;/a>.
You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit or evening social event.&lt;/p>
&lt;p>The summit itself will be in the RAI Amsterdam Convention Centre. Masks are recommended, but not required for event attendees. Some masks will be available.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
Europaplein 24, 1078 GZ&lt;br>
Amsterdam, Netherlands&lt;br>&lt;/p>
&lt;h3 id="contributor-social-location">Contributor Social Location&lt;/h3>
&lt;p>The Contributor &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/social/"
 
 >Social&lt;/a>
 will be held at &lt;a href="https://strand-zuid.nl/en/restaurant/"
 
 target="_blank" rel="noopener">Strandzuid&lt;/a>
, &lt;strong>next to&lt;/strong> the Convention Centre.&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/location/</guid><description>&lt;h3 id="hyatt-regency-mccormick-place">Hyatt Regency McCormick Place&lt;/h3>
&lt;p>Registration and badge pick-up will be available at the
&lt;a href="https://www.hyatt.com/en-US/hotel/illinois/hyatt-regency-mccormick-place/chimc" rel="noopener noreferrer" target="_blank">Hyatt Regency McCormick Place&lt;/a>.
You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit or evening social event.&lt;/p>
&lt;p>The summit will be in the Hyatt Regency McCormick Place. Masks are recommended, but not required for event attendees. Some masks will be available.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
2233 South Dr. Martin Luther King Jr. Drive&lt;br>
Chicago, Illinois, 60616-9985, USA&lt;br>&lt;/p>
&lt;h3 id="contributor-social-location">Contributor Social Location&lt;/h3>
&lt;p>The Contributor &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/social/"
 
 >Social&lt;/a>
 will be held on the evening of the 6th, at a location to be determined.&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/location/</guid><description>&lt;h3 id="porte-de-paris---paris-convention-center">Porte de Paris - Paris Convention Center&lt;/h3>
&lt;p>You &lt;strong>MUST&lt;/strong> pick up your badge before attending the Contributor Summit or evening social event.&lt;/p>
&lt;p>The summit will be in the &lt;a href="https://www.viparis.com/en/our-venues/paris-convention-centre-en/access" rel="noopener noreferrer" target="_blank">Porte de Paris - Paris Convention Center&lt;/a>. Masks are recommended, but not required for event attendees. Some masks will be available.
In Pavilion 7 Floor 3 West&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
1 Place de la Porte de Versailles&lt;br>
75015 Paris, France&lt;br>&lt;/p>
&lt;p>&lt;strong>Drop-off&lt;/strong>
The center is located at 1 Place de la Porte de Versailles&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/location/</guid><description>&lt;h3 id="salt-palace-convention-center">Salt Palace Convention Center&lt;/h3>
&lt;p>Registration and badge pick-up will be available at the
&lt;a href="https://www.visitsaltlake.com/salt-palace-convention-center/" rel="noopener noreferrer" target="_blank">Salt Palace Convention Center&lt;/a>.
You &lt;strong>MUST&lt;/strong> pick up your badge before attending the summit or evening social event.&lt;/p>
&lt;p>The summit will be in the Salt Palace Convention Center. Masks are recommended, but not required for event attendees.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
90 South West Temple &lt;br/>
Salt Lake City, Utah 84101 &lt;br/>&lt;/p>
&lt;h3 id="contributor-social-location">Contributor Social Location&lt;/h3>
&lt;p>The Contributor &lt;a href="social.md"
 
 >Social&lt;/a>
 will be held from 6pm - 9pm on November 11th, at Flanker.&lt;/p></description></item><item><title>Section 4: Issues Management and Triage</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/04-issues-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/04-issues-management/</guid><description>&lt;h2 id="section-4-issues-managementtriage">Section 4: Issues Management/Triage&lt;/h2>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you&amp;rsquo;re about to learn&lt;/h2>
&lt;p>This unit will help you get started with issue management across the Kubernetes GitHub repositories. By the end, you&amp;rsquo;ll:&lt;/p>
&lt;ul>
&lt;li>Understand and locate the issues management and triage tags&lt;/li>
&lt;li>Know where bugs are reported and how they are triaged&lt;/li>
&lt;li>Be able to understand how to prioritize work based on issues&lt;/li>
&lt;li>Be able to locate the security response committee for security issues&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-does-kubernetes-use-github-issues">How does Kubernetes use GitHub issues?&lt;/h2>
&lt;p>Contributors and end users use issues for a variety of reasons:&lt;/p></description></item><item><title>Contributor Social</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/social/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/social/</guid><description>&lt;h2 id="contributor-social-at-la-casa-del-mar">Contributor Social at La Casa Del Mar&lt;/h2>
&lt;img align="right" src="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/casadelmar.jpg" width="30%" alt="La Casa de la Mar venue">
&lt;p>From 6:30 to 8:30pm (and beyond), Kubernetes contributors will be schmoozing,
eating, playing boardgames, and competing in a pub quiz at &lt;a href="https://lacasadelamar.com/espacios-patacona/"
 
 target="_blank" rel="noopener">La Casa Del Mar&lt;/a>
,
a cafe and bar by the beach in Valencia.&lt;/p>
&lt;p>The Social is open only to registered attendees of the Kubernetes Contributor
Summit and possibly their guests (see below). You must be &lt;a href="https://cvent.me/384mb9"
 
 target="_blank" rel="noopener">registered&lt;/a>

before attending.&lt;/p></description></item><item><title>Contributor Social</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/social/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/social/</guid><description>&lt;img align="right" src="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/deluxx-fluxx-1.png" width="30%" alt="Deluxx Fluxx interior view 1">
Join us at 
&lt;a href="https://www.deluxxfluxx.com/deluxx-fluxx-detroit" rel="noopener noreferrer" target="_blank">Deluxx Fluxx Detroit&lt;/a>
from 6pm to 9pm for an evening celebration after the Contributor Summit on October 24th!
&lt;p>There will be arcade cabinets, foosball, karaoke, trivia and more!&lt;/p>
&lt;p>&lt;em>The contributor social is &lt;em>not&lt;/em> a public event. You must be &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/registration/"
 
 >registered&lt;/a>
 in advance to attend the Contributor Summit in order to attend the Social, and must be a Kubernetes contributor. Community members who are not registered and show up at the Social will be turned away.&lt;/em>&lt;/p></description></item><item><title>Contributor Social</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/social/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/social/</guid><description>&lt;p>Join us at &lt;a href="https://strand-zuid.nl/en/events/" rel="noopener noreferrer" target="_blank">Strandzuid&lt;/a>
from 6pm to 9pm for an evening celebration after the Contributor Summit on April 18th!&lt;/p>
&lt;p>There will be food, fresh air, puzzles, and more!&lt;/p>
&lt;p>&lt;em>The contributor social is &lt;em>not&lt;/em> a public event. You must be &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/registration/"
 
 >registered&lt;/a>
 in advance to attend the Contributor Summit in order to attend the Social, and must be a Kubernetes contributor. Community members who are not registered and show up at the Social will be turned away.&lt;/em>&lt;/p></description></item><item><title>Contributor Social</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/social/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/social/</guid><description>&lt;p>Join us for the Contributor Social
from 6pm to 9pm for an evening celebration after the Contributor Summit on November 6th!&lt;/p>
&lt;p>There will be food, live music, activities, and more!&lt;/p>
&lt;p>&lt;em>The contributor social is &lt;em>not&lt;/em> a public event. You must be &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/registration/"
 
 >registered&lt;/a>
 in advance to attend the Contributor Summit in order to attend the Social, and must be a Kubernetes contributor. Community members who are not registered and show up at the Social will be turned away.&lt;/em>&lt;/p></description></item><item><title>Contributor Social</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/social/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/social/</guid><description>&lt;p>Join us at &lt;a href="https://www.viparis.com/en/our-venues/la-serre-en" rel="noopener noreferrer" target="_blank">La Serre&lt;/a> from 6pm to 9pm for an evening celebration after the Contributor Summit on March 19th!&lt;/p>
&lt;p>There will be food, fresh air, puzzles, and more!&lt;/p>
&lt;p>The Summit will include a social event open only to Contributors (and their family members, see Guests below). This event will take place somewhere near the Summit venue, and will include food, drink, entertainment, and games. More information will be available once the venue is booked.&lt;/p></description></item><item><title>Contributor Social</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/social/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/social/</guid><description>&lt;p>Join us at &lt;a href="https://www.flankerslc.com"
 
 target="_blank" rel="noopener">Flanker&lt;/a>
 from 6pm to 9pm for an evening celebration after the Contributor Summit on November 11th!&lt;/p>
&lt;p>There will be food, live music, activities, and more!&lt;/p>
&lt;p>&lt;em>The contributor social is &lt;em>not&lt;/em> a public event. You must be &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/registration/"
 
 >registered&lt;/a>
 in advance to attend the Contributor Summit in order to attend the Social, and must be a Kubernetes contributor. Community members who are not registered and show up at the Social will be turned away.&lt;/em>&lt;/p></description></item><item><title>Location &amp; Venue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/location/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/location/</guid><description>&lt;h3 id="marriott">Marriott&lt;/h3>
&lt;img align="right" src="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/hotel.jpeg" width="15%" alt="Westin Bonaventure Hotel">
&lt;p>The North America Summit will take place October 11th, in Los Angeles, California
alongside &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/" rel="noopener noreferrer" target="_blank">KubeCon&lt;/a>
at the &lt;a href="https://www.marriott.com/hotels/travel/laxjw-jw-marriott-los-angeles-la-live/" rel="noopener noreferrer" target="_blank">JW Marriott LA Live&lt;/a>
in Ballroom 6. There will be signage in the Marriott Lobby to point you in the
right direction.&lt;/p>
&lt;p>&lt;strong>Address&lt;/strong>&lt;br>
JW Marriott Los Angeles L.A. LIVE&lt;br>
900 West Olympic Boulevard&lt;br>
Los Angeles, California 90015 USA&lt;/p>
&lt;h3 id="lucky-strike">Lucky Strike&lt;/h3>
&lt;img align="right" src="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/lucky-strike.jpg" width="30%" alt="Lucky Strike bowling alley">
&lt;p>The evening social event will be held at
&lt;a href="https://www.luckystrikeent.com/locations/los-angeles/" rel="noopener noreferrer" target="_blank">Lucky Strike&lt;/a>,
a bowling alley, 1 block away from the Marriott.&lt;/p></description></item><item><title>Platforms Guide</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/platforms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/platforms/</guid><description>&lt;h2 id="adding-supported-platforms">Adding supported platforms&lt;/h2>
&lt;p>The default Kubernetes platform is &lt;code>linux/amd64&lt;/code>. This platform has always been
fully tested, and the build and release systems initially supported only this
platform. SIG Release started an &lt;a href="https://github.com/kubernetes/kubernetes/issues/38067"
 
 target="_blank" rel="noopener">effort to support multiple architectures&lt;/a>
.
As part of this effort, they added support in our build and release pipelines
for the architectures &lt;code>arm&lt;/code>, &lt;code>arm64&lt;/code>, &lt;code>ppc64le&lt;/code> and &lt;code>s390x&lt;/code> on different
operating systems like Linux, Windows and macOS.&lt;/p>
&lt;p>The main focus was to have binaries and container images to be available for
these architectures/operating systems. Contributors should be able to to take
these artifacts and set up CI jobs to adequately test these platforms.
Specifically to call out the ability to run conformance tests on these
platforms.&lt;/p></description></item><item><title>Pull Request Process</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/pull-requests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/pull-requests/</guid><description>&lt;p>This doc explains the process and best practices for submitting a pull request to the &lt;a href="https://github.com/kubernetes/kubernetes"
 
 target="_blank" rel="noopener">Kubernetes project&lt;/a>
 and its associated sub-repositories.
It should serve as a reference for all contributors, and be useful especially to new and infrequent submitters.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#before-you-submit-a-pull-request"
 
 >Before You Submit a Pull Request&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#run-local-verifications"
 
 >Run Local Verifications&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#the-pull-request-submit-process"
 
 >The Pull Request Submit Process&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#marking-unfinished-pull-requests"
 
 >Marking Unfinished Pull Requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pull-requests-and-the-release-cycle"
 
 >Pull Requests and the Release Cycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comment-commands-reference"
 
 >Comment Commands Reference&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automation"
 
 >Automation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-the-e2e-tests-work"
 
 >How the e2e Tests Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#why-was-my-pull-request-closed"
 
 >Why was my pull request closed?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-is-my-pull-request-not-getting-reviewed"
 
 >Why is my pull request not getting reviewed?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#best-practices-for-faster-reviews"
 
 >Best Practices for Faster Reviews&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#familiarize-yourself-with-project-conventions"
 
 >Familiarize yourself with project conventions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#is-the-feature-wanted-file-a-kubernetes-enhancement-proposal"
 
 >Is the feature wanted? File a Kubernetes Enhancement Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kiss-yagni-mvp-etc"
 
 >KISS, YAGNI, MVP, etc.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#smaller-is-better-small-commits-small-pull-requests"
 
 >Smaller Is Better: Small Commits, Small Pull Requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#open-a-different-pull-request-for-fixes-and-generic-features"
 
 >Open a Different Pull Request for Fixes and Generic Features&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dont-open-pull-requests-that-span-the-whole-repository"
 
 >Don&amp;rsquo;t Open Pull Requests That Span the Whole Repository&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comments-matter"
 
 >Comments Matter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test"
 
 >Test&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#squashing"
 
 >Squashing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#commit-message-guidelines"
 
 >Commit Message Guidelines&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#its-ok-to-push-back"
 
 >It&amp;rsquo;s OK to Push Back&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#common-sense-and-courtesy"
 
 >Common Sense and Courtesy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#trivial-edits"
 
 >Trivial Edits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#large-or-automatic-edits"
 
 >Large or Automatic Edits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fixing-linter-issues"
 
 >Fixing Linter Issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ai-guidance"
 
 >AI Guidance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#the-testing-and-merge-workflow"
 
 >The Testing and Merge Workflow&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#more-about-ok-to-test"
 
 >More About &lt;code>Ok-To-Test&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h1 id="before-you-submit-a-pull-request">Before You Submit a Pull Request&lt;/h1>
&lt;p>This guide is for contributors who already have a pull request to submit.
If you&amp;rsquo;re looking for information on setting up your developer environment and creating code to contribute to Kubernetes, see the &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/development.md"
 
 target="_blank" rel="noopener">development guide&lt;/a>
.&lt;/p></description></item><item><title>Section 5: Getting Started with Kubernetes Development</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/05-development/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/05-development/</guid><description>&lt;h2 id="section-5-getting-started-with-kubernetes-development">Section 5: Getting Started with Kubernetes Development&lt;/h2>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you’re about to learn&lt;/h2>
&lt;p>It’s time to set up a development environment so you can build Kubernetes. By end of this unit, you will:&lt;/p>
&lt;ul>
&lt;li>Know the various environments for building and developing Kubernetes&lt;/li>
&lt;li>Know where to find the Kubernetes Development Guide&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="what-are-your-options-for-a-development-environment">What are your options for a development environment?&lt;/h2>
&lt;p>There are three primary options, all with their own benefits and drawbacks.&lt;/p>
&lt;ol>
&lt;li>Building Kubernetes with Docker&lt;/li>
&lt;li>Building Kubernetes on your local OS and shell environment&lt;/li>
&lt;li>Building Kubernetes with GitHub Codespaces&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="why-build-with-docker">Why build with Docker?&lt;/h2>
&lt;p>This method uses a containerized build environment. There are some good reasons to use it:&lt;/p></description></item><item><title>GitHub Workflow</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/github-workflow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/github-workflow/</guid><description>&lt;p>&lt;img src="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/git_workflow.png" alt="Git workflow">&lt;/p>
&lt;h2 id="1-fork-in-the-cloud">1. Fork in the cloud&lt;/h2>
&lt;ol>
&lt;li>Visit &lt;a href="https://github.com/kubernetes/kubernetes"
 
 target="_blank" rel="noopener">https://github.com/kubernetes/kubernetes&lt;/a>
&lt;/li>
&lt;li>Click &lt;code>Fork&lt;/code> button (top right) to establish a cloud-based fork.&lt;/li>
&lt;/ol>
&lt;h2 id="2-clone-fork-to-local-storage">2. Clone fork to local storage&lt;/h2>
&lt;p>In your shell, define a local working directory as &lt;code>working_dir&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">working_dir&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">HOME&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/src/k8s.io&amp;#34;&lt;/span> &lt;span class="c1"># Change to your preferred location for source code&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Set &lt;code>user&lt;/code> to match your github profile name:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">user&lt;/span>&lt;span class="o">=&lt;/span>&amp;lt;your github profile name&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Both &lt;code>$working_dir&lt;/code> and &lt;code>$user&lt;/code> are mentioned in the figure above.&lt;/p>
&lt;p>Create your clone:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">mkdir -p &lt;span class="nv">$working_dir&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="nv">$working_dir&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git clone https://github.com/&lt;span class="nv">$user&lt;/span>/kubernetes.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># or: git clone git@github.com:$user/kubernetes.git&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> &lt;span class="nv">$working_dir&lt;/span>/kubernetes
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git remote add upstream https://github.com/kubernetes/kubernetes.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># or: git remote add upstream git@github.com:kubernetes/kubernetes.git&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Never push to upstream master&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git remote set-url --push upstream no_push
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Confirm that your remotes make sense:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git remote -v
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="3-create-a-working-branch">3. Create a Working Branch&lt;/h2>
&lt;p>Get your local master up to date. Note that depending on which repository you are working from,
the default branch may be called &amp;ldquo;main&amp;rdquo; instead of &amp;ldquo;master&amp;rdquo;.&lt;/p></description></item><item><title>Schedule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/schedule/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/schedule/</guid><description>&lt;p>&lt;strong>NOTE:&lt;/strong> You must go through vaccine verification and pick up your badge before
attending the summit or social evening event.&lt;/p>
&lt;h3 id="october-10th">October 10th&lt;/h3>
&lt;ul>
&lt;li>2pm - 6pm - Registration + Vaccine Verification + Badge Pick-up @ the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/location/#los-angeles-convention-center-lacc"
 
 >LACC&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="october-11th">October 11th&lt;/h3>
&lt;ul>
&lt;li>8am - 6pm - Registration + Vaccine Verification + Badge Pick-up @ the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/location/#los-angeles-convention-center-lacc"
 
 >LACC&lt;/a>
&lt;/li>
&lt;li>9am - 4pm - Contributor hangout @ the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/location/#marriott"
 
 >Marriott&lt;/a>
 (ballroom 6)&lt;/li>
&lt;li>5pm - 8pm - Evening social with bowling and billiards @ &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcsna/location/#lucky-strike"
 
 >Lucky Strike&lt;/a>
&lt;/li>
&lt;/ul></description></item><item><title>Section 6: Testing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/06-testing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/06-testing/</guid><description>&lt;h2 id="section-6-testing">Section 6: Testing&lt;/h2>
&lt;p>This unit is all about the various types of tests, both automated and manual, in the Kubernetes project.&lt;/p>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you&amp;rsquo;re about to learn&lt;/h2>
&lt;p>By the time you&amp;rsquo;re done with this unit, you&amp;rsquo;ll:&lt;/p>
&lt;ul>
&lt;li>Be able to locate the requirements for manual testing during development&lt;/li>
&lt;li>Be able to respond to the automatic tests of bots for a pull request&lt;/li>
&lt;/ul>
&lt;p>Testing Kubernetes is pretty complicated. We will try to make it easy for you, but you might want to start by reading the &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/development.md"
 
 target="_blank" rel="noopener">Development Guide&lt;/a>
.&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcseu/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-is-vaccination-required-to-attend-in-person"
 
 >Why is vaccination required to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#do-i-need-to-wear-a-mask"
 
 >Do I need to wear a mask?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Why do I need to be a Kubernetes Org member to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-sponsored-attendee"
 
 >What is a sponsored attendee?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-am-not-an-org-member-can-i-still-attend"
 
 >I am not an Org member. Can I still attend?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-an-idea-for-a-session"
 
 >I have an idea for a session. How do I propose it?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#my-sig-wants-to-meet-at-the-summit"
 
 >My SIG wants to meet at the Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-doc-sprint"
 
 >Will there be a Doc Sprint?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-i-bring-a-guest-to-the-social"
 
 >Can I bring a guest to the Contributor Social&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>May 16th, the Monday of &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/"
 
 target="_blank" rel="noopener">KubeCon Europe&lt;/a>
.&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2022/kcsna/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#do-i-need-to-wear-a-mask"
 
 >Do I need to wear a mask?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Why do I need to be a Kubernetes Org member to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-sponsored-attendee"
 
 >What is a sponsored attendee?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-am-not-an-org-member-can-i-still-attend"
 
 >I am not an Org member. Can I still attend?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-an-idea-for-a-session"
 
 >I have an idea for a session. How do I propose it?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#my-sig-wants-to-meet-at-the-summit"
 
 >My SIG wants to meet at the Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-doc-sprint"
 
 >Will there be a Doc Sprint?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-i-bring-a-guest-to-the-social"
 
 >Can I bring a guest to the Contributor Social&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>October 24th, the Monday of &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/"
 
 target="_blank" rel="noopener">KubeCon North America&lt;/a>
.&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcscn/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-health-and-safety-protocols"
 
 >What are the Health and Safety protocols?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#priority-registration-notice-org-members-for-contributor-summit"
 
 >Priority Registration Notice: Org Members for Contributor Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-an-idea-for-a-session"
 
 >I have an idea for a session&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>September 26th, the first day of &lt;a href="https://www.lfasiallc.com/kubecon-cloudnativecon-open-source-summit-china/"
 
 target="_blank" rel="noopener">KubeCon + CloudNativeCon + Open Source Summit China 2023&lt;/a>
.&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcseu/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-health-and-safety-protocols"
 
 >What are the Health and Safety protocols&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Why do I need to be a Kubernetes Org member to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-sponsored-attendee"
 
 >What is a sponsored attendee?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-an-idea-for-a-session"
 
 >I have an idea for a session&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#my-sig-wants-to-meet-at-the-summit"
 
 >My SIG wants to meet at the Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-doc-sprint"
 
 >Will there be a doc sprint?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-i-bring-a-guest-to-the-social"
 
 >Can I bring a guest to the Social?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>April 18th, the first day of &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/"
 
 target="_blank" rel="noopener">KubeCon Europe&lt;/a>
.&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2023/kcsna/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-health-and-safety-protocols"
 
 >What are the Health and Safety protocols&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Why do I need to be a Kubernetes Org member to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-sponsored-attendee"
 
 >What is a sponsored attendee?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-an-idea-for-a-session"
 
 >I have an idea for a session&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#my-sig-wants-to-meet-at-the-summit"
 
 >My SIG wants to meet at the Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-doc-sprint"
 
 >Will there be a doc sprint?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-i-bring-a-guest-to-the-social"
 
 >Can I bring a guest to the Social?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>November 6th, the first day of &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/"
 
 target="_blank" rel="noopener">KubeCon North America&lt;/a>
.&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcseu/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-health-and-safety-protocols"
 
 >What are the Health and Safety protocols&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Why do I need to be a Kubernetes Org member to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-sponsored-attendee"
 
 >What is a sponsored attendee?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-an-idea-for-a-session"
 
 >I have an idea for a session&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#my-sig-wants-to-meet-at-the-summit"
 
 >My SIG wants to meet at the Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-doc-sprint"
 
 >Will there be a doc sprint?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-i-bring-a-guest-to-the-social"
 
 >Can I bring a guest to the Social?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>March 19, 2024&lt;/p></description></item><item><title>Frequently Asked Questions (FAQ)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2024/kcsna/faq/</guid><description>&lt;ul>
&lt;li>&lt;a href="#when-is-the-summit-taking-place"
 
 >When is the summit taking place?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#where-is-the-summit-located"
 
 >Where is the summit located?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-i-be-able-to-attend-remotely"
 
 >Will I be able to attend remotely?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-health-and-safety-protocols"
 
 >What are the Health and Safety protocols&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-do-i-need-to-be-a-kubernetes-org-member-to-attend-in-person"
 
 >Why do I need to be a Kubernetes Org member to attend in-person?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-sponsored-attendee"
 
 >What is a sponsored attendee?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#do-i-need-to-registered-for-kubecon-to-attend-the-contributor-summit"
 
 >Do I need to be registered for KubeCon to attend the Contributor Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-an-idea-for-a-session"
 
 >I have an idea for a session&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#my-sig-wants-to-meet-at-the-summit"
 
 >My SIG wants to meet at the Summit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-doc-sprint"
 
 >Will there be a doc sprint?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-there-be-a-new-contributor-workshop"
 
 >Will there be a New Contributor Workshop?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-i-bring-a-guest-to-the-social"
 
 >Can I bring a guest to the Social?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#i-have-a-question-how-do-i-contact-the-event-staff"
 
 >I have a question! How do I contact the event staff?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="when-is-the-summit-taking-place">When is the summit taking place?&lt;/h3>
&lt;p>November 11th, one day prior to &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/"
 
 target="_blank" rel="noopener">KubeCon North America&lt;/a>
.&lt;/p></description></item><item><title>Section 7: Code Review</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/07-code-review/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/07-code-review/</guid><description>&lt;h2 id="section-7-code-review">Section 7: Code Review&lt;/h2>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you&amp;rsquo;re about to learn&lt;/h2>
&lt;p>In this unit, you will learn everything about getting your code contributions to Kubernetes reviewed. By the end of this unit, you will be able to:&lt;/p>
&lt;ul>
&lt;li>Understand the role of code reviews in the lifecycle of a pull request.&lt;/li>
&lt;li>Use your SIG process to get a senior contributor to review code for approval.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="what-is-a-code-review">What is a code review?&lt;/h2>
&lt;p>A code review is when other developers examine proposed changes and additions to source code.&lt;/p></description></item><item><title>Coding Conventions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/coding-convention/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/coding-convention/</guid><description>&lt;h2 id="code-conventions">Code conventions&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>Bash&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://google.github.io/styleguide/shellguide.html"
 
 target="_blank" rel="noopener">Shell Style Guide&lt;/a>
&lt;/li>
&lt;li>Ensure that build, release, test, and cluster-management scripts run on macOS&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Go&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://go.dev/wiki/CodeReviewComments"
 
 target="_blank" rel="noopener">Go Code Review Comments&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://golang.org/doc/effective_go.html"
 
 target="_blank" rel="noopener">Effective Go&lt;/a>
&lt;/li>
&lt;li>Know and avoid &lt;a href="https://gist.github.com/lavalamp/4bd23295a9f32706a48f"
 
 target="_blank" rel="noopener">Go landmines&lt;/a>
&lt;/li>
&lt;li>Comment your code.
&lt;ul>
&lt;li>&lt;a href="https://go.dev/doc/comment"
 
 target="_blank" rel="noopener">Go&amp;rsquo;s commenting conventions&lt;/a>
&lt;/li>
&lt;li>If reviewers ask questions about why the code is the way it is, that&amp;rsquo;s a sign that comments might be helpful.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Command-line flags should use dashes, not underscores&lt;/li>
&lt;li>Naming
&lt;ul>
&lt;li>Please consider package name when selecting an interface name, and avoid redundancy. For example, &lt;code>storage.Interface&lt;/code> is better than &lt;code>storage.StorageInterface&lt;/code>.&lt;/li>
&lt;li>Do not use uppercase characters, underscores, or dashes in package names.&lt;/li>
&lt;li>Please consider parent directory name when choosing a package name. For example, &lt;code>pkg/controllers/autoscaler/foo.go&lt;/code> should say &lt;code>package autoscaler&lt;/code> not &lt;code>package autoscalercontroller&lt;/code>.
&lt;ul>
&lt;li>Unless there&amp;rsquo;s a good reason, the &lt;code>package foo&lt;/code> line should match the name of the directory in which the &lt;code>.go&lt;/code> file exists.&lt;/li>
&lt;li>Importers can use a different name if they need to disambiguate.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Locks should be called &lt;code>lock&lt;/code> and should never be embedded (always &lt;code>lock sync.Mutex&lt;/code>). When multiple locks are present, give each lock a distinct name following Go conventions: &lt;code>stateLock&lt;/code>, &lt;code>mapLock&lt;/code> etc.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-architecture/api_changes.md"
 
 target="_blank" rel="noopener">API changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-architecture/api-conventions.md"
 
 target="_blank" rel="noopener">API conventions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-cli/kubectl-conventions.md"
 
 target="_blank" rel="noopener">Kubectl conventions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-instrumentation/logging.md"
 
 target="_blank" rel="noopener">Logging conventions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="testing-conventions">Testing conventions&lt;/h2>
&lt;ul>
&lt;li>All new packages and most new significant functionality must come with unit tests.&lt;/li>
&lt;li>Table-driven tests are preferred for testing multiple scenarios/inputs. For an example, see &lt;a href="https://github.com/kubernetes/kubernetes/blob/4b8e819355d791d96b7e9d9efe4cbafae2311c88/test/integration/auth/auth_test.go#L1201"
 
 target="_blank" rel="noopener">TestNamespaceAuthorization&lt;/a>
.&lt;/li>
&lt;li>Significant features should come with integration (test/integration) and/or &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-testing/e2e-tests.md"
 
 target="_blank" rel="noopener">end-to-end (test/e2e) tests&lt;/a>
.
&lt;ul>
&lt;li>Including new &lt;code>kubectl&lt;/code> commands and major features of existing commands.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Unit tests must pass on macOS and Windows platforms - if you use Linux specific features, your test case must either be skipped on windows or compiled out (skipped is better when running Linux specific commands, compiled out is required when your code does not compile on Windows).&lt;/li>
&lt;li>Avoid relying on Docker Hub. Use the &lt;a href="https://cloud.google.com/artifact-registry/"
 
 target="_blank" rel="noopener">Google Cloud Artifact Registry&lt;/a>
 instead.&lt;/li>
&lt;li>Do not expect an asynchronous thing to happen immediately&amp;mdash;do not wait for one second and expect a pod to be running. Wait and retry instead.&lt;/li>
&lt;li>See the &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-testing/testing.md"
 
 target="_blank" rel="noopener">testing guide&lt;/a>
 for additional testing advice.&lt;/li>
&lt;/ul>
&lt;h2 id="directory-and-file-conventions">Directory and file conventions&lt;/h2>
&lt;ul>
&lt;li>Avoid package sprawl. Find an appropriate subdirectory for new packages. &lt;a href="http://issues.k8s.io/4851"
 
 target="_blank" rel="noopener">See issue #4851&lt;/a>
 for discussion.
&lt;ul>
&lt;li>Libraries with no appropriate home belong in new package subdirectories of &lt;code>pkg/util&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Avoid general utility packages. Packages called &amp;ldquo;util&amp;rdquo; are suspect. Instead, derive a name that describes your desired function. For example, the utility functions dealing with waiting for operations are in the &lt;code>wait&lt;/code> package and include functionality like &lt;code>Poll&lt;/code>. The full name is &lt;code>wait.Poll&lt;/code>.&lt;/li>
&lt;li>All filenames should be lowercase.&lt;/li>
&lt;li>Go source files and directories use underscores, not dashes.
&lt;ul>
&lt;li>Package directories should generally avoid using separators as much as possible. When package names are multiple words, they usually should be in nested subdirectories.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Document directories and filenames should use dashes rather than underscores.&lt;/li>
&lt;li>Examples should also illustrate &lt;a href="https://kubernetes.io/docs/concepts/configuration/overview/"
 
 target="_blank" rel="noopener">best practices for configuration and using the system&lt;/a>
.&lt;/li>
&lt;li>Follow these conventions for third-party code:
&lt;ul>
&lt;li>Go code for normal third-party dependencies is managed using &lt;a href="https://go.dev/wiki/Modules"
 
 target="_blank" rel="noopener">go modules&lt;/a>
 and is described in the kubernetes &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-architecture/vendor.md"
 
 target="_blank" rel="noopener">vendoring guide&lt;/a>
.&lt;/li>
&lt;li>Other third-party code belongs in &lt;code>third_party&lt;/code>.
&lt;ul>
&lt;li>forked third party Go code goes in &lt;code>third_party/forked&lt;/code>.&lt;/li>
&lt;li>forked &lt;em>golang stdlib&lt;/em> code goes in &lt;code>third_party/forked/golang&lt;/code>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Third-party code must include licenses. This includes modified third-party code and excerpts, as well.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item><item><title>Section 8: Community</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/08-community/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/08-community/</guid><description>&lt;h2 id="section-8-community">Section 8: Community&lt;/h2>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you’re about to learn&lt;/h2>
&lt;p>It’s time to learn about communication and community among Kubernetes contributors. By the end of this unit, you will:&lt;/p>
&lt;ul>
&lt;li>Understand the size, diversity, and capability of the Kubernetes community&lt;/li>
&lt;li>Be able to interact with members productively&lt;/li>
&lt;li>When to use email, when to use Slack, when to use GitHub issues, etc.&lt;/li>
&lt;li>Know the venues for involvement, including Kubecon and SIG meetings.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-big-is-the-kubernetes-contributor-community">How big is the Kubernetes contributor community?&lt;/h2>
&lt;p>The Kubernetes community has &lt;em>thousands&lt;/em> of active contributors.&lt;/p></description></item><item><title>Help Wanted and Good First Issue Labels</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/help-wanted/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/help-wanted/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>We use two labels to identify issues that have been specifically created or selected for new contributors: &lt;a href="#help-wanted"
 
 >help wanted&lt;/a>
 and &lt;a href="#good-first-issue"
 
 >good first
issue&lt;/a>
. The &lt;code>good first issue&lt;/code> label is a subset of the &lt;code>help wanted&lt;/code>
label, indicating that members have committed to providing extra assistance for
new contributors. All &lt;code>good first issue&lt;/code> items also have the &lt;code>help wanted&lt;/code>
label.&lt;/p>
&lt;p>We also have some &lt;a href="#suggestions-for-experienced-community-members"
 
 >suggestions&lt;/a>
 for using these labels to help
grow and improve our community.&lt;/p></description></item><item><title>Section 9: Documentation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/09-documentation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/09-documentation/</guid><description>&lt;h2 id="section-9-documentation">Section 9: Documentation&lt;/h2>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you&amp;rsquo;re about to learn&lt;/h2>
&lt;p>This unit is about documentation, and by the end, you will:&lt;/p>
&lt;ul>
&lt;li>Know where documentation is stored for Kubernetes&lt;/li>
&lt;li>Understand the importance of localization&lt;/li>
&lt;li>Understand the process and responsibilities for updating documentation&lt;/li>
&lt;li>Know who is responsible for documentation&lt;/li>
&lt;li>Locate the style guide and other guidance for writing documentation&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="how-is-the-kubernetes-documentation-organized">How is the Kubernetes documentation organized?&lt;/h2>
&lt;p>The documentation for the Kubernetes project can be divided into a number of categories.&lt;/p></description></item><item><title>Issue Triage Guidelines</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/issue-triage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/issue-triage/</guid><description>&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="#scope"
 
 >Scope&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-triaging"
 
 >What Is Triaging?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-is-triaging-beneficial"
 
 >Why Is Triaging Beneficial?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-to-triage-a-step-by-step-flow"
 
 >How to Triage: A Step-by-Step Flow&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#triage-related-tools"
 
 >Triage-Related Tools&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#permissions-and-the-bot"
 
 >Permissions and the Bot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#triage-party"
 
 >Triage Party&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#github-project-boards"
 
 >GitHub Project Boards&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#devstats"
 
 >DevStats&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#process-pointers-and-advice-from-sigs"
 
 >Process Pointers and Advice from SIGs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#running-a-triage-meeting-tips-from-api-machinery"
 
 >Running a Triage Meeting: Tips from api-machinery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#triage-guide-by-cluster-lifecycle"
 
 >Triage Guide by cluster-lifecycle&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#step-one-review-newly-created-open-issues"
 
 >Step One: Review Newly Created Open Issues&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#conducting-searches"
 
 >Conducting Searches&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#step-two-triage-issues-by-type"
 
 >Step Two: Triage Issues by Type&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#support-requests"
 
 >Support Requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#abandoned-or-wrongly-placed-issues"
 
 >Abandoned or Wrongly Placed Issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#needs-more-information"
 
 >Needs More Information&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bugs"
 
 >Bugs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#help-wantedgood-first-issues"
 
 >Help Wanted/Good First Issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kind-labels"
 
 >Kind Labels&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#step-three-define-priority"
 
 >Step Three: Define Priority&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#step-four-find-and-set-the-right-sigs-to-own-an-issue"
 
 >Step Four: Find and Set the Right SIG(s) to Own an Issue&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#self-assigning"
 
 >Self-Assigning&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#step-five-follow-up"
 
 >Step Five: Follow Up&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#if-no-pr-is-created-for-an-issue-within-the-current-release-cycle"
 
 >If No PR Is Created for an Issue Within the Current Release Cycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#if-a-sig-label-is-assigned-but-no-action-is-taken-within-30-days"
 
 >If a SIG Label Is Assigned, but No Action Is Taken Within 30 Days&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#if-an-issue-has-no-activity-after-90-days"
 
 >If an Issue Has No Activity After 90 Days&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#further-notes"
 
 >Further Notes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#support-requests-channels"
 
 >Support Requests: Channels&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-support-response-example"
 
 >User Support Response: Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>These guidelines serve as a primary document for triaging incoming issues to Kubernetes. SIGs and projects are encouraged to use this guidance as a starting point, and customize to address specific triaging needs.&lt;/p></description></item><item><title>NCO Host Handbook</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation/nco-host-handbook/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation/nco-host-handbook/</guid><description>&lt;h2 id="host-responsibilities">Host Responsibilities&lt;/h2>
&lt;p>Any active contributor with &lt;a href="https://github.com/kubernetes/community/blob/master/community-membership.md#member"
 
 target="_blank" rel="noopener">org membership&lt;/a>
 is invited to participate in New Contributor Orientation (NCO) meetings as a host. A host is an active contributor who participates in NCO by helping to answer attendee questions about contribution based on that host&amp;rsquo;s own unique experience contributing to the project.&lt;/p>
&lt;p>The goal of the New Contributor Orientation meeting is to help prospective new contributors find their way in the Kubernetes community by providing them with basic information about the community to help orient them within it, and to provide some mentorship through Q&amp;amp;A with existing contributors. Hosts should keep the audience in mind, and gear their answers to help the attendees find their own path in the community.&lt;/p></description></item><item><title>Section 10: Architecture and Enhancements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/10-architecture/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/onboarding/10-architecture/</guid><description>&lt;h2 id="section-10-architecture-and-enhancements">Section 10: Architecture and Enhancements&lt;/h2>
&lt;hr>
&lt;h2 id="what-youre-about-to-learn">What you’re about to learn&lt;/h2>
&lt;p>We’re getting into the guts of Kubernetes now! After this module, you will:&lt;/p>
&lt;ul>
&lt;li>Be able to locate the architecture documents for Kubernetes&lt;/li>
&lt;li>Understand how the different components interact&lt;/li>
&lt;li>Know how features and major changes are added to Kubernetes&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="where-are-the-architecture-documents">Where are the architecture documents?&lt;/h2>
&lt;p>The good news is that the Kubernetes architecture is very well documented.&lt;/p>
&lt;ul>
&lt;li>A great place to start is &lt;a href="https://kubernetes.io/docs/concepts/overview/components/"
 
 target="_blank" rel="noopener">this overview of Kubernetes components&lt;/a>
.&lt;/li>
&lt;li>You can find the cluster architecture in the &lt;a href="https://kubernetes.io/docs/concepts/architecture/"
 
 target="_blank" rel="noopener">Concepts section of the documentation&lt;/a>
.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="what-are-the-components-of-a-kubernetes-cluster">What are the components of a Kubernetes cluster?&lt;/h2>
&lt;p>A Kubernetes deployment is called a cluster. So what is it made of?&lt;/p></description></item><item><title>Non-code Contributions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/non-code-contributions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/non-code-contributions/</guid><description>&lt;p>&lt;em>This section is new and in progress. Expect this document to change often.&lt;/em>&lt;/p>
&lt;p>&lt;em>If you are interested in helping define and structure this work, &lt;a href="https://docs.google.com/document/d/1gdFWfkrapQclZ4-z4Lx2JwqKsJjXXUOVoLhBzZiZgSk/edit#"
 
 target="_blank" rel="noopener">check the weekly meeting notes&lt;/a>
 for information on how to get involved. You can also find us in the SIG Contributor Experience &lt;a href="https://kubernetes.slack.com/messages/sig-contribex"
 
 target="_blank" rel="noopener">Slack channel&lt;/a>
.&lt;/em>&lt;/p>
&lt;p>&lt;em>All contributors welcome, new and old!&lt;/em>&lt;/p>
&lt;h3 id="what-is-this">What is this?&lt;/h3>
&lt;p>The list below is meant to help non-code contributors find areas of the Kubernetes project where their expertise can be best utilized. The goal of this is to both provide a starting guide for anyone looking to become a contributor not necessarily writing code, and also to fill any needs that the SIGs have that might not currently be filled by code-focused contributors.&lt;/p></description></item><item><title>Adding Release Notes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/release-notes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/release-notes/</guid><description>&lt;p>On the &lt;a href="https://git.k8s.io/kubernetes/"
 
 target="_blank" rel="noopener">kubernetes/kubernetes repository&lt;/a>
, release notes
are required for any pull request with user-visible changes, this could mean:&lt;/p>
&lt;ul>
&lt;li>User facing, critical bug-fixes&lt;/li>
&lt;li>Notable feature additions&lt;/li>
&lt;li>Output format changes&lt;/li>
&lt;li>Deprecations or removals&lt;/li>
&lt;li>Metrics changes&lt;/li>
&lt;li>Dependency changes&lt;/li>
&lt;li>API changes&lt;/li>
&lt;/ul>
&lt;p>Release notes are one of the most important reference points for users about to
install or upgrade to a particular release of Kubernetes.&lt;/p>
&lt;h2 id="does-my-pull-request-need-a-release-note">Does my pull request need a release note?&lt;/h2>
&lt;p>Any user-visible or operator-visible change qualifies for a release note. This
could be a:&lt;/p></description></item><item><title>OWNERS Files</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/owners/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/owners/</guid><description>&lt;h2 id="overview">Overview&lt;/h2>
&lt;p>OWNERS files are used to designate responsibility over different parts of the Kubernetes codebase.
Today, we use them to assign the &lt;strong>&lt;a href="https://git.k8s.io/community/community-membership.md#reviewer"
 
 target="_blank" rel="noopener">reviewer&lt;/a>
&lt;/strong> and &lt;strong>&lt;a href="https://git.k8s.io/community/community-membership.md#approver"
 
 target="_blank" rel="noopener">approver&lt;/a>
&lt;/strong>
roles (defined in our &lt;a href="https://git.k8s.io/community/community-membership.md"
 
 target="_blank" rel="noopener">community membership doc&lt;/a>
) that are used in our two-phase code review
process. Our OWNERS files were inspired by &lt;a href="https://chromium.googlesource.com/chromium/src/&amp;#43;/master/docs/code_reviews.md"
 
 target="_blank" rel="noopener">Chromium OWNERS files&lt;/a>
 which in turn
inspired &lt;a href="https://help.github.com/articles/about-codeowners/"
 
 target="_blank" rel="noopener">GitHub&amp;rsquo;s CODEOWNERS files&lt;/a>
&lt;/p>
&lt;p>The velocity of a project that uses code review is limited by the number of people capable of
reviewing code. The quality of a person&amp;rsquo;s code review is limited by their familiarity with the code
under review. Our goal is to address both of these concerns through the prudent use and maintenance
of OWNERS files.&lt;/p></description></item><item><title>Community Expectations</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/expectations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/guide/expectations/</guid><description>&lt;p>Kubernetes is a community project.
Consequently, it is wholly dependent on its community to provide a productive, friendly and collaborative environment.&lt;/p>
&lt;p>The first and foremost goal of the Kubernetes community is to develop orchestration
technology that radically simplifies the process of creating reliable
distributed systems.
However a second, equally important goal is the creation
of a community that fosters easy, agile development of such orchestration
systems.&lt;/p>
&lt;p>We therefore describe the expectations for members of the Kubernetes community.
This document is intended to be a living one that evolves as the community evolves via the same PR and code review process that shapes the rest of the project.
It currently covers the expectations of conduct that govern all members of the community as well as the expectations around code review that govern all active contributors to Kubernetes.&lt;/p></description></item><item><title>NCO Lead Handbook</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation/nco-lead-handbook/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation/nco-lead-handbook/</guid><description>&lt;h2 id="meeting-lead-roles">Meeting Lead Roles&lt;/h2>
&lt;p>The NCO meeting Lead is responsible for running the NCO meeting for at least 1 [monthly] session. Each NCO Lead is responsible for identifying at least 1 NCO Lead to succeed them.&lt;/p>
&lt;h2 id="nco-lead-pre-requisites">NCO Lead Pre-requisites&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://github.com/kubernetes/community/blob/master/community-membership.md#member"
 
 target="_blank" rel="noopener">Kubernetes Org Membership&lt;/a>

&lt;ul>
&lt;li>The NCO meeting lead must be an active contributor.&lt;/li>
&lt;li>An NCO Lead should also be active on the &lt;a href="https://slack.k8s.io"
 
 target="_blank" rel="noopener">Kubernetes Slack&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Availability to lead at least 1 meeting in at least 1 month&lt;/li>
&lt;li>Attend at least 1 NCO session or have watched at least 1 recording of an NCO session&lt;/li>
&lt;li>Interest in helping new and prospective contributors find their way in the community&lt;/li>
&lt;/ul>
&lt;h2 id="nco-lead-responsibilities">NCO Lead Responsibilities&lt;/h2>
&lt;ul>
&lt;li>Determine the time of the monthly session
&lt;ul>
&lt;li>Coordinate with sig-contribex leads (&lt;a href="mailto:sig-contribex-leads@kubernetes.io"
 
 >sig-contribex-leads@kubernetes.io&lt;/a>
) if meeting times need to be changed from the standard schedule.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Create and configure meeting materials for the lead&amp;rsquo;s session(s)
&lt;ul>
&lt;li>Create a new slide deck for the session based on either the previous month&amp;rsquo;s session or the &lt;a href="https://docs.google.com/presentation/d/1EHAqousQCzoaKi90JFAE5Ta07Qab1VjMppJ9XTFRzc8/edit?usp=sharing"
 
 target="_blank" rel="noopener">template&lt;/a>
&lt;/li>
&lt;li>Contact SIG Leads to update the &amp;ldquo;Calls for Help&amp;rdquo; section in the session. Comms should be sent to SIG leads &lt;em>at least one week in advance&lt;/em> via the &lt;a href="https://kubernetes.slack.com/archives/CD6LAC15M"
 
 target="_blank" rel="noopener">chairs-and-techleads channel&lt;/a>
 in Slack &lt;strong>and&lt;/strong> the &lt;a href="mailto:leads@kubernetes.io"
 
 >leads@kubernetes.io&lt;/a>
 mailing list.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Publish the meeting content in &lt;a href="https://github.com/kubernetes/community/blob/main/mentoring/new-contributor-orientation/nco-slides"
 
 target="_blank" rel="noopener">this repo&amp;rsquo;s nco-slides folder&lt;/a>
 at least 1 day before the session is held
&lt;ul>
&lt;li>Publishing the meeting content in advance of the meeting will make the content more accessible to prospective attendees, and allow them to judge the value of the meeting in advance.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Lead the NCO Meeting
&lt;ul>
&lt;li>Each NCO meeting agenda should consist of roughly 40min of presented content followed by roughly 20min of freeform Q&amp;amp;A. The lead is responsible for keeping track of time to ensure the meeting sticks roughly to the scheduled agenda. Both the presentation and Q&amp;amp;A portions of the meeting are important for delivering on the goals of the NCO initiative.&lt;/li>
&lt;li>If the lead will not give the presentation themselves, they are responsible for identifying a host who will give the presentation effectively and efficiently.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Identify at least 1 succeeding lead
&lt;ul>
&lt;li>If you are unable to identify a lead to succeed you, contact the sig-contribex leads (&lt;a href="mailto:sig-contribex-leads@kubernetes.io"
 
 >sig-contribex-leads@kubernetes.io&lt;/a>
) as early as is reasonable.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="determining-meeting-times">Determining Meeting Time(s)&lt;/h2>
&lt;p>NCO Meetings aim to make contribution more accessible to anyone interested in it. As such, meetings should take into account accessibility in different timezones around the world. Typically, this requires running the meeting at least twice. The recommended schedule for sessions is:&lt;/p></description></item><item><title>New Contributor Resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation/new-contributor-resources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation/new-contributor-resources/</guid><description>&lt;h2 id="join-the-community">Join the Community&lt;/h2>
&lt;ul>
&lt;li>Join the Kubernetes Developer Google Group (k-dev): &lt;a href="https://groups.google.com/a/kubernetes.io/g/dev"
 
 target="_blank" rel="noopener">https://groups.google.com/a/kubernetes.io/g/dev&lt;/a>
&lt;/li>
&lt;li>Check out &lt;a href="https://github.com/kubernetes/community"
 
 target="_blank" rel="noopener">kubernetes/community&lt;/a>
 for an overview of our community.&lt;/li>
&lt;li>Come join us in the &lt;a href="https://slack.k8s.io"
 
 target="_blank" rel="noopener">Kubernetes Slack&lt;/a>
:
&lt;ul>
&lt;li>Join the #kubernetes-new-contributors channel&lt;/li>
&lt;li>Join the channels of 1 or more SIGs you&amp;rsquo;re interested in&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Participate in the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation"
 
 >New Contributor Orientation&lt;/a>
 to get an introduction to Kubernetes development and the community.&lt;/li>
&lt;/ul>
&lt;h2 id="getting-familiar-with-the-process">Getting Familiar with the Process&lt;/h2>
&lt;ol>
&lt;li>Follow the &lt;a href="https://www.kubernetes.dev/docs/guide/"
 
 target="_blank" rel="noopener">Contributor Guide&lt;/a>
 to get familiar with various contributor tools and processes.&lt;/li>
&lt;li>Read &lt;a href="https://www.kubernetes.dev/docs/guide/first-contribution/"
 
 target="_blank" rel="noopener">The First Contribution Guide&lt;/a>
 for a walkthrough of your first Pull Request (PR) process.&lt;/li>
&lt;/ol>
&lt;h2 id="additional-resources">Additional Resources&lt;/h2>
&lt;ul>
&lt;li>Explore the comprehensive Resources List at &lt;a href="https://bit.ly/kubernetes-resources"
 
 target="_blank" rel="noopener">https://bit.ly/kubernetes-resources&lt;/a>
&lt;/li>
&lt;/ul></description></item><item><title>CRI API version skew policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/code/cri-api-version-skew-policy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/code/cri-api-version-skew-policy/</guid><description>&lt;p>CRI is a plugin interface which enables the kubelet to use a wide variety of container runtimes,
without the need to recompile. CRI consists of a protocol buffers and gRPC API.
Read more about CRI API at &lt;a href="https://kubernetes.io/docs/concepts/architecture/cri/"
 
 target="_blank" rel="noopener">kubernetes docs&lt;/a>
.&lt;/p>
&lt;p>The CRI API is &lt;strong>only&lt;/strong> intended to be used for the kubelet to container runtime
interactions, or for node-level troubleshooting using a tool such as &lt;code>crictl&lt;/code>.
It is &lt;strong>not&lt;/strong> a common purpose container runtime API for general use, and is &lt;strong>intended&lt;/strong>
to be Kubernetes-centric. This is why there may be an undocumented logic
within a container runtimes that assumes the order or specific parameters
of call(s) that the kubelet makes. Attempts to call CRI API in a different order
by a client different than the kubelet, might result in unrecoverable error.
Whenever discovered, this logic is being documented and avoided.&lt;/p></description></item><item><title>Kubernetes feature development and container runtimes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/code/cri-api-dev-policies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/code/cri-api-dev-policies/</guid><description>&lt;p>CRI is a plugin interface which enables the kubelet to use a wide variety of container runtimes,
without the need to recompile. CRI consists of a protocol buffers and gRPC API.
Read more about CRI API at &lt;a href="https://kubernetes.io/docs/concepts/architecture/cri/"
 
 target="_blank" rel="noopener">kubernetes docs&lt;/a>
.&lt;/p>
&lt;p>The mechanics of a feature development that requires new CRI APIs is covered in
documentation on CRI API &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/code/cri-api-version-skew-policy#feature-development"
 
 >feature-development&lt;/a>
.
This article defines policies for developing new Kubernetes features
that require CRI API changes. The goal of these policies is to ensure great user
experience for people trying the new feature early, adopting it when it is
enabled by default, and relying on it as a GA functionality.&lt;/p></description></item><item><title>Kubernetes v1.37 Release Information</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/release/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/release/</guid><description>&lt;h4 id="links">Links&lt;/h4>
&lt;ul>
&lt;li>&lt;a href="https://git.k8s.io/sig-release/releases/release-1.37/README.md"
 
 target="_blank" rel="noopener">This document&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release-1.37/release-team.md"
 
 target="_blank" rel="noopener">Release Team&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release-1.37/links.md"
 
 target="_blank" rel="noopener">Release Links&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://rel.k8s.io/release-team-cal"
 
 target="_blank" rel="noopener">v1.37 Release Calendar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/kubernetes/milestone/70"
 
 target="_blank" rel="noopener">kubernetes/kubernetes v1.37 milestone&lt;/a>
&lt;/li>
&lt;li>Contact: &lt;a href="https://kubernetes.slack.com/archives/C2C40FMNF"
 
 target="_blank" rel="noopener">#sig-release&lt;/a>
 on
slack, &lt;a href="mailto:release-team@kubernetes.io"
 
 >release-team&lt;/a>
 on e-mail&lt;/li>
&lt;/ul>
&lt;h4 id="guides">Guides&lt;/h4>
&lt;ul>
&lt;li>&lt;a href="https://git.k8s.io/community/contributors/devel/sig-release/release.md"
 
 target="_blank" rel="noopener">Targeting Issues and PRs to This Milestone&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure"
 
 target="_blank" rel="noopener">Triaging and Escalating Test Failures&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The v1.37 release cycle is proposed as follows:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Monday 18th May 2026&lt;/strong>: Week 1 — Release cycle begins&lt;/li>
&lt;li>&lt;strong>Tuesday 9th June 2026 (AoE) / Wednesday 10th June 2026, 12:00 UTC&lt;/strong>: Week 4 — &lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#prr-freeze"
 
 target="_blank" rel="noopener">Production Readiness Freeze&lt;/a>
&lt;/li>
&lt;li>&lt;strong>Tuesday 16th June 2026 (AoE) / Wednesday 17th June 2026, 12:00 UTC&lt;/strong>: Week 5 — &lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze"
 
 target="_blank" rel="noopener">Enhancements Freeze&lt;/a>
&lt;/li>
&lt;li>&lt;strong>Thursday 18th - Friday 19th June 2026&lt;/strong>: Week 5 — KubeCon India&lt;/li>
&lt;li>&lt;strong>Thursday 9th July 2026 (AoE) / Friday 10th July 2026, 12:00 UTC&lt;/strong>: Week 8 — &lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#feature-blog-freeze"
 
 target="_blank" rel="noopener">Feature blog freeze&lt;/a>
&lt;/li>
&lt;li>&lt;strong>Wednesday 22nd July 2026 (AoE) / Thursday 23rd July 2026, 12:00 UTC&lt;/strong>: Week 10 — &lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze"
 
 target="_blank" rel="noopener">Code Freeze&lt;/a>
 and &lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#test-freeze"
 
 target="_blank" rel="noopener">Test Freeze&lt;/a>
&lt;/li>
&lt;li>&lt;strong>Tuesday 28th - Thursday 30th July 2026&lt;/strong>: Week 11 — KubeCon Japan&lt;/li>
&lt;li>&lt;strong>Wednesday 5th August 2026 (AoE) / Thursday 6th August 2026, 12:00 UTC&lt;/strong>: Week 12 — &lt;a href="https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#docs-freeze"
 
 target="_blank" rel="noopener">Docs Freeze&lt;/a>
&lt;/li>
&lt;li>&lt;strong>Wednesday 26th August 2026&lt;/strong>: Week 15 — Kubernetes v1.37.0 released&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>[!NOTE]
Deadlines are expressed in &amp;ldquo;Anywhere on Earth&amp;rdquo; (AoE) time. This means the date ends when the calendar day finishes in the last timezone on Earth (UTC-12).
Example: A deadline of Thursday, Oct 16 (AoE) gives contributors their full Thursday everywhere in the world. The cutoff therefore would be Friday, Oct 17 at 12:00 UTC.&lt;/p></description></item><item><title>Default Branch Migration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/rename/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/rename/</guid><description>&lt;p>This document outlines steps needed to migrate the default branch
of your repo from &lt;code>master&lt;/code> to &lt;code>main&lt;/code>.&lt;/p>
&lt;p>Note: This document is currently a work in progress.&lt;/p>
&lt;p>If you have questions about the process, reach out to the GitHub Management Team
on the &lt;a href="https://kubernetes.slack.com/messages/github-management"
 
 target="_blank" rel="noopener">#github-management&lt;/a>
 channel on slack or open an issue in the &lt;a href="https://github.com/kubernetes/org/issues"
 
 target="_blank" rel="noopener">kubernetes/org&lt;/a>
 repo.&lt;/p>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;input disabled="" type="checkbox"> Create an issue in your repo to track the branch rename.
You can paste this checklist in the issue body.&lt;/p></description></item><item><title>Code Of Conduct</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/code-of-conduct/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/code-of-conduct/</guid><description>&lt;div id="code-of-conduct">

	&lt;p>Kubernetes follows the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct"
 
 >CNCF Code of Conduct&lt;/a>
.&lt;/p>
&lt;p>Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting
the &lt;a href="https://github.com/kubernetes/community/blob/main/committee-code-of-conduct"
 
 target="_blank" rel="noopener">Kubernetes Code of Conduct Committee&lt;/a>
 via &lt;a href="mailto:conduct@kubernetes.io"
 
 >conduct@kubernetes.io&lt;/a>
.&lt;/p>

&lt;/div>
&lt;p>The text of the CNCF Code of Conduct is available below.&lt;/p>
&lt;div id="cncf-code-of-conduct">

	&lt;h2 id="cncf-community-code-of-conduct-v13">CNCF Community Code of Conduct v1.3&lt;/h2>
&lt;p>Other languages available:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ar.md"
 
 target="_blank" rel="noopener">Arabic/العربية&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/bn.md"
 
 target="_blank" rel="noopener">Bengali/বাংলা&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/bg.md"
 
 target="_blank" rel="noopener">Bulgarian/Български&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/zh.md"
 
 target="_blank" rel="noopener">Chinese/中文&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/cs.md"
 
 target="_blank" rel="noopener">Czech/Česky&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/fa.md"
 
 target="_blank" rel="noopener">Farsi/فارسی&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/fr.md"
 
 target="_blank" rel="noopener">French/Français&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/de.md"
 
 target="_blank" rel="noopener">German/Deutsch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/he.md"
 
 target="_blank" rel="noopener">Hebrew/עברית&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/hi.md"
 
 target="_blank" rel="noopener">Hindi/हिन्दी&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/hu.md"
 
 target="_blank" rel="noopener">Hungarian/Magyar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/id.md"
 
 target="_blank" rel="noopener">Indonesian/Bahasa Indonesia&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/it.md"
 
 target="_blank" rel="noopener">Italian/Italiano&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ja.md"
 
 target="_blank" rel="noopener">Japanese/日本語&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ko.md"
 
 target="_blank" rel="noopener">Korean/한국어&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/pl.md"
 
 target="_blank" rel="noopener">Polish/Polski&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/pt.md"
 
 target="_blank" rel="noopener">Portuguese/Português&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ru.md"
 
 target="_blank" rel="noopener">Russian/Русский&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/es.md"
 
 target="_blank" rel="noopener">Spanish/Español&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/zh-tw.md"
 
 target="_blank" rel="noopener">Traditional Chinese/繁體中文&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/tr.md"
 
 target="_blank" rel="noopener">Turkish/Türkçe&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/uk.md"
 
 target="_blank" rel="noopener">Ukrainian/Українська&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/vi.md"
 
 target="_blank" rel="noopener">Vietnamese/Tiếng Việt&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="community-code-of-conduct">Community Code of Conduct&lt;/h3>
&lt;p>As contributors, maintainers, and participants in the CNCF community, and in the interest of fostering
an open and welcoming community, we pledge to respect all people who participate or contribute
through reporting issues, posting feature requests, updating documentation,
submitting pull requests or patches, attending conferences or events, or engaging in other community or project activities.&lt;/p></description></item><item><title>Code of Conduct Committee Incident Reporting and Response Process</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/code-of-conduct-incident-process/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/code-of-conduct-incident-process/</guid><description>&lt;p>This document outlines the Code of Conduct Committee&amp;rsquo;s workflow when receiving and responding to an incident report. As each report is unique, the process is described at a high level.&lt;/p>
&lt;h2 id="when-and-where-does-the-kubernetes-code-of-conduct-apply">When and Where does the Kubernetes Code of Conduct apply?&lt;/h2>
&lt;p>The Code of Conduct applies between all community members when interacting about Kubernetes. This primarily addresses official spaces, but if conduct-related issues are affecting our community in unofficial spaces in ways that are likely also affect interpersonal interactions in &lt;em>official&lt;/em> spaces, we may be asked to become involved.&lt;/p></description></item><item><title>KCD Around the World: New York</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/07/28/kcd-around-the-world-new-york/</link><pubDate>Tue, 28 Jul 2026 10:00:00 -0800</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/07/28/kcd-around-the-world-new-york/</guid><description>&lt;p>Welcome to KCD Around the World, a new series where we explore &lt;a href="https://www.cncf.io/kcds/"
 
 target="_blank" rel="noopener">Kubernetes Community Days&lt;/a>
 from every corner of the globe. When most people think of KCD, they think about talks and technical sessions, but behind every event is a community of volunteers, contributors, organizers and attendees who make it all happen. Through conversations with the people behind each KCD, we&amp;rsquo;ll share what makes it unique.&lt;/p>
&lt;p>Our first stop: New York City. To learn what made this year&amp;rsquo;s event special, we interview Christopher Tineo, one of the organizers for KCD NY 2026.&lt;/p></description></item><item><title>From Working Group to SIG Architecture: spotlight on AI Conformance</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/07/09/sig-arch-ai-conformance-2026/</link><pubDate>Thu, 09 Jul 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/07/09/sig-arch-ai-conformance-2026/</guid><description>&lt;p>In this SIG Architecture spotlight we talked with &lt;a href="https://github.com/janetkuo"
 
 target="_blank" rel="noopener">Janet Kuo&lt;/a>
 (Google)
and &lt;a href="https://github.com/terrytangyuan"
 
 target="_blank" rel="noopener">Yuan Tang&lt;/a>
 (Red Hat) about the journey of AI Conformance in
Kubernetes, from the initial &lt;a href="https://github.com/kubernetes/community/blob/main/governance.md#working-groups"
 
 target="_blank" rel="noopener">Working
Group&lt;/a>
 to the
integration &lt;a href="https://github.com/kubernetes/community/tree/main/sig-architecture#architecture-special-interest-group"
 
 target="_blank" rel="noopener">SIG Architecture&lt;/a>

as a subproject.&lt;/p>
&lt;h2 id="introductions">Introductions&lt;/h2>
&lt;p>&lt;strong>Frederico Muñoz and Kirti Goyal (FK): Hi Janet, Yuan, and thank you for the opportunity to learn a
bit more about AI Conformance. Can you tell us a bit about yourselves and how you got involved in
Kubernetes?&lt;/strong>&lt;/p></description></item><item><title>Human-Centered Automation for Kubernetes Localization in the AI Era</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/26/human-centered-automation-kubernetes-localization-ai-era/</link><pubDate>Fri, 26 Jun 2026 14:00:00 -0800</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/26/human-centered-automation-kubernetes-localization-ai-era/</guid><description>&lt;p>This year, the Kubernetes localization subproject participated in LFX Mentorship for the first time through the project &lt;a href="https://mentorship.lfx.linuxfoundation.org/project/c71fdb2a-8e77-447d-ae8b-3e977e0fd86a"
 
 target="_blank" rel="noopener">&amp;ldquo;CNCF - Kubernetes: SIG Docs Localization: AI-era localization automation&amp;rdquo;&lt;/a>
. The work was also tracked in &lt;a href="https://github.com/kubernetes/website/issues/54075"
 
 target="_blank" rel="noopener">kubernetes/website#54075&lt;/a>
.&lt;/p>
&lt;p>As the mentee on this project, I worked with Kubernetes SIG Docs localization mentors on a practical maintenance question:&lt;/p>
&lt;blockquote>
&lt;p>In an era of rapidly improving AI translation tools, what kind of automation actually helps localization maintainers?&lt;/p>&lt;/blockquote>
&lt;p>Kubernetes documentation is used by readers around the world. Localization helps make the project more accessible to users and contributors by providing content in their native languages. But localization is not only about translating pages once. It is also about maintaining those pages as Kubernetes changes.&lt;/p></description></item><item><title>Open source maintainership in the age of AI</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/26/open-source-maintainership-in-the-age-of-ai/</link><pubDate>Fri, 26 Jun 2026 10:00:00 -0800</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/26/open-source-maintainership-in-the-age-of-ai/</guid><description>&lt;p>AI has really changed the game around software development.
More people are leveraging AI than ever to contribute patches to projects they use.
To me, this is a good thing as more folks will contribute patches rather than fork or not fix them.
The main problem is that AI has made generating code fast but there has been very little improvement in maintaining code bases.
In this post, we will highlight the ways the Kubernetes community is adapting to the world of AI assisted coding.&lt;/p></description></item><item><title>Spotlight on WG Device Management</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/24/wg-device-management-spotlight-2026/</link><pubDate>Wed, 24 Jun 2026 10:00:00 -0800</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/24/wg-device-management-spotlight-2026/</guid><description>&lt;p>The rising popularity of AI, Edge, and Telecommunications workloads on Kubernetes has led to new requirements for hardware management. We now need hardware specification beyond CPU time and memory allocations. This includes allocating GPUs, TPUs, network interfaces, and other hardware, sometimes after pod start and occasionally through time-sharing.&lt;/p>
&lt;p>Efficiently managing this specialized hardware is the mission of the &lt;strong>&lt;a href="https://www.kubernetes.dev/community/community-groups/wg/device-management/"
 
 target="_blank" rel="noopener">Device Management Working Group&lt;/a>
&lt;/strong>. Their cornerstone project, &lt;strong>&lt;a href="https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/"
 
 target="_blank" rel="noopener">Dynamic Resource Allocation (DRA)&lt;/a>
&lt;/strong>, recently graduated to GA, marking a fundamental shift in how the project handles hardware-intensive workloads at scale.&lt;/p></description></item><item><title>Spotlight on SIG Storage</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/15/sig-storage-spotlight-2026/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/15/sig-storage-spotlight-2026/</guid><description>&lt;p>In our ongoing SIG Spotlight series, we shine a light on the groups that keep the Kubernetes project
moving forward. This time, we catch up with &lt;strong>&lt;a href="https://github.com/kubernetes/community/tree/main/sig-storage"
 
 target="_blank" rel="noopener">SIG
Storage&lt;/a>
&lt;/strong>, the group responsible
for persistent data, volume management, and the interfaces that connect Kubernetes workloads to the
storage systems beneath them.&lt;/p>
&lt;p>We spoke with &lt;a href="https://github.com/xing-yang"
 
 target="_blank" rel="noopener">Xing Yang&lt;/a>
, Co-Chair of SIG Storage and Software
Engineer at VMware by Broadcom, about the SIG&amp;rsquo;s history, the features shipping in recent Kubernetes
releases, and where storage in Kubernetes is headed as AI workloads become the norm.&lt;/p></description></item><item><title>Eliminating Kubernetes Image Signature Replication</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/05/image-signature-routing/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/06/05/image-signature-routing/</guid><description>&lt;p>The &lt;a href="https://kubernetes.io/blog/2026/03/17/image-promoter-rewrite/"
 
 target="_blank" rel="noopener">image promoter rewrite&lt;/a>
 laid the
groundwork for simplifying how Kubernetes delivers container image signatures.
One of the rewrite phases (Phase 6) separated image signing from signature
replication into distinct pipeline stages. This follow-up covers the next step:
eliminating signature replication entirely.&lt;/p>
&lt;h2 id="the-problem">The problem&lt;/h2>
&lt;p>After promoting container images to &lt;code>registry.k8s.io&lt;/code>, the promoter signs them
using &lt;a href="https://github.com/sigstore/cosign"
 
 target="_blank" rel="noopener">cosign&lt;/a>
 with keyless (OIDC)
signatures. These signatures are stored as OCI artifacts alongside the images,
tagged with the convention &lt;code>sha256-&amp;lt;digest&amp;gt;.sig&lt;/code> and &lt;code>sha256-&amp;lt;digest&amp;gt;.att&lt;/code>.&lt;/p></description></item><item><title>Announcing the AI Gateway Working Group</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/03/09/announcing-ai-gateway-wg/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/03/09/announcing-ai-gateway-wg/</guid><description>&lt;p>The community around Kubernetes includes a number of Special Interest Groups (SIGs) and Working Groups (WGs) facilitating discussions on important topics between interested contributors. Today, we&amp;rsquo;re excited to announce the formation of the &lt;a href="https://github.com/kubernetes-sigs/wg-ai-gateway"
 
 target="_blank" rel="noopener">AI Gateway Working Group&lt;/a>
, a new initiative focused on developing standards and best practices for networking infrastructure that supports AI workloads in Kubernetes environments.&lt;/p>
&lt;h2 id="what-is-an-ai-gateway">What is an AI Gateway?&lt;/h2>
&lt;p>In a Kubernetes context, an &lt;em>AI Gateway&lt;/em> refers to network gateway infrastructure (including proxy servers, load-balancers, etc.) that generally implements the &lt;a href="https://gateway-api.sigs.k8s.io/"
 
 target="_blank" rel="noopener">Gateway API&lt;/a>
 specification with enhanced capabilities for AI workloads. Rather than defining a distinct product category, AI Gateways describe infrastructure designed to enforce policy on AI traffic, including:&lt;/p></description></item><item><title>Spotlight on SIG Architecture: API Governance</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/02/12/sig-architecture-api/</link><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/02/12/sig-architecture-api/</guid><description>&lt;p>&lt;em>This is the fifth interview of a SIG Architecture Spotlight series that covers the different
subprojects, and we will be covering &lt;a href="https://github.com/kubernetes/community/blob/main/sig-architecture/README.md#architecture-and-api-governance-1"
 
 target="_blank" rel="noopener">SIG Architecture: API
Governance&lt;/a>
.&lt;/em>&lt;/p>
&lt;p>In this SIG Architecture spotlight we talked with &lt;a href="https://github.com/liggitt"
 
 target="_blank" rel="noopener">Jordan Liggitt&lt;/a>
, lead
of the API Governance sub-project.&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>&lt;strong>FM: Hello Jordan, thank you for your availability. Tell us a bit about yourself, your role and how
you got involved in Kubernetes.&lt;/strong>&lt;/p>
&lt;p>&lt;strong>JL&lt;/strong>: My name is Jordan Liggitt. I&amp;rsquo;m a Christian, husband, father of four, software engineer at
&lt;a href="https://about.google/"
 
 target="_blank" rel="noopener">Google&lt;/a>
 by day, and &lt;a href="https://www.youtube.com/watch?v=UDdr-VIWQwo"
 
 target="_blank" rel="noopener">amateur musician&lt;/a>
 by stealth. I was born in Texas (and still
like to claim it as my point of origin), but I&amp;rsquo;ve lived in North Carolina for most of my life.&lt;/p></description></item><item><title>Announcing the Checkpoint/Restore Working Group</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/01/21/introducing-checkpoint-restore-wg/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2026/01/21/introducing-checkpoint-restore-wg/</guid><description>&lt;p>The community around Kubernetes includes a number of Special Interest Groups (SIGs) and Working Groups (WGs) facilitating discussions on important topics between interested contributors. Today we would like to announce the new &lt;a href="https://github.com/kubernetes/community/tree/main/wg-checkpoint-restore"
 
 target="_blank" rel="noopener">Kubernetes Checkpoint Restore WG&lt;/a>
 focusing on the integration of Checkpoint/Restore functionality into Kubernetes.&lt;/p>
&lt;h2 id="motivation-and-use-cases">Motivation and use cases&lt;/h2>
&lt;p>There are several high-level scenarios discussed in the working group:&lt;/p>
&lt;ul>
&lt;li>Optimizing resource utilization for interactive workloads, such as Jupyter notebooks and AI chatbots&lt;/li>
&lt;li>Accelerating startup of applications with long initialization times, including Java applications and &lt;a href="https://doi.org/10.1145/3731599.3767354"
 
 target="_blank" rel="noopener">LLM inference services&lt;/a>
&lt;/li>
&lt;li>Using periodic checkpointing to enable fault-tolerance for long-running workloads, such as distributed model training&lt;/li>
&lt;li>Providing &lt;a href="https://doi.org/10.1007/978-3-032-10507-3_3"
 
 target="_blank" rel="noopener">interruption-aware scheduling&lt;/a>
 with transparent checkpoint/restore, allowing lower-priority Pods to be preempted while preserving the runtime state of applications&lt;/li>
&lt;li>Facilitating Pod migration across nodes for load balancing and maintenance, without disrupting workloads.&lt;/li>
&lt;li>Enabling forensic checkpointing to investigate and analyze security incidents such as cyberattacks, data breaches, and unauthorized access.&lt;/li>
&lt;/ul>
&lt;p>Across these scenarios, the goal is to help facilitate discussions of ideas between the Kubernetes community and the growing Checkpoint/Restore in Userspace (CRIU) ecosystem. The CRIU community includes several projects that support these use cases, including:&lt;/p></description></item><item><title>Ingress NGINX Retirement: What You Need to Know</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/11/12/ingress-nginx-retirement/</link><pubDate>Wed, 12 Nov 2025 12:00:00 -0500</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/11/12/ingress-nginx-retirement/</guid><description>&lt;p>To prioritize the safety and security of the ecosystem, Kubernetes SIG Network and the Security Response Committee are announcing the upcoming retirement of &lt;a href="https://github.com/kubernetes/ingress-nginx/"
 
 target="_blank" rel="noopener">Ingress NGINX&lt;/a>
. Best-effort maintenance will continue until March 2026. Afterward, there will be no further releases, no bugfixes, and no updates to resolve any security vulnerabilities that may be discovered. &lt;strong>Existing deployments of Ingress NGINX will continue to function and installation artifacts will remain available.&lt;/strong>&lt;/p>
&lt;p>We recommend migrating to one of the many alternatives. Consider &lt;a href="https://gateway-api.sigs.k8s.io/guides/"
 
 target="_blank" rel="noopener">migrating to Gateway API&lt;/a>
, the modern replacement for Ingress. If you must continue using Ingress, many alternative Ingress controllers are &lt;a href="https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/"
 
 target="_blank" rel="noopener">listed in the Kubernetes documentation&lt;/a>
. Continue reading for further information about the history and current state of Ingress NGINX, as well as next steps.&lt;/p></description></item><item><title>Announcing the 2025 Steering Committee Election Results</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/11/09/steering-committee-results-2025/</link><pubDate>Sun, 09 Nov 2025 15:10:00 -0500</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/11/09/steering-committee-results-2025/</guid><description>&lt;p>The &lt;a href="https://github.com/kubernetes/community/tree/main/elections/steering/2025"
 
 target="_blank" rel="noopener">2025 Steering Committee Election&lt;/a>
 is now complete. The Kubernetes Steering Committee consists of 7 seats, 4 of which were up for election in 2025. Incoming committee members serve a term of 2 years, and all members are elected by the Kubernetes Community.&lt;/p>
&lt;p>The Steering Committee oversees the governance of the entire Kubernetes project. With that great power comes great responsibility. You can learn more about the steering committee’s role in their &lt;a href="https://github.com/kubernetes/steering/blob/main/charter.md"
 
 target="_blank" rel="noopener">charter&lt;/a>
.&lt;/p></description></item><item><title>Spotlight on Policy Working Group</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/10/18/wg-policy-spotlight-2025/</link><pubDate>Sat, 18 Oct 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/10/18/wg-policy-spotlight-2025/</guid><description>&lt;p>&lt;em>(Note: The Policy Working Group has completed its mission and is no longer active. This article reflects its work, accomplishments, and insights into how a working group operates.)&lt;/em>&lt;/p>
&lt;p>In the complex world of Kubernetes, policies play a crucial role in managing and securing clusters. But have you ever wondered how these policies are developed, implemented, and standardized across the Kubernetes ecosystem? To answer that, let&amp;rsquo;s take a look back at the work of the Policy Working Group.&lt;/p></description></item><item><title>Spotlight on the Kubernetes Steering Committee</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/09/22/k8s-steering-spotlight-2025/</link><pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/09/22/k8s-steering-spotlight-2025/</guid><description>&lt;p>&lt;em>This interview was conducted in August 2024, and due to the dynamic nature of the Steering
Committee membership and election process it might not represent the actual composition accurately.
The topics covered are, however, overwhelmingly relevant to understand its scope of work. As we
approach the Steering Committee elections, it provides useful insights into the workings of the
Committee.&lt;/em>&lt;/p>
&lt;p>The &lt;a href="https://github.com/kubernetes/steering"
 
 target="_blank" rel="noopener">Kubernetes Steering Committee&lt;/a>
 is the backbone of the
Kubernetes project, ensuring that its vibrant community and governance structures operate smoothly
and effectively. While the technical brilliance of Kubernetes is often spotlighted through its
&lt;a href="https://github.com/kubernetes/community"
 
 target="_blank" rel="noopener">Special Interest Groups (SIGs) and Working Groups (WGs)&lt;/a>
,
the unsung heroes quietly steering the ship are the members of the Steering Committee. They tackle
complex organizational challenges, empower contributors, and foster the thriving open source
ecosystem that Kubernetes is celebrated for.&lt;/p></description></item><item><title>Post-Quantum Cryptography in Kubernetes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/07/18/pqc-in-k8s/</link><pubDate>Fri, 18 Jul 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/07/18/pqc-in-k8s/</guid><description>&lt;p>The world of cryptography is on the cusp of a major shift with the advent of
quantum computing. While powerful quantum computers are still largely
theoretical for many applications, their potential to break current
cryptographic standards is a serious concern, especially for long-lived
systems. This is where &lt;em>Post-Quantum Cryptography&lt;/em> (PQC) comes in. In this
article, I'll dive into what PQC means for TLS and, more specifically, for the
Kubernetes ecosystem. I&amp;rsquo;ll explain what the (suprising) state of PQC in
Kubernetes is and what the implications are for current and future clusters.&lt;/p></description></item><item><title>Changes to Kubernetes Slack</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/06/16/changes-to-kubernetes-slack-2025/</link><pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/06/16/changes-to-kubernetes-slack-2025/</guid><description>&lt;p>&lt;strong>UPDATE&lt;/strong>: We’ve received notice from Salesforce that our Slack workspace &lt;strong>WILL NOT BE DOWNGRADED&lt;/strong> on June 20th. Stand by for more details, but for now, there is no urgency to back up private channels or direct messages.&lt;/p>
&lt;p>&lt;del>Kubernetes Slack will lose its special status and will be changing into a standard free Slack on June 20, 2025&lt;/del>. Sometime later this year, our community may move to a new platform. If you are responsible for a channel or private channel, or a member of a User Group, you will need to take some actions as soon as you can.&lt;/p></description></item><item><title>Spotlight on SIG Apps</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/03/12/sig-apps-spotlight-2025/</link><pubDate>Wed, 12 Mar 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/03/12/sig-apps-spotlight-2025/</guid><description>&lt;p>In our ongoing SIG Spotlight series, we dive into the heart of the Kubernetes project by talking to
the leaders of its various Special Interest Groups (SIGs). This time, we focus on
&lt;strong>&lt;a href="https://github.com/kubernetes/community/tree/main/sig-apps#apps-special-interest-group"
 
 target="_blank" rel="noopener">SIG Apps&lt;/a>
&lt;/strong>,
the group responsible for everything related to developing, deploying, and operating applications on
Kubernetes. &lt;a href="https://www.linkedin.com/in/sandipanpanda"
 
 target="_blank" rel="noopener">Sandipan Panda&lt;/a>

(&lt;a href="https://www.devzero.io/"
 
 target="_blank" rel="noopener">DevZero&lt;/a>
) had the opportunity to interview &lt;a href="https://github.com/soltysh"
 
 target="_blank" rel="noopener">Maciej
Szulik&lt;/a>
 (&lt;a href="https://defenseunicorns.com/"
 
 target="_blank" rel="noopener">Defense Unicorns&lt;/a>
) and &lt;a href="https://github.com/janetkuo"
 
 target="_blank" rel="noopener">Janet
Kuo&lt;/a>
 (&lt;a href="https://about.google/"
 
 target="_blank" rel="noopener">Google&lt;/a>
), the chairs and tech leads of
SIG Apps. They shared their experiences, challenges, and visions for the future of application
management within the Kubernetes ecosystem.&lt;/p></description></item><item><title>Spotlight on SIG etcd</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/03/04/sig-etcd-spotlight/</link><pubDate>Tue, 04 Mar 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/03/04/sig-etcd-spotlight/</guid><description>&lt;p>In this SIG etcd spotlight we talked with &lt;a href="https://github.com/jmhbnz"
 
 target="_blank" rel="noopener">James Blair&lt;/a>
, &lt;a href="https://github.com/serathius"
 
 target="_blank" rel="noopener">Marek
Siarkowicz&lt;/a>
, &lt;a href="https://github.com/wenjiaswe"
 
 target="_blank" rel="noopener">Wenjia Zhang&lt;/a>
, and
&lt;a href="https://github.com/ahrtr"
 
 target="_blank" rel="noopener">Benjamin Wang&lt;/a>
 to learn a bit more about this Kubernetes Special Interest
Group.&lt;/p>
&lt;h2 id="introducing-sig-etcd">Introducing SIG etcd&lt;/h2>
&lt;p>&lt;strong>Frederico: Hello, thank you for the time! Let’s start with some introductions, could you tell us a
bit about yourself, your role and how you got involved in Kubernetes.&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Benjamin:&lt;/strong> Hello, I am Benjamin. I am a SIG etcd Tech Lead and one of the etcd maintainers. I
work for VMware, which is part of the Broadcom group. I got involved in Kubernetes &amp;amp; etcd &amp;amp; CSI
(&lt;a href="https://github.com/container-storage-interface/spec/blob/master/spec.md"
 
 target="_blank" rel="noopener">Container Storage Interface&lt;/a>
)
because of work and also a big passion for open source. I have been working on Kubernetes &amp;amp; etcd
(and also CSI) since 2020.&lt;/p></description></item><item><title>Spotlight on SIG Architecture: Enhancements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/01/21/sig-architecture-enhancements/</link><pubDate>Tue, 21 Jan 2025 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2025/01/21/sig-architecture-enhancements/</guid><description>&lt;p>&lt;em>This is the fourth interview of a SIG Architecture Spotlight series that will cover the different
subprojects, and we will be covering &lt;a href="https://github.com/kubernetes/community/blob/main/sig-architecture/README.md#enhancements"
 
 target="_blank" rel="noopener">SIG Architecture:
Enhancements&lt;/a>
.&lt;/em>&lt;/p>
&lt;p>In this SIG Architecture spotlight we talked with &lt;a href="https://github.com/kikisdeliveryservice"
 
 target="_blank" rel="noopener">Kirsten
Garrison&lt;/a>
, lead of the Enhancements subproject.&lt;/p>
&lt;h2 id="the-enhancements-subproject">The Enhancements subproject&lt;/h2>
&lt;p>&lt;strong>Frederico (FSM): Hi Kirsten, very happy to have the opportunity to talk about the Enhancements
subproject. Let&amp;rsquo;s start with some quick information about yourself and your role.&lt;/strong>&lt;/p></description></item><item><title>Spotlight on Kubernetes Upstream Training in Japan</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/10/28/k8s-upstream-training-japan-spotlight/</link><pubDate>Mon, 28 Oct 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/10/28/k8s-upstream-training-japan-spotlight/</guid><description>&lt;p>We are organizers of &lt;a href="https://github.com/kubernetes-sigs/contributor-playground/tree/master/japan"
 
 target="_blank" rel="noopener">Kubernetes Upstream Training in Japan&lt;/a>
.
Our team is composed of members who actively contribute to Kubernetes, including individuals who hold roles such as member, reviewer, approver, and chair.&lt;/p>
&lt;p>Our goal is to increase the number of Kubernetes contributors and foster the growth of the community.
While Kubernetes community is friendly and collaborative, newcomers may find the first step of contributing to be a bit challenging.
Our training program aims to lower that barrier and create an environment where even beginners can participate smoothly.&lt;/p></description></item><item><title>Announcing the 2024 Steering Committee Election Results</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/10/02/steering-committee-results-2024/</link><pubDate>Wed, 02 Oct 2024 15:10:00 -0500</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/10/02/steering-committee-results-2024/</guid><description>&lt;p>The &lt;a href="https://github.com/kubernetes/community/tree/main/elections/steering/2024"
 
 target="_blank" rel="noopener">2024 Steering Committee Election&lt;/a>
 is now complete. The Kubernetes Steering Committee consists of 7 seats, 3 of which were up for election in 2024. Incoming committee members serve a term of 2 years, and all members are elected by the Kubernetes Community.&lt;/p>
&lt;p>This community body is significant since it oversees the governance of the entire Kubernetes project. With that great power comes great responsibility. You can learn more about the steering committee’s role in their &lt;a href="https://github.com/kubernetes/steering/blob/main/charter.md"
 
 target="_blank" rel="noopener">charter&lt;/a>
.&lt;/p></description></item><item><title>Spotlight on CNCF Deaf and Hard-of-hearing Working Group (DHHWG)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/09/30/cncf-deaf-and-hard-of-hearing-working-group-spotlight/</link><pubDate>Mon, 30 Sep 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/09/30/cncf-deaf-and-hard-of-hearing-working-group-spotlight/</guid><description>&lt;p>&lt;em>In recognition of Deaf Awareness Month and the importance of inclusivity in the tech community, we are spotlighting &lt;a href="https://www.linkedin.com/in/catherinepaganini/"
 
 target="_blank" rel="noopener">Catherine Paganini&lt;/a>
, facilitator and one of the founding members of &lt;a href="https://contribute.cncf.io/about/deaf-and-hard-of-hearing/"
 
 target="_blank" rel="noopener">CNCF Deaf and Hard-of-Hearing Working Group&lt;/a>
 (DHHWG). In this interview, &lt;a href="https://www.linkedin.com/in/sandeepkanabar/"
 
 target="_blank" rel="noopener">Sandeep Kanabar&lt;/a>
, a deaf member of the DHHWG and part of the Kubernetes &lt;a href="https://github.com/kubernetes/community/blob/main/sig-contributor-experience/README.md#contributor-comms"
 
 target="_blank" rel="noopener">SIG ContribEx Communications team&lt;/a>
, sits down with Catherine to explore the impact of the DHHWG on cloud native projects like Kubernetes.&lt;/em>&lt;/p></description></item><item><title>Spotlight on SIG Scheduling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/09/24/sig-scheduling-spotlight-2024/</link><pubDate>Tue, 24 Sep 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/09/24/sig-scheduling-spotlight-2024/</guid><description>&lt;p>In this SIG Scheduling spotlight we talked with &lt;a href="https://github.com/sanposhiho/"
 
 target="_blank" rel="noopener">Kensei Nakada&lt;/a>
, an
approver in SIG Scheduling.&lt;/p>
&lt;h2 id="introductions">Introductions&lt;/h2>
&lt;p>&lt;strong>Arvind:&lt;/strong> &lt;strong>Hello, thank you for the opportunity to learn more about SIG Scheduling! Would you
like to introduce yourself and tell us a bit about your role, and how you got involved with
Kubernetes?&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Kensei&lt;/strong>: Hi, thanks for the opportunity! I’m Kensei Nakada
(&lt;a href="https://github.com/sanposhiho/"
 
 target="_blank" rel="noopener">@sanposhiho&lt;/a>
), a software engineer at
&lt;a href="https://tetrate.io/"
 
 target="_blank" rel="noopener">Tetrate.io&lt;/a>
. I have been contributing to Kubernetes in my free time for more
than 3 years, and now I’m an approver of SIG Scheduling in Kubernetes. Also, I’m a founder/owner of
two SIG subprojects,
&lt;a href="https://github.com/kubernetes-sigs/kube-scheduler-simulator"
 
 target="_blank" rel="noopener">kube-scheduler-simulator&lt;/a>
 and
&lt;a href="https://github.com/kubernetes-sigs/kube-scheduler-wasm-extension"
 
 target="_blank" rel="noopener">kube-scheduler-wasm-extension&lt;/a>
.&lt;/p></description></item><item><title>Spotlight on SIG API Machinery</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/08/07/sig-api-machinery-spotlight-2024/</link><pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/08/07/sig-api-machinery-spotlight-2024/</guid><description>&lt;p>We recently talked with &lt;a href="https://github.com/fedebongio"
 
 target="_blank" rel="noopener">Federico Bongiovanni&lt;/a>
 (Google) and &lt;a href="https://github.com/deads2k"
 
 target="_blank" rel="noopener">David
Eads&lt;/a>
 (Red Hat), Chairs of SIG API Machinery, to know a bit more about
this Kubernetes Special Interest Group.&lt;/p>
&lt;h2 id="introductions">Introductions&lt;/h2>
&lt;p>&lt;strong>Frederico (FSM): Hello, and thank your for your time. To start with, could you tell us about
yourselves and how you got involved in Kubernetes?&lt;/strong>&lt;/p>
&lt;p>&lt;strong>David&lt;/strong>: I started working on
&lt;a href="https://www.redhat.com/en/technologies/cloud-computing/openshift"
 
 target="_blank" rel="noopener">OpenShift&lt;/a>
 (the Red Hat
distribution of Kubernetes) in the fall of 2014 and got involved pretty quickly in API Machinery. My
first PRs were fixing kube-apiserver error messages and from there I branched out to &lt;code>kubectl&lt;/code>
(&lt;em>kubeconfigs&lt;/em> are my fault!), &lt;code>auth&lt;/code> (&lt;a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/"
 
 target="_blank" rel="noopener">RBAC&lt;/a>
 and &lt;code>*Review&lt;/code> APIs are ports
from OpenShift), &lt;code>apps&lt;/code> (&lt;em>workqueues&lt;/em> and &lt;em>sharedinformers&lt;/em> for example). Don’t tell the others,
but API Machinery is still my favorite :)&lt;/p></description></item><item><title>Spotlight on SIG Node</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/06/20/sig-node-spotlight-2024/</link><pubDate>Thu, 20 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/06/20/sig-node-spotlight-2024/</guid><description>&lt;p>In the world of container orchestration, &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">Kubernetes&lt;/a>
 reigns
supreme, powering some of the most complex and dynamic applications across the globe. Behind the
scenes, a network of Special Interest Groups (SIGs) drives Kubernetes&amp;rsquo; innovation and stability.&lt;/p>
&lt;p>Today, I have the privilege of speaking with
&lt;a href="https://www.linkedin.com/in/matthias-bertschy-b427b815/"
 
 target="_blank" rel="noopener">Matthias Bertschy&lt;/a>
,
&lt;a href="https://www.linkedin.com/in/gunju-kim-916b33190/"
 
 target="_blank" rel="noopener">Gunju Kim&lt;/a>
, and
&lt;a href="https://www.linkedin.com/in/sergeykanzhelev/"
 
 target="_blank" rel="noopener">Sergey Kanzhelev&lt;/a>
, members of
&lt;a href="https://github.com/kubernetes/community/blob/main/sig-node/README.md"
 
 target="_blank" rel="noopener">SIG Node&lt;/a>
,
who will shed some light on their roles, challenges, and the exciting developments within SIG Node.&lt;/p></description></item><item><title>Introducing Hydrophone</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/05/23/introducing-hydrophone/</link><pubDate>Thu, 23 May 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/05/23/introducing-hydrophone/</guid><description>&lt;p>In the ever-changing landscape of Kubernetes, ensuring that clusters operate as intended is
essential. This is where conformance testing becomes crucial, verifying that a Kubernetes cluster
meets the required standards set by the community. Today, we&amp;rsquo;re thrilled to introduce
&lt;a href="https://github.com/kubernetes-sigs/hydrophone/"
 
 target="_blank" rel="noopener">&lt;em>Hydrophone&lt;/em>&lt;/a>
, a lightweight runner designed to
streamline Kubernetes tests using the official conformance images released by the Kubernetes release
team.&lt;/p>
&lt;h2 id="simplified-kubernetes-testing-with-hydrophone">Simplified Kubernetes testing with Hydrophone&lt;/h2>
&lt;p>Hydrophone&amp;rsquo;s design philosophy centers around ease of use. By starting the conformance image as a
pod within the &lt;em>conformance&lt;/em> namespace, Hydrophone waits for the tests to conclude, then prints and
exports the results. This approach offers a hassle-free method for running either individual tests
or the entire &lt;a href="https://github.com/kubernetes/community/blob/main/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Test
Suite&lt;/a>
.&lt;/p></description></item><item><title>Spotlight on SIG Architecture: Code Organization</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/04/11/sig-architecture-code-spotlight-2024/</link><pubDate>Thu, 11 Apr 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/04/11/sig-architecture-code-spotlight-2024/</guid><description>&lt;p>&lt;em>This is the third interview of a SIG Architecture Spotlight series that will cover the different
subprojects. We will cover &lt;a href="https://github.com/kubernetes/community/blob/e44c2c9d0d3023e7111d8b01ac93d54c8624ee91/sig-architecture/README.md#code-organization"
 
 target="_blank" rel="noopener">SIG Architecture: Code Organization&lt;/a>
.&lt;/em>&lt;/p>
&lt;p>In this SIG Architecture spotlight I talked with &lt;a href="https://github.com/MadhavJivrajani"
 
 target="_blank" rel="noopener">Madhav Jivrajani&lt;/a>

(VMware), a member of the Code Organization subproject.&lt;/p>
&lt;h2 id="introducing-the-code-organization-subproject">Introducing the Code Organization subproject&lt;/h2>
&lt;p>&lt;strong>Frederico (FSM)&lt;/strong>: Hello Madhav, thank you for your availability. Could you start by telling us a
bit about yourself, your role and how you got involved in Kubernetes?&lt;/p></description></item><item><title>Using Go workspaces in Kubernetes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/03/19/go-workspaces-in-kubernetes/</link><pubDate>Tue, 19 Mar 2024 08:30:00 -0800</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/03/19/go-workspaces-in-kubernetes/</guid><description>&lt;p>The &lt;a href="https://go.dev/"
 
 target="_blank" rel="noopener">Go programming language&lt;/a>
 has played a huge role in the
success of Kubernetes. As Kubernetes has grown, matured, and pushed the bounds
of what &amp;ldquo;regular&amp;rdquo; projects do, the Go project team has also grown and evolved
the language and tools. In recent releases, Go introduced a feature called
&amp;ldquo;workspaces&amp;rdquo; which was aimed at making projects like Kubernetes easier to
manage.&lt;/p>
&lt;p>We&amp;rsquo;ve just completed a major effort to adopt workspaces in Kubernetes, and the
results are great. Our codebase is simpler and less error-prone, and we&amp;rsquo;re no
longer off on our own technology island.&lt;/p></description></item><item><title>Spotlight on SIG Cloud Provider</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/03/01/sig-cloud-provider-spotlight-2024/</link><pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/03/01/sig-cloud-provider-spotlight-2024/</guid><description>&lt;p>One of the most popular ways developers use Kubernetes-related services is via cloud providers, but
have you ever wondered how cloud providers can do that? How does this whole process of integration
of Kubernetes to various cloud providers happen? To answer that, let&amp;rsquo;s put the spotlight on &lt;a href="https://github.com/kubernetes/community/blob/main/sig-cloud-provider/README.md"
 
 target="_blank" rel="noopener">SIG
Cloud Provider&lt;/a>
.&lt;/p>
&lt;p>SIG Cloud Provider works to create seamless integrations between Kubernetes and various cloud
providers. Their mission? Keeping the Kubernetes ecosystem fair and open for all. By setting clear
standards and requirements, they ensure every cloud provider plays nicely with Kubernetes. It is
their responsibility to configure cluster components to enable cloud provider integrations.&lt;/p></description></item><item><title>A look into the Kubernetes Book Club</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/02/22/k8s-book-club/</link><pubDate>Thu, 22 Feb 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/02/22/k8s-book-club/</guid><description>&lt;p>Learning Kubernetes and the entire ecosystem of technologies around it is not without its
challenges. In this interview, we will talk with &lt;a href="https://www.linkedin.com/in/csantanapr/"
 
 target="_blank" rel="noopener">Carlos Santana
(AWS)&lt;/a>
 to learn a bit more about how he created the
&lt;a href="https://community.cncf.io/kubernetes-virtual-book-club/"
 
 target="_blank" rel="noopener">Kubernetes Book Club&lt;/a>
, how it works, and
how anyone can join in to take advantage of a community-based learning experience.&lt;/p>
&lt;p>&lt;img src="https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/k8s-book-club/csantana_k8s_book_club.jpg" alt="Carlos Santana speaking at KubeCon NA 2023">&lt;/p>
&lt;p>&lt;strong>Frederico Muñoz (FSM)&lt;/strong>: Hello Carlos, thank you so much for your availability. To start with,
could you tell us a bit about yourself?&lt;/p></description></item><item><title>Spotlight on SIG Release (Release Team Subproject)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/01/15/sig-release-spotlight-2023/</link><pubDate>Mon, 15 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/01/15/sig-release-spotlight-2023/</guid><description>&lt;p>The Release Special Interest Group (SIG Release), where Kubernetes sharpens its blade
with cutting-edge features and bug fixes every 4 months. Have you ever considered how such a big
project like Kubernetes manages its timeline so efficiently to release its new version, or how
the internal workings of the Release Team look like? If you&amp;rsquo;re curious about these questions or
want to know more and get involved with the work SIG Release does, read on!&lt;/p></description></item><item><title>Blixt - A load-balancer written in Rust, using eBPF, born from Gateway API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/01/08/blixt-load-balancer-rust-ebpf-gateway-api/</link><pubDate>Mon, 08 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/01/08/blixt-load-balancer-rust-ebpf-gateway-api/</guid><description>&lt;p>In &lt;a href="https://github.com/kubernetes/community/tree/main/sig-network"
 
 target="_blank" rel="noopener">SIG Network&lt;/a>
 we now have a layer 4 (“L4”) load balancer named &lt;a href="https://github.com/kubernetes-sigs/blixt"
 
 target="_blank" rel="noopener">Blixt&lt;/a>
. This
project started as a fun experiment using emerging technologies and is intended
to become a utility for CI and testing to help facilitate the continued
development of &lt;a href="https://kubernetes.io/docs/concepts/services-networking/gateway/"
 
 target="_blank" rel="noopener">Gateway API&lt;/a>
. Are you interested in developing networking
tools in &lt;a href="https://www.rust-lang.org/"
 
 target="_blank" rel="noopener">Rust&lt;/a>
 and &lt;a href="https://www.kernel.org/doc/html/latest/bpf/index.html"
 
 target="_blank" rel="noopener">eBPF&lt;/a>
? Or perhaps you&amp;rsquo;re specifically
interested in Gateway API? We&amp;rsquo;ll tell you a bit about the project and how it
might benefit you.&lt;/p></description></item><item><title>Kubernetes supports running kube-proxy in an unprivileged container</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/01/05/kube-proxy-non-privileged/</link><pubDate>Fri, 05 Jan 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2024/01/05/kube-proxy-non-privileged/</guid><description>&lt;p>This post describes how the &lt;code>--init-only&lt;/code> flag to &lt;code>kube-proxy&lt;/code> can be
used to run the main kube-proxy container in a stricter
&lt;code>securityContext&lt;/code>, by performing the configuration that requires
privileged mode in a separate &lt;a href="https://kubernetes.io/docs/concepts/workloads/pods/init-containers/"
 
 target="_blank" rel="noopener">init container&lt;/a>
.
Since
Windows doesn&amp;rsquo;t have the equivalent of &lt;code>capabilities&lt;/code>, this only works
on Linux.&lt;/p>
&lt;p>The &lt;code>kube-proxy&lt;/code> Pod still only meets the &lt;em>privileged&lt;/em> &lt;a href="https://kubernetes.io/docs/concepts/security/pod-security-standards/"
 
 target="_blank" rel="noopener">Pod Security
Standard&lt;/a>
,
but there is still an improvement because the running container doesn&amp;rsquo;t
need to run privileged.&lt;/p></description></item><item><title>Contextual logging in Kubernetes 1.29: Better troubleshooting and enhanced logging</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/12/20/contextual-logging/</link><pubDate>Wed, 20 Dec 2023 09:30:00 -0800</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/12/20/contextual-logging/</guid><description>&lt;p>On behalf of the &lt;a href="https://github.com/kubernetes/community/blob/main/archive/wg-structured-logging/README.md"
 
 target="_blank" rel="noopener">Structured Logging Working Group&lt;/a>

and &lt;a href="https://github.com/kubernetes/community/tree/main/sig-instrumentation#readme"
 
 target="_blank" rel="noopener">SIG Instrumentation&lt;/a>
,
we are pleased to announce that the contextual logging feature
introduced in Kubernetes v1.24 has now been successfully migrated to
two components (kube-scheduler and kube-controller-manager)
as well as some directories. This feature aims to provide more useful logs
for better troubleshooting of Kubernetes and to empower developers to enhance Kubernetes.&lt;/p>
&lt;h2 id="what-is-contextual-logging">What is contextual logging?&lt;/h2>
&lt;p>&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging"
 
 target="_blank" rel="noopener">Contextual logging&lt;/a>

is based on the &lt;a href="https://github.com/go-logr/logr#a-minimal-logging-api-for-go"
 
 target="_blank" rel="noopener">go-logr&lt;/a>
 API.
The key idea is that libraries are passed a logger instance by their caller
and use that for logging instead of accessing a global logger.
The binary decides the logging implementation, not the libraries.
The go-logr API is designed around structured logging and supports attaching
additional information to a logger.&lt;/p></description></item><item><title>Spotlight on SIG Testing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/11/24/sig-testing-spotlight-2023/</link><pubDate>Fri, 24 Nov 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/11/24/sig-testing-spotlight-2023/</guid><description>&lt;p>Welcome to another edition of the &lt;em>SIG spotlight&lt;/em> blog series, where we
highlight the incredible work being done by various Special Interest
Groups (SIGs) within the Kubernetes project. In this edition, we turn
our attention to &lt;a href="https://github.com/kubernetes/community/tree/main/sig-testing#readme"
 
 target="_blank" rel="noopener">SIG Testing&lt;/a>
,
a group interested in effective testing of Kubernetes and automating
away project toil. SIG Testing focus on creating and running tools and
infrastructure that make it easier for the community to write and run
tests, and to contribute, analyze and act upon test results.&lt;/p></description></item><item><title>Kubernetes Contributor Summit: Behind-the-scenes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/11/03/k8s-contributor-summit-behind-the-scenes/</link><pubDate>Fri, 03 Nov 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/11/03/k8s-contributor-summit-behind-the-scenes/</guid><description>&lt;p>Every year, just before the official start of KubeCon+CloudNativeCon, there&amp;rsquo;s a special event that
has a very special place in the hearts of those organizing and participating in it: the Kubernetes
Contributor Summit. To find out why, and to provide a behind-the-scenes perspective, we interview
Noah Abrahams, whom amongst other roles was the co-lead for the Kubernetes Contributor Summit in
2023.&lt;/p>
&lt;p>&lt;strong>Frederico Muñoz (FSM)&lt;/strong>: Hello Noah, and welcome. Could you start by introducing yourself and
telling us how you got involved in Kubernetes?&lt;/p></description></item><item><title>Spotlight on SIG Architecture: Production Readiness</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/11/02/sig-architecture-production-readiness-spotlight-2023/</link><pubDate>Thu, 02 Nov 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/11/02/sig-architecture-production-readiness-spotlight-2023/</guid><description>&lt;p>&lt;em>This is the second interview of a SIG Architecture Spotlight series that will cover the different
subprojects. In this blog, we will cover the &lt;a href="https://github.com/kubernetes/community/blob/main/sig-architecture/README.md#production-readiness-1"
 
 target="_blank" rel="noopener">SIG Architecture: Production Readiness
subproject&lt;/a>
&lt;/em>.&lt;/p>
&lt;p>In this SIG Architecture spotlight, we talked with &lt;a href="https://github.com/wojtek-t"
 
 target="_blank" rel="noopener">Wojciech Tyczynski&lt;/a>

(Google), lead of the Production Readiness subproject.&lt;/p>
&lt;h2 id="about-sig-architecture-and-the-production-readiness-subproject">About SIG Architecture and the Production Readiness subproject&lt;/h2>
&lt;p>&lt;strong>Frederico (FSM)&lt;/strong>: Hello Wojciech, could you tell us a bit about yourself, your role and how you
got involved in Kubernetes?&lt;/p></description></item><item><title>A Quick Recap of 2023 China Kubernetes Contributor Summit</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/10/20/kcs-shanghai/</link><pubDate>Fri, 20 Oct 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/10/20/kcs-shanghai/</guid><description>&lt;p>On September 26, 2023, the first day of
&lt;a href="https://www.lfasiallc.com/kubecon-cloudnativecon-open-source-summit-china/"
 
 target="_blank" rel="noopener">KubeCon + CloudNativeCon + Open Source Summit China 2023&lt;/a>
,
nearly 50 contributors gathered in Shanghai for the Kubernetes Contributor Summit.&lt;/p>

&lt;figure>
 &lt;img src="https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/10/20/kcs-shanghai/kcs04.jpeg"
 alt="Kubernetes contributors posing for a group photo"/> &lt;figcaption>
 &lt;p>All participants in the 2023 Kubernetes Contributor Summit&lt;/p>
 &lt;/figcaption>
&lt;/figure>

&lt;p>This marked the first in-person offline gathering held in China after three years of the pandemic.&lt;/p>
&lt;h2 id="a-joyful-meetup">A joyful meetup&lt;/h2>
&lt;p>The event began with welcome speeches from &lt;a href="https://github.com/kevin-wangzefeng"
 
 target="_blank" rel="noopener">Kevin Wang&lt;/a>
 from Huawei Cloud,
one of the co-chairs of KubeCon, and &lt;a href="https://github.com/puja108"
 
 target="_blank" rel="noopener">Puja&lt;/a>
 from Giant Swarm.&lt;/p></description></item><item><title>Spotlight on SIG Architecture: Conformance</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/10/05/sig-architecture-conformance-spotlight-2023/</link><pubDate>Thu, 05 Oct 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/10/05/sig-architecture-conformance-spotlight-2023/</guid><description>&lt;p>&lt;em>This is the first interview of a SIG Architecture Spotlight series
that will cover the different subprojects. We start with the SIG
Architecture: Conformance subproject&lt;/em>&lt;/p>
&lt;p>In this &lt;a href="https://github.com/kubernetes/community/blob/main/sig-architecture/README.md"
 
 target="_blank" rel="noopener">SIG
Architecture&lt;/a>

spotlight, we talked with &lt;a href="https://github.com/Riaankl"
 
 target="_blank" rel="noopener">Riaan
Kleinhans&lt;/a>
 (ii-Team), Lead for the
&lt;a href="https://github.com/kubernetes/community/blob/main/sig-architecture/README.md#conformance-definition-1"
 
 target="_blank" rel="noopener">Conformance
sub-project&lt;/a>
.&lt;/p>
&lt;h2 id="about-sig-architecture-and-the-conformance-subproject">About SIG Architecture and the Conformance subproject&lt;/h2>
&lt;p>&lt;strong>Frederico (FSM)&lt;/strong>: Hello Riaan, and welcome! For starters, tell us a
bit about yourself, your role and how you got involved in Kubernetes.&lt;/p>
&lt;p>&lt;strong>Riaan Kleinhans (RK)&lt;/strong>: Hi! My name is Riaan Kleinhans and I live in
South Africa. I am the Project manager for the &lt;a href="ii.nz"
 
 >ii-Team&lt;/a>
 in New
Zealand. When I joined ii the plan was to move to New Zealand in April
2020 and then Covid happened. Fortunately, being a flexible and
dynamic team we were able to make it work remotely and in very
different time zones.&lt;/p></description></item><item><title>Announcing the 2023 Steering Committee Election Results</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/10/02/steering-committee-results-2023/</link><pubDate>Mon, 02 Oct 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/10/02/steering-committee-results-2023/</guid><description>&lt;p>The &lt;a href="https://github.com/kubernetes/community/tree/main/elections/steering/2023"
 
 target="_blank" rel="noopener">2023 Steering Committee Election&lt;/a>
 is now complete. The Kubernetes Steering Committee consists of 7 seats, 4 of which were up for election in 2023. Incoming committee members serve a term of 2 years, and all members are elected by the Kubernetes Community.&lt;/p>
&lt;p>This community body is significant since it oversees the governance of the entire Kubernetes project. With that great power comes great responsibility. You can learn more about the steering committee’s role in their &lt;a href="https://github.com/kubernetes/steering/blob/main/charter.md"
 
 target="_blank" rel="noopener">charter&lt;/a>
.&lt;/p></description></item><item><title>Spotlight on SIG ContribEx</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/08/14/sig-contribex-spotlight-2023/</link><pubDate>Mon, 14 Aug 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/08/14/sig-contribex-spotlight-2023/</guid><description>&lt;p>&lt;strong>Author&lt;/strong>: Fyka Ansari&lt;/p>
&lt;p>Welcome to the world of Kubernetes and its vibrant contributor
community! In this blog post, we&amp;rsquo;ll be shining a spotlight on the
&lt;a href="https://github.com/kubernetes/community/blob/main/sig-contributor-experience/README.md"
 
 target="_blank" rel="noopener">Special Interest Group for Contributor
Experience&lt;/a>

(SIG ContribEx), an essential component of the Kubernetes project.&lt;/p>
&lt;p>SIG ContribEx in Kubernetes is responsible for developing and
maintaining a healthy and productive community of contributors to the
project. This involves identifying and addressing bottlenecks that may
hinder the project&amp;rsquo;s growth and feature velocity, such as pull request
latency and the number of open pull requests and issues.&lt;/p></description></item><item><title>Spotlight on SIG CLI</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/07/20/sig-cli-spotlight-2023/</link><pubDate>Thu, 20 Jul 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/07/20/sig-cli-spotlight-2023/</guid><description>&lt;p>In the world of Kubernetes, managing containerized applications at
scale requires powerful and efficient tools. The command-line
interface (CLI) is an integral part of any developer or operator’s
toolkit, offering a convenient and flexible way to interact with a
Kubernetes cluster.&lt;/p>
&lt;p>SIG CLI plays a crucial role in improving the &lt;a href="https://github.com/kubernetes/community/tree/main/sig-cli"
 
 target="_blank" rel="noopener">Kubernetes
CLI&lt;/a>

experience by focusing on the development and enhancement of
&lt;code>kubectl&lt;/code>, the primary command-line tool for Kubernetes.&lt;/p>
&lt;p>In this SIG CLI Spotlight, Arpit Agrawal, SIG ContribEx-Comms team
member, talked with &lt;a href="https://github.com/KnVerey"
 
 target="_blank" rel="noopener">Katrina Verey&lt;/a>
, Tech
Lead &amp;amp; Chair of SIG CLI,and &lt;a href="https://github.com/soltysh"
 
 target="_blank" rel="noopener">Maciej
Szulik&lt;/a>
, SIG CLI Batch Lead, about SIG
CLI, current projects, challenges and how anyone can get involved.&lt;/p></description></item><item><title>Spotlight on SIG Network</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/05/09/sig-network-spotlight-2023/</link><pubDate>Tue, 09 May 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/05/09/sig-network-spotlight-2023/</guid><description>&lt;p>Networking is one of the core pillars of Kubernetes, and the Special Interest
Group for Networking (SIG Network) is responsible for developing and maintaining
the networking features of Kubernetes. It covers all aspects to ensure
Kubernetes provides a reliable and scalable network infrastructure for
containerized applications.&lt;/p>
&lt;p>In this SIG Network spotlight, &lt;a href="https://twitter.com/Sujaystwt"
 
 target="_blank" rel="noopener">Sujay Dey&lt;/a>
 talked
with &lt;a href="https://twitter.com/ShaneUtt"
 
 target="_blank" rel="noopener">Shane Utt&lt;/a>
, Software Engineer at Kong, chair
of SIG Network and maintainer of Gateway API, on different aspects of the SIG,
what are the exciting things going on and how anyone can get involved and
contribute here.&lt;/p></description></item><item><title>E2E Testing Best Practices, Reloaded</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/04/12/e2e-testing-best-practices-reloaded/</link><pubDate>Wed, 12 Apr 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/04/12/e2e-testing-best-practices-reloaded/</guid><description>&lt;p>End-to-end (E2E) testing in Kubernetes is how the project validates
functionality with real clusters. Contributors sooner or later encounter it
when asked to write E2E tests for new features or to help with debugging test
failures. Cluster admins or vendors might run the conformance tests, a subset
of all tests in the &lt;a href="https://github.com/kubernetes/kubernetes/tree/v1.27.0-rc.0/test/e2e"
 
 target="_blank" rel="noopener">E2E test
suite&lt;/a>
.&lt;/p>
&lt;p>The underlying &lt;a href="https://github.com/kubernetes/kubernetes/tree/v1.27.0-rc.0/test/e2e/framework"
 
 target="_blank" rel="noopener">E2E
framework&lt;/a>

for writing these E2E tests has been around for a long
time. Functionality was added to it as needed, leading to code that became hard
to maintain and use. The &lt;a href="https://github.com/kubernetes/community/blob/main/sig-testing/README.md#testing-commons"
 
 target="_blank" rel="noopener">testing commons
WG&lt;/a>

started cleaning it up, but dissolved before completely achieving their
goals.&lt;/p></description></item><item><title>From Zero to Kubernets Subproject Lead</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/03/29/from-zero-to-k8s-subproject-lead/</link><pubDate>Wed, 29 Mar 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/03/29/from-zero-to-k8s-subproject-lead/</guid><description>&lt;p>Getting started in any open-source community can be daunting, especially if it’s a big one like
Kubernetes. I wrote this post to share my experience and encourage others to join up. All
it takes is some curiosity and a willingness to show up!&lt;/p>
&lt;p>Here’s how my journey unfolded at a high level:&lt;/p>
&lt;ol>
&lt;li>What am I interested in? Is there a SIG (Special Interest Group) or a WG (Working Group) that is
dedicated to that topic, or something similar? &lt;/li>
&lt;li>Sign up for their mailing list and start hopping on meetings.&lt;/li>
&lt;li>When (never if!) there are opportunities to help out and it aligns with your skills and desired
growth areas, raise your hand.&lt;/li>
&lt;li>Ask for lots of help and don’t be shy about not knowing everything (or anything!)&lt;/li>
&lt;li>Keep plugging along, even if progress isn’t as fast as you would like it to be.&lt;/li>
&lt;/ol>
&lt;h2 id="starting-up">Starting up&lt;/h2>
&lt;p>First things first. What are you interested in learning more about? There are so many wonderful SIGs
and working groups in the Kubernetes community: there’s something for everyone. And continuing to
show up and participate will be so much easier if you think what you are doing is
interesting. Likewise, continued participation is what keeps the community thriving, so that
interest will drive you to have more of an impact. &lt;/p></description></item><item><title>Introducing KWOK: Kubernetes WithOut Kubelet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/03/01/introducing-kwok/</link><pubDate>Wed, 01 Mar 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/03/01/introducing-kwok/</guid><description>&lt;p>&lt;strong>Author:&lt;/strong> Shiming Zhang (DaoCloud), Wei Huang (Apple), Yibo Zhuang (Apple)&lt;/p>
&lt;img style="float: right; display: inline-block; margin-left: 2em; max-width: 15em;" src="https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/03/01/introducing-kwok/kwok.svg" alt="KWOK logo" />
&lt;p>Have you ever wondered how to set up a cluster of thousands of nodes just in seconds, how to simulate real nodes with a low resource footprint, and how to test your Kubernetes controller at scale without spending much on infrastructure?&lt;/p>
&lt;p>If you answered &amp;ldquo;yes&amp;rdquo; to any of these questions, then you might be interested in KWOK, a toolkit that enables you to create a cluster of thousands of nodes in seconds.&lt;/p></description></item><item><title>Spotlight on SIG Instrumentation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/02/03/sig-instrumentation-spotlight-2023/</link><pubDate>Fri, 03 Feb 2023 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2023/02/03/sig-instrumentation-spotlight-2023/</guid><description>&lt;p>Observability requires the right data at the right time for the right consumer (human or piece of software) to make the right decision. In the context of Kubernetes, having best practices for cluster observability across all Kubernetes components is crucial.&lt;/p>
&lt;p>SIG Instrumentation helps to address this issue by providing best practices and tools that all other SIGs use to instrument Kubernetes components-like the &lt;em>API server&lt;/em>, &lt;em>scheduler&lt;/em>, &lt;em>kubelet&lt;/em> and &lt;em>kube-controller-manager&lt;/em>.&lt;/p>
&lt;p>In this SIG Instrumentation spotlight, &lt;a href="https://www.linkedin.com/in/imrannoormohamed/"
 
 target="_blank" rel="noopener">Imran Noor Mohamed&lt;/a>
, SIG ContribEx-Comms tech lead talked with &lt;a href="https://twitter.com/ehashdn"
 
 target="_blank" rel="noopener">Elana Hashman&lt;/a>
, and &lt;a href="https://www.linkedin.com/in/hankang"
 
 target="_blank" rel="noopener">Han Kang&lt;/a>
, chairs of SIG Instrumentation, on how the SIG is organized, what are the current challenges and how anyone can get involved and contribute.&lt;/p></description></item><item><title>Prow and Tide for Kubernetes Contributors</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/12/12/prow-and-tide-for-kubernetes-contributors/</link><pubDate>Mon, 12 Dec 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/12/12/prow-and-tide-for-kubernetes-contributors/</guid><description>&lt;p>&lt;strong>Authors:&lt;/strong> &lt;a href="https://github.com/chris-short"
 
 target="_blank" rel="noopener">Chris Short&lt;/a>
, &lt;a href="https://github.com/fsmunoz"
 
 target="_blank" rel="noopener">Frederico Muñoz&lt;/a>
&lt;/p>
&lt;hr>
&lt;p>In my work in the Kubernetes world, I look up a label or Prow command often. The systems behind the scenes
(&lt;a href="https://prow.kubernetes.io/"
 
 target="_blank" rel="noopener">Prow&lt;/a>
 and
&lt;a href="https://pkg.go.dev/k8s.io/test-infra/prow/cmd/tide#section-readme"
 
 target="_blank" rel="noopener">Tide&lt;/a>
) are here to help Kubernetes
Contributors get stuff done.&lt;/p>
&lt;p>Labeling which SIG, WG, or subproject is as important as the issue or PR having someone assigned. To quote
&lt;a href="https://docs.prow.k8s.io/docs/components/core/tide/"
 
 target="_blank" rel="noopener">the docs&lt;/a>
, &amp;ldquo;Tide is a
&lt;a href="https://docs.prow.k8s.io/docs/"
 
 target="_blank" rel="noopener">Prow&lt;/a>
 component for managing a pool of GitHub PRs that match a given set of
criteria. It will automatically retest PRs that meet the criteria (&amp;rsquo;tide comes in&amp;rsquo;) and automatically merge
them when they have up-to-date passing test results (&amp;rsquo;tide goes out&amp;rsquo;).&amp;rdquo;&lt;/p></description></item><item><title>Implementing the Auto-refreshing Official Kubernetes CVE Feed</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/09/12/k8s-cve-feed-alpha/</link><pubDate>Mon, 12 Sep 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/09/12/k8s-cve-feed-alpha/</guid><description>&lt;p>&lt;strong>Author&lt;/strong>: Pushkar Joglekar (VMware)&lt;/p>
&lt;p>Accompanying the release of Kubernetes v1.25, we announced
&lt;a href="https://kubernetes.io/blog/2022/09/12/k8s-cve-feed-alpha/"
 
 target="_blank" rel="noopener">availability of an official CVE feed&lt;/a>

as an &lt;code>alpha&lt;/code> feature. This blog will cover how we implemented this feature.&lt;/p>
&lt;h2 id="implementation-details">Implementation Details&lt;/h2>
&lt;p>An &lt;a href="https://kubernetes.io/docs/reference/issues-security/official-cve-feed/"
 
 target="_blank" rel="noopener">auto-refreshing CVE feed&lt;/a>

allows users and implementers to programmatically fetch the list of CVEs
announced by the Kubernetes SRC (Security Response Committee).&lt;/p>
&lt;p>To ensure freshness and minimal maintainer overhead, the feed updates
automatically by fetching the CVE related information from the CVE announcement
GitHub Issues. Creating these issues is already part of the existing Security
Response Committee (SRC) workflow.&lt;/p></description></item><item><title>Enhancements Opt-in Process Change for v1.26</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/09/09/enhancements-opt-in/</link><pubDate>Fri, 09 Sep 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/09/09/enhancements-opt-in/</guid><description>&lt;p>&lt;strong>Author:&lt;/strong> Grace Nguyen&lt;/p>
&lt;h2 id="context-and-motivations">Context and Motivations&lt;/h2>
&lt;p>Since the inception of the Kubernetes release team, we have used a spreadsheet to keep track of enhancements for the release. The project has scaled massively in the past few years, with almost a hundred enhancements collected for the 1.24 release. This process has become error-prone and time consuming. A lot of manual work is required from the release team and the SIG leads to populate KEPs data in the sheet. We have received continuous feedback from our contributors to streamline the process.&lt;/p></description></item><item><title>Spotlight on SIG Storage</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/22/sig-storage-spotlight-2022/</link><pubDate>Mon, 22 Aug 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/22/sig-storage-spotlight-2022/</guid><description>&lt;p>Since the very beginning of Kubernetes, the topic of persistent data and how to address the requirement of stateful applications has been an important topic. Support for stateless deployments was natural, present from the start, and garnered attention, becoming very well-known. Work on better support for stateful applications was also present from early on, with each release increasing the scope of what could be run on Kubernetes.&lt;/p>
&lt;p>Message queues, databases, clustered filesystems: these are some examples of the solutions that have different storage requirements and that are, today, increasingly deployed in Kubernetes. Dealing with ephemeral and persistent storage, local or remote, file or block, from many different vendors, while considering how to provide the needed resiliency and data consistency that users expect, all of this is under SIG Storage&amp;rsquo;s umbrella.&lt;/p></description></item><item><title>Meet Our Contributors - APAC (China region)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/15/meet-our-contributors-china-ep-03/</link><pubDate>Mon, 15 Aug 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/15/meet-our-contributors-china-ep-03/</guid><description>&lt;p>&lt;strong>Authors &amp;amp; Interviewers:&lt;/strong> &lt;a href="https://github.com/AvineshTripathi"
 
 target="_blank" rel="noopener">Avinesh Tripathi&lt;/a>
, &lt;a href="https://github.com/Debanitrkl"
 
 target="_blank" rel="noopener">Debabrata Panigrahi&lt;/a>
, &lt;a href="https://github.com/jayesh-srivastava"
 
 target="_blank" rel="noopener">Jayesh Srivastava&lt;/a>
, &lt;a href="https://github.com/Priyankasaggu11929/"
 
 target="_blank" rel="noopener">Priyanka Saggu&lt;/a>
, &lt;a href="https://github.com/PurneswarPrasad"
 
 target="_blank" rel="noopener">Purneswar Prasad&lt;/a>
, &lt;a href="https://github.com/vedant-kakde"
 
 target="_blank" rel="noopener">Vedant Kakde&lt;/a>
&lt;/p>
&lt;hr>
&lt;p>Hello, everyone 👋&lt;/p>
&lt;p>Welcome back to the third edition of the &amp;ldquo;Meet Our Contributors&amp;rdquo; blog post series for APAC.&lt;/p>
&lt;p>This post features four outstanding contributors from China, who have played diverse leadership and community roles in the upstream Kubernetes project.&lt;/p>
&lt;p>So, without further ado, let&amp;rsquo;s get straight to the article.&lt;/p>
&lt;h2 id="andy-zhang">&lt;a href="https://github.com/andyzhangx"
 
 target="_blank" rel="noopener">Andy Zhang&lt;/a>
&lt;/h2>
&lt;p>Andy Zhang currently works for Microsoft China at the Shanghai site. His main focus is on Kubernetes storage drivers. Andy started contributing to Kubernetes about 5 years ago.&lt;/p></description></item><item><title>Enhancing Kubernetes one KEP at a Time</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/11/enhancing-kubernetes-one-kep-at-a-time/</link><pubDate>Thu, 11 Aug 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/11/enhancing-kubernetes-one-kep-at-a-time/</guid><description>&lt;p>&lt;strong>Author:&lt;/strong> Ryler Hockenbury (Mastercard)&lt;/p>
&lt;p>Did you know that Kubernetes v1.24 has &lt;a href="https://kubernetes.io/blog/2022/05/03/kubernetes-1-24-release-announcement/"
 
 target="_blank" rel="noopener">46 enhancements&lt;/a>
? That&amp;rsquo;s a lot of new functionality packed into a 4-month release cycle. The Kubernetes release team coordinates the logistics of the release, from remediating test flakes to publishing updated docs. It&amp;rsquo;s a ton of work, but they always deliver.&lt;/p>
&lt;p>The release team comprises around 30 people across six subteams - Bug Triage, CI Signal, Enhancements, Release Notes, Communications, and Docs.  Each of these subteams manages a component of the release. This post will focus on the role of the enhancements subteam and how you can get involved.&lt;/p></description></item><item><title>Spotlight on SIG Docs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/02/sig-docs-spotlight-2022/</link><pubDate>Tue, 02 Aug 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/08/02/sig-docs-spotlight-2022/</guid><description>&lt;p>&lt;strong>Author:&lt;/strong> Purneswar Prasad&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>The official documentation is the go-to source for any open source project. For Kubernetes,
it&amp;rsquo;s an ever-evolving Special Interest Group (SIG) with people constantly putting in their efforts
to make details about the project easier to consume for new contributors and users. SIG Docs publishes
the official documentation on &lt;a href="https://kubernetes.io"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
 which includes,
but is not limited to, documentation of the core APIs, core architectural details, and CLI tools
shipped with the Kubernetes release.&lt;/p></description></item><item><title>Contextual Logging in Kubernetes 1.24</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/05/25/contextual-logging/</link><pubDate>Wed, 25 May 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/05/25/contextual-logging/</guid><description>&lt;p>&lt;strong>Authors:&lt;/strong> Patrick Ohly (Intel)&lt;/p>
&lt;p>The &lt;a href="https://github.com/kubernetes/community/blob/main/archive/wg-structured-logging/README.md"
 
 target="_blank" rel="noopener">Structured Logging Working
Group&lt;/a>

has added new capabilities to the logging infrastructure in Kubernetes
1.24. This blog post explains how developers can take advantage of those to
make log output more useful and how they can get involved with improving Kubernetes.&lt;/p>
&lt;h2 id="structured-logging">Structured logging&lt;/h2>
&lt;p>The goal of &lt;a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/1602-structured-logging/README.md"
 
 target="_blank" rel="noopener">structured
logging&lt;/a>

is to replace C-style formatting and the resulting opaque log strings with log
entries that have a well-defined syntax for storing message and parameters
separately, for example as a JSON struct.&lt;/p></description></item><item><title>February 2022 Community Meeting Highlights</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/05/05/community-meeting-februrary-2022/</link><pubDate>Thu, 05 May 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/05/05/community-meeting-februrary-2022/</guid><description>&lt;p>&lt;strong>Author:&lt;/strong> Nigel Brown (VMware)&lt;/p>
&lt;p>We just had our first contributor community meeting this year, and it was awesome to be back with you
in that format. These meetings will be happening on Zoom once per month, on the third Thursday of the
month - that should be available in your calendar if you’re subscribed to the k-dev mailing list.
Community meetings are an opportunity for you to meet synchronously with other members of the
Kubernetes community to talk about issues of general appeal.&lt;/p></description></item><item><title>K8s CI Bot Helper Job: automating "make update"</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/03/15/k8s-triage-bot-helper-ci-job/</link><pubDate>Tue, 15 Mar 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/03/15/k8s-triage-bot-helper-ci-job/</guid><description>&lt;p>&lt;strong>Authors:&lt;/strong> &lt;a href="https://github.com/SubhasmitaSw"
 
 target="_blank" rel="noopener">Subhasmita Swain&lt;/a>
, &lt;a href="https://github.com/dims"
 
 target="_blank" rel="noopener">Davanum Srinivas&lt;/a>
&lt;/p>
&lt;hr>
&lt;p>If you are contributing to the Kubernetes project and are developing on a Windows PC, it is conceivable that you will encounter certain issues that will cause your pull request to get held up by test failures. This article describes a workaround for a similar issue I encountered when attempting to have my modifications approved and merged into the master branch.&lt;/p>
&lt;h2 id="why-is-this-needed">Why is this needed?&lt;/h2>
&lt;p>While contributing to &lt;a href="https://github.com/kubernetes/kubernetes"
 
 target="_blank" rel="noopener">kubernetes/kubernetes&lt;/a>
 for some minor documentation changes, the pushed changes needed to be updated with other verified contents of the entire documentation. So, in order for the change to take effect, a single command must be performed to ensure that all tests on the CI pipeline pass. The single command &lt;code>make update&lt;/code> runs all presubmission verification tests. For some reason on the &amp;ldquo;Windows Subsystem for Linux&amp;rdquo; environment the tests, specifically the &lt;a href="https://github.com/kubernetes/kubernetes/blob/master/hack/update-openapi-spec.sh"
 
 target="_blank" rel="noopener">update-openapi-spec.sh&lt;/a>
 script, failed (in my case, take a look at the conversation &lt;a href="https://github.com/kubernetes/kubernetes/pull/107691"
 
 target="_blank" rel="noopener">here&lt;/a>
), eventually failing the &lt;code>pull-kubernetes-verify&lt;/code> tests.&lt;/p></description></item><item><title>Meet Our Contributors - APAC (Aus-NZ region)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/03/14/meet-our-contributors-au-nz-ep-02/</link><pubDate>Mon, 14 Mar 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/03/14/meet-our-contributors-au-nz-ep-02/</guid><description>&lt;p>&lt;strong>Authors &amp;amp; Interviewers:&lt;/strong> &lt;a href="https://github.com/anubha-v-ardhan"
 
 target="_blank" rel="noopener">Anubhav Vardhan&lt;/a>
, &lt;a href="https://github.com/Atharva-Shinde"
 
 target="_blank" rel="noopener">Atharva Shinde&lt;/a>
, &lt;a href="https://github.com/AvineshTripathi"
 
 target="_blank" rel="noopener">Avinesh Tripathi&lt;/a>
, &lt;a href="https://github.com/bradmccoydev"
 
 target="_blank" rel="noopener">Brad McCoy&lt;/a>
, &lt;a href="https://github.com/Debanitrkl"
 
 target="_blank" rel="noopener">Debabrata Panigrahi&lt;/a>
, &lt;a href="https://github.com/jayesh-srivastava"
 
 target="_blank" rel="noopener">Jayesh Srivastava&lt;/a>
, &lt;a href="https://github.com/verma-kunal"
 
 target="_blank" rel="noopener">Kunal Verma&lt;/a>
, &lt;a href="https://github.com/PranshuSrivastava"
 
 target="_blank" rel="noopener">Pranshu Srivastava&lt;/a>
, &lt;a href="https://github.com/Priyankasaggu11929"
 
 target="_blank" rel="noopener">Priyanka Saggu&lt;/a>
, &lt;a href="https://github.com/PurneswarPrasad"
 
 target="_blank" rel="noopener">Purneswar Prasad&lt;/a>
, &lt;a href="https://github.com/vedant-kakde"
 
 target="_blank" rel="noopener">Vedant Kakde&lt;/a>
&lt;/p>
&lt;hr>
&lt;p>Good day, everyone 👋&lt;/p>
&lt;p>Welcome back to the second episode of the &amp;ldquo;Meet Our Contributors&amp;rdquo; blog post series for APAC.&lt;/p>
&lt;p>This post will feature four outstanding contributors from the Australia and New Zealand regions, who have played diverse leadership and community roles in the Upstream Kubernetes project.&lt;/p></description></item><item><title>SIG Node CI Subproject Celebrates Two Years of Test Improvements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/02/16/sig-node-ci-subproject-celebrates-two-years-of-test-improvements/</link><pubDate>Wed, 16 Feb 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/02/16/sig-node-ci-subproject-celebrates-two-years-of-test-improvements/</guid><description>&lt;p>&lt;strong>Authors:&lt;/strong> Sergey Kanzhelev (Google), Elana Hashman (Red Hat)&lt;/p>
&lt;p>Ensuring the reliability of SIG Node upstream code is a continuous effort
that takes a lot of behind-the-scenes effort from many contributors.
There are frequent releases of Kubernetes, base operating systems,
container runtimes, and test infrastructure that result in a complex matrix that
requires attention and steady investment to &amp;ldquo;keep the lights on.&amp;rdquo;
In May 2020, the Kubernetes node special interest group (&amp;ldquo;SIG Node&amp;rdquo;) organized a new
subproject for continuous integration (CI) for node-related code and tests. Since its
inauguration, the SIG Node CI subproject has run a weekly meeting, and even the full hour
is often not enough to complete triage of all bugs, test-related PRs and issues, and discuss all
related ongoing work within the subgroup.&lt;/p></description></item><item><title>Spotlight on SIG Multicluster</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/02/04/sig-multicluster-spotlight-2022/</link><pubDate>Fri, 04 Feb 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/02/04/sig-multicluster-spotlight-2022/</guid><description>&lt;p>&lt;strong>Authors:&lt;/strong> Dewan Ahmed (Aiven) and Chris Short (AWS)&lt;/p>
&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>&lt;a href="https://github.com/kubernetes/community/tree/main/sig-multicluster"
 
 target="_blank" rel="noopener">SIG Multicluster&lt;/a>
 is the Special Interest Group (SIG) focused on how Kubernetes concepts are expanded and used beyond the cluster boundary. Historically, Kubernetes resources only interacted within that boundary - KRU or Kubernetes Resource Universe (not an actual Kubernetes concept). Kubernetes clusters, even now, don&amp;rsquo;t really know anything about themselves or, about other clusters. Absence of cluster identifiers is a case in point. With the growing adoption of multicloud and multicluster deployments, the work SIG Multicluster doing is gaining a lot of attention.&lt;/p></description></item><item><title>Meet Our Contributors - APAC (India region)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/01/10/meet-our-contributors-india-ep-01/</link><pubDate>Mon, 10 Jan 2022 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2022/01/10/meet-our-contributors-india-ep-01/</guid><description>&lt;p>&lt;strong>Authors &amp;amp; Interviewers:&lt;/strong> &lt;a href="https://github.com/anubha-v-ardhan"
 
 target="_blank" rel="noopener">Anubhav Vardhan&lt;/a>
, &lt;a href="https://github.com/Atharva-Shinde"
 
 target="_blank" rel="noopener">Atharva Shinde&lt;/a>
, &lt;a href="https://github.com/AvineshTripathi"
 
 target="_blank" rel="noopener">Avinesh Tripathi&lt;/a>
, &lt;a href="https://github.com/Debanitrkl"
 
 target="_blank" rel="noopener">Debabrata Panigrahi&lt;/a>
, &lt;a href="https://github.com/verma-kunal"
 
 target="_blank" rel="noopener">Kunal Verma&lt;/a>
, &lt;a href="https://github.com/PranshuSrivastava"
 
 target="_blank" rel="noopener">Pranshu Srivastava&lt;/a>
, &lt;a href="https://github.com/CIPHERTron"
 
 target="_blank" rel="noopener">Pritish Samal&lt;/a>
, &lt;a href="https://github.com/PurneswarPrasad"
 
 target="_blank" rel="noopener">Purneswar Prasad&lt;/a>
, &lt;a href="https://github.com/vedant-kakde"
 
 target="_blank" rel="noopener">Vedant Kakde&lt;/a>
&lt;/p>
&lt;p>&lt;strong>Editor:&lt;/strong> &lt;a href="https://psaggu.com"
 
 target="_blank" rel="noopener">Priyanka Saggu&lt;/a>
&lt;/p>
&lt;hr>
&lt;p>Good day, everyone 👋&lt;/p>
&lt;p>Welcome to the first episode of the APAC edition of the &amp;ldquo;Meet Our Contributors&amp;rdquo; blog post series.&lt;/p>
&lt;p>In this post, we&amp;rsquo;ll introduce you to five amazing folks from the India region who have been actively contributing to the upstream Kubernetes projects in a variety of ways, as well as being the leaders or maintainers of numerous community initiatives.&lt;/p></description></item><item><title>Announcing the Kubernetes Contributor Celebration 2021</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/12/07/announcing-the-kubernetes-contributor-celebration-2021/</link><pubDate>Tue, 07 Dec 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/12/07/announcing-the-kubernetes-contributor-celebration-2021/</guid><description>&lt;h2 id="contributor-celebration-2021">Contributor Celebration 2021&lt;/h2>
&lt;p>It&amp;rsquo;s that time of the year again, Yayy!!&lt;/p>
&lt;p>Like last year, this year also we are back with Kubernetes Contributor Celebration, the annual end of the year celebration, to recognize our achievements and have some fun! It’s a time for us to relax, chat and do something fun with your fellow contributors!&lt;/p>
&lt;h2 id="registration">Registration&lt;/h2>
&lt;p>To register, please fill out the &lt;a href="https://docs.google.com/forms/d/e/1FAIpQLSdRIboKulEPf7jVgRH3iTVwS4PEk6k0htcOs1eSG2OBmkxEjg/viewform"
 
 target="_blank" rel="noopener">Registration Form&lt;/a>
.
More details on &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/events/2021/kcc/how-to-join/"
 
 >how to join&lt;/a>
 the event.&lt;/p></description></item><item><title>Improve your documentation with Mermaid.js diagrams</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/12/01/improve-your-documentation-with-mermaid.js-diagrams/</link><pubDate>Wed, 01 Dec 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/12/01/improve-your-documentation-with-mermaid.js-diagrams/</guid><description>&lt;p>By Chris Metz and Tim Bannister&lt;/p>
&lt;hr>
&lt;p>Topics covered in this blog.&lt;/p>

&lt;figure>
 &lt;img src="https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/improve-with-mermaid-diagrams/mermaid-blog-outline.svg"/> 
&lt;/figure>

&lt;!--- added padding to align text with diagram above --->
&lt;p style="padding-left: 200px; font-weight: bold">&lt;a href="https://mermaid-js.github.io/mermaid-live-editor/edit/#eyJjb2RlIjoiJSV7aW5pdDp7XCJ0aGVtZVwiOlwibmV1dHJhbFwifX0lJVxuZmxvd2NoYXJ0IExSXG4gICAgQltXaHkgYXJlIGRpYWdyYW1zPGJyPnVzZWZ1bCBmb3IgZG9jdW1lbnRhdGlvbj9dIC0tPiBDW1VzZSBNZXJtYWlkLmpzXVxuICAgIEMgLS0-IERbRXhhbXBsZXNdXG5cbiAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGVmYXVsdFwiXG59IiwidXBkYXRlRWRpdG9yIjpmYWxzZSwiYXV0b1N5bmMiOnRydWUsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ">Live editor link: Topics Covered&lt;/a>&lt;/p>
&lt;hr>
&lt;h2 id="why-are-diagrams-useful-for-documentation">Why are diagrams useful for documentation?&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Friendly landing spot&lt;/strong>. Greeting readers with a page full of text can be intimidating to those new to Kubernetes, software engineering and tech writing.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Faster grasp of concepts.&lt;/strong> A diagram can serve as a visual roadmap for details covered in the accompanying text.&lt;/p></description></item><item><title>How to choose a SIG as a non-code Kubernetes contributor</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/07/09/how-to-choose-a-sig-as-a-non-code-kubernetes-contributor/</link><pubDate>Fri, 09 Jul 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/07/09/how-to-choose-a-sig-as-a-non-code-kubernetes-contributor/</guid><description>&lt;p>Kubernetes contributors aren&amp;rsquo;t people in capes or part of some secret society. How to start committing to the GitHub repos that make up the project &lt;a href="https://www.kubernetes.dev/docs/guide/"
 
 target="_blank" rel="noopener">is well documented&lt;/a>
, yet it remains intimidating for many.&lt;/p>
&lt;p>A few years ago, I spoke at an event and jokingly said, &amp;ldquo;Kubernetes is just a bunch of APIs and YAML&amp;hellip; I&amp;rsquo;m a contributor; you don&amp;rsquo;t believe me?&amp;rdquo; After that talk, someone pulled me aside and asked if I was the Kubernetes contributor. They wanted to get involved in the community. Then came the real question, &amp;ldquo;I don&amp;rsquo;t know which special interest group (SIG) I would work in.&amp;rdquo;&lt;/p></description></item><item><title>From Kubernetes for work to Kubernetes for play</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/06/01/peeyush-contributor-story/</link><pubDate>Tue, 01 Jun 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/06/01/peeyush-contributor-story/</guid><description>&lt;div class="alert alert-primary" role="alert">


 &lt;i>
Addendum by &lt;a href="https://twitter.com/mbbroberg">Matt Broberg&lt;/a> on May 26, 2021
&lt;/i>
&lt;br>&lt;br>
It's with a heavy heart that this story of Peeyush's contribution begins by acknowledging his sudden passing.
Peeyush was a foundational member of the Upstream Marketing subproject.
I saw his friendly face every Friday for over a year,
and often chat about life before others joined the call.
He was kind, incredibly funny, and a loving father. 
He was also an incredible technologist with years of hands-on experience with Kubernetes,
but he spent his time building a space dedicated to communication and connection.
He valued making all contributors feel like this community can be their home, and he was incredibly successful at it.
&lt;br>&lt;br>
We lost a friend this week.
If you're mourning that loss,
know you're not alone.
Whatever you do to honor him,
may it be with as much kindness as he brought to others every day.
We have started to collect some of our &lt;a href="https://github.com/cncf/memorials/blob/main/peeyush-gupta.md" target="_blank" rel="noreferrer">thoughts and memories of Peeyush&lt;/a> as a memorial to him and what he brought to the community.
If you would like to share some of your own, please &lt;a href="https://github.com/cncf/memorials/blob/main/peeyush-gupta.md" target="_blank" rel="noreferrer">open a PR adding your own memories of him.&lt;/a>


&lt;/div>

&lt;p>My first encounter with Kubernetes was at my first job when a large banking customer wanted to evaluate Kubernetes on ppc64le architecture for application deployment. I was intrigued as it wasn&amp;rsquo;t every day when a bank seeks to consider something new! That was also my first interaction with Golang and I loved it instantly. I mean, who doesn&amp;rsquo;t love a cross compiled statically linked binary?! Before that, I was mostly working with Python and OpenStack, which are great as well. But Kubernetes opened a whole new world for me. Being familiar with Docker, which still was pretty new at that time, and the awesome cross-compilation capabilities of Go, I was quickly able to build a proof of concept, and my team loved it.&lt;/p></description></item><item><title>Announcing the Kubernetes Contributor Stories Series</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/05/14/contributor-stories-series/</link><pubDate>Fri, 14 May 2021 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2021/05/14/contributor-stories-series/</guid><description>&lt;p>The Kubernetes contributor community is vast. We have tens of thousands of members by any conservative estimate and many hundreds involved day-to-day. We are from all around the world, all kinds of backgrounds, all types of expertise, and we are all Kubernetes contributors.&lt;/p>
&lt;p>We also have this amazing new website dedicated specifically to Kubernetes contributors. With that in mind, let&amp;rsquo;s combine the two.&lt;/p>
&lt;p>We are asking any and &lt;strong>all contributors to share their unique story&lt;/strong> to highlight the many ways they show up to be part of the Kubernetes community. Here are some&lt;/p></description></item><item><title>Contributing to the Development Guide</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2020/09/28/contributing-to-the-development-guide/</link><pubDate>Mon, 28 Sep 2020 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2020/09/28/contributing-to-the-development-guide/</guid><description>&lt;p>When most people think of contributing to an open source project, I suspect they probably think of
contributing code changes, new features, and bug fixes. As a software engineer and a long-time open
source user and contributor, that&amp;rsquo;s certainly what I thought. Although I have written a good quantity
of documentation in different workflows, the massive size of the Kubernetes community was a new kind
of &amp;ldquo;client.&amp;rdquo; I just didn&amp;rsquo;t know what to expect when Google asked my compatriots and me at
&lt;a href="https://lionswaycontent.com/"
 
 target="_blank" rel="noopener">Lion&amp;rsquo;s Way&lt;/a>
 to make much-needed updates to the Kubernetes Development Guide.&lt;/p></description></item><item><title>Announcing the Contributor Website</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2020/08/24/announcing-the-contributor-website/</link><pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/blog/2020/08/24/announcing-the-contributor-website/</guid><description>&lt;p>Welcome to &lt;a href="https://www.kubernetes.dev"
 
 target="_blank" rel="noopener">kubernetes.dev&lt;/a>
, the Kubernetes Contributor website; built to become
the one stop shop for Kubernetes contributor content and news. It brings
important documentation scattered throughout the project into &lt;strong>one central
location&lt;/strong>.&lt;/p>
&lt;h2 id="resources-for-contributors">Resources for contributors&lt;/h2>
&lt;p>At launch, the contributor site will host a subset of our documentation. Some
highlights include (with short links in parenthesis):&lt;/p>
&lt;ul>
&lt;li>Our contributor guide (&lt;a href="https://k8s.dev/guide"
 
 target="_blank" rel="noopener">k8s.dev/guide&lt;/a>
) walks you through the first steps to
becoming a contributor&lt;/li>
&lt;li>The contributor cheatsheet (&lt;a href="https://k8s.dev/cheatsheet"
 
 target="_blank" rel="noopener">k8s.dev/cheatsheet&lt;/a>
) has common tips and tricks
for regular contribution&lt;/li>
&lt;li>The community calendar (&lt;a href="https://k8s.dev/calendar"
 
 target="_blank" rel="noopener">k8s.dev/calendar&lt;/a>
) shows all the upcoming community
group meetings&lt;/li>
&lt;li>Current release cycle information (&lt;a href="https://k8s.dev/release"
 
 target="_blank" rel="noopener">k8s.dev/release&lt;/a>
) lets you stay up-to-date
on upcoming release deadlines and milestones.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>TIP:&lt;/strong> As seen above, the &lt;a href="https://k8s.dev"
 
 target="_blank" rel="noopener">k8s.dev&lt;/a>
 domain can be substituted for
&lt;a href="https://www.kubernetes.dev"
 
 target="_blank" rel="noopener">kubernetes.dev&lt;/a>
 for easy short-linking :)&lt;/p></description></item><item><title>Add an nftables-based kube-proxy backend</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3866/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3866/</guid><description>&lt;h1 id="kep-3866-add-an-nftables-based-kube-proxy-backend">KEP-3866: Add an nftables-based kube-proxy backend&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-iptables-kernel-subsystem-has-unfixable-performance-problems"
 
 >The iptables kernel subsystem has unfixable performance problems&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upstream-development-has-moved-on-from-iptables-to-nftables"
 
 >Upstream development has moved on from iptables to nftables&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-ipvs-mode-of-kube-proxy-will-not-save-us"
 
 >The &lt;code>ipvs&lt;/code> mode of kube-proxy will not save us&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-nf_tables-mode-of-sbiniptables-will-not-save-us"
 
 >The &lt;code>nf_tables&lt;/code> mode of &lt;code>/sbin/iptables&lt;/code> will not save us&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-iptables-mode-of-kube-proxy-has-grown-crufty"
 
 >The &lt;code>iptables&lt;/code> mode of kube-proxy has grown crufty&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#we-will-hopefully-be-able-to-trade-2-supported-backends-for-1"
 
 >We will hopefully be able to trade 2 supported backends for 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#writing-a-new-kube-proxy-mode-will-help-to-focus-our-cleanuprefactoring-efforts"
 
 >Writing a new kube-proxy mode will help to focus our cleanup/refactoring efforts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#functionality"
 
 >Functionality&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compatibility"
 
 >Compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#high-level-design"
 
 >High level design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#low-level-design"
 
 >Low level design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#tables"
 
 >Tables&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#communicating-with-the-kernel-nftables-subsystem"
 
 >Communicating with the kernel nftables subsystem&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notes-on-the-sample-rules-in-this-kep"
 
 >Notes on the sample rules in this KEP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#versioning-and-compatibility"
 
 >Versioning and compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nat-rules"
 
 >NAT rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#general-service-dispatch"
 
 >General Service dispatch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#masquerading"
 
 >Masquerading&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#session-affinity"
 
 >Session affinity&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#filter-rules"
 
 >Filter rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dropping-or-rejecting-packets-for-services-with-no-endpoints"
 
 >Dropping or rejecting packets for services with no endpoints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dropping-traffic-rejected-by-loadbalancersourceranges"
 
 >Dropping traffic rejected by &lt;code>LoadBalancerSourceRanges&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#forcing-traffic-on-healthchecknodeports-to-be-accepted"
 
 >Forcing traffic on &lt;code>HealthCheckNodePort&lt;/code>s to be accepted&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-improvements"
 
 >Future improvements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#changes-from-the-iptables-kube-proxy-backend"
 
 >Changes from the iptables kube-proxy backend&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#localhost-nodeports"
 
 >Localhost NodePorts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodeport-addresses"
 
 >NodePort Addresses&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#behavior-of-service-ips"
 
 >Behavior of service IPs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defining-an-api-for-integration-with-admindebugthird-party-rules"
 
 >Defining an API for integration with admin/debug/third-party rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rule-monitoring"
 
 >Rule monitoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#switching-between-kube-proxy-modes"
 
 >Switching between kube-proxy modes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability--performance-tests"
 
 >Scalability &amp;amp; Performance tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#continue-to-improve-the-iptables-mode"
 
 >Continue to improve the &lt;code>iptables&lt;/code> mode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fix-up-the-ipvs-mode"
 
 >Fix up the &lt;code>ipvs&lt;/code> mode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-an-existing-nftables-based-kube-proxy-implementation"
 
 >Use an existing nftables-based kube-proxy implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#create-an-ebpf-based-proxy-implementation"
 
 >Create an eBPF-based proxy implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The default kube-proxy implementation on Linux is currently based on
iptables. IPTables was the preferred packet filtering and processing
system in the Linux kernel for many years (starting with the 2.4
kernel in 2001). However, problems with iptables led to the
development of a successor, nftables, first made available in the 3.13
kernel in 2014, and growing increasingly featureful and usable as a
replacement for iptables since then. Development on iptables has
mostly stopped, with new features and performance improvements
primarily going into nftables instead.&lt;/p></description></item><item><title>Add AppArmor Support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/24/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/24/</guid><description>&lt;h1 id="add-apparmor-support">Add AppArmor Support&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-annotations-beta-api"
 
 >Pod Annotations (beta API)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-api"
 
 >Pod API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#runtimedefault-profile"
 
 >RuntimeDefault Profile&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#localhost-profile"
 
 >Localhost Profile&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-status"
 
 >Node Status&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#failure-and-fallback-strategy"
 
 >Failure and Fallback Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-creation"
 
 >Pod Creation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-security-admission"
 
 >Pod Security Admission&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-update"
 
 >Pod Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podtemplates"
 
 >PodTemplates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#warnings"
 
 >Warnings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-fallback"
 
 >Kubelet fallback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-profiles"
 
 >Runtime Profiles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-backwards-compatibility"
 
 >Kubelet Backwards compatibility&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#removing-annotation-support"
 
 >Removing annotation support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#syncing-fields--annotations-on-workload-resources"
 
 >Syncing fields &amp;amp; annotations on workload resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add CDI devices to device plugin API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4009/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4009/</guid><description>&lt;h1 id="kep-4009-add-cdi-devices-to-device-plugin-api">KEP-4009: Add CDI devices to device plugin API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to G.A Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add CPUManager policy option to restrict reservedSystemCPUs to system daemons and interrupt processing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4540/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4540/</guid><description>&lt;h1 id="kep-4540-add-cpumanager-policy-option-to-restrict-reservedsystemcpus-to-system-daemons-and-interrupt-processing">KEP-4540: Add CPUManager policy option to restrict reservedSystemCPUs to system daemons and interrupt processing&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#archived-risk-mitigation-option-1"
 
 >Archived Risk Mitigation (Option 1)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#archived-risk-mitigation-option-2"
 
 >Archived Risk Mitigation (Option 2)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add generic control plane staging repository(ies)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4080/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4080/</guid><description>&lt;h1 id="kep-4080-add-generic-control-plane-staging-repositoryies">KEP-4080: Add generic control plane staging repository(ies)&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add gRPC probe to Pod.Spec.Container.{Liveness,Readiness,Startup}Probe</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2727/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2727/</guid><description>&lt;h1 id="kep-2727-add-grpc-probe">KEP-2727: Add GRPC Probe&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-considerations"
 
 >Alternative Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-1"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-1"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-1"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in
&lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture
and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in
&lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents,
links to mailing list discussions/SIG meetings, relevant PRs/issues,
release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Add gRPC probe to Pod.Spec.Container.{Liveness,Readiness,Startup}Probe.&lt;/p></description></item><item><title>Add Informer Metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4346/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4346/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4346-add-informer-metrics">KEP-4346: Add Informer Metrics&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#informer-metrics"
 
 >Informer metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reflector-metrics"
 
 >Reflector metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#remove-metrics"
 
 >Remove Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add job creation timestamp to job annotations</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4026/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4026/</guid><description>&lt;h1 id="kep-4026-add-job-creation-timestamp-to-job-annotations">KEP-4026: Add job creation timestamp to job annotations&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add kubelet instance configuration to configure CRI socket for each node</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4656/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4656/</guid><description/></item><item><title>Add NonPreempting Option For PriorityClasses</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/902/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/902/</guid><description>&lt;h1 id="add-nonpreempting-option-for-priorityclasses">Add NonPreempting Option For PriorityClasses&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#testing-plan"
 
 >Testing Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v115"
 
 >Alpha (v1.15):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v119"
 
 >Beta (v1.19):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable-v124"
 
 >Stable (v1.24):&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add pod-startup liveness-probe holdoff for slow-starting pods</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/950/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/950/</guid><description>&lt;h1 id="add-pod-startup-liveness-probe-holdoff-for-slow-starting-pods">Add pod-startup liveness-probe holdoff for slow-starting pods&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-a-new-probe-instead-of-initializationfailurethreshold"
 
 >Why a new probe instead of initializationFailureThreshold&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#configuration-example"
 
 >Configuration example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-116"
 
 >Version 1.16&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-117"
 
 >Version 1.17&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-118"
 
 >Version 1.18&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-119"
 
 >Version 1.19&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-120"
 
 >Version 1.20&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://github.com/kubernetes/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Slow starting containers are difficult to address with the current status of health probes: they are either killed before being up, or could be left deadlocked during a very long time before being killed.&lt;/p></description></item><item><title>Add ProcMount option</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4265/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4265/</guid><description>&lt;h1 id="kep-4265-add-procmount-option">KEP-4265: add ProcMount option&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add Recreate Update Strategy to StatefulSet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3541/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3541/</guid><description>&lt;h1 id="kep-3541-add-recreate-update-strategy-to-statefulset">KEP-3541: Add Recreate Update Strategy to StatefulSet&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-behavior-and-problems"
 
 >Current Behavior and Problems&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-existing-solutions-are-insufficient"
 
 >Why Existing Solutions Are Insufficient&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-solution-benefits"
 
 >Proposed Solution Benefits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-cicd-platform-team"
 
 >Story 1: CI/CD Platform Team&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-stateless-web-application"
 
 >Story 2: Stateless Web Application&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-developmentexperiment-environment"
 
 >Story 3: Development/Experiment Environment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-external-data-storage"
 
 >Story 4: External Data Storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-leaderworkerset-lws-use-case"
 
 >Story 5: LeaderWorkerSet (LWS) Use Case&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk-unintended-data-loss"
 
 >Risk: Unintended Data Loss&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#detailed-algorithm-specification"
 
 >Detailed Algorithm Specification&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-rollingupdate-algorithm"
 
 >Current RollingUpdate Algorithm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-recreate-strategy-algorithm"
 
 >Proposed Recreate Strategy Algorithm&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#spec-changes"
 
 >Spec Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-changes"
 
 >Status Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-changes"
 
 >Implementation Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comparison-with-existing-solutions"
 
 >Comparison with Existing Solutions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#downtime-requirement"
 
 >Downtime Requirement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limited-rollback-options"
 
 >Limited Rollback Options&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-podprogresstimeoutseconds-field-in-rollingupdate-strategy"
 
 >Alternative 1: PodProgressTimeoutSeconds Field in RollingUpdate Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-enforcedrollingupdate-strategy"
 
 >Alternative 2: EnforcedRollingUpdate Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-now-primary-solution-recreate-strategy"
 
 >Alternative 3: (Now Primary Solution): Recreate Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-4-add-force-flag-to-rollingupdate"
 
 >Alternative 4: Add Force Flag to RollingUpdate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-5-enhance-parallel-policy"
 
 >Alternative 5: Enhance Parallel Policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add Resource Health Status to the Pod Status for Device Plugin and DRA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4680/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4680/</guid><description>&lt;h1 id="kep-4680-add-resource-health-status-to-the-pod-status-for-device-plugin-and-dra">KEP-4680: Add Resource Health Status to the Pod Status for Device Plugin and DRA&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podstatusallocatedresourcesstatus"
 
 >PodStatus.AllocatedResourcesStatus&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#device-plugin-implementation-details"
 
 >Device Plugin implementation details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dra-implementation-details"
 
 >DRA implementation details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#high-level-architectural-approach-for-dra-health"
 
 >High-Level Architectural Approach for DRA Health&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#grpc-api-for-dra-device-health"
 
 >gRPC API for DRA Device Health&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha2"
 
 >Alpha2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add support for a kubelet drop-in configuration directory</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3983/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3983/</guid><description>&lt;h1 id="kep-3983-add-support-for-a-drop-in-kubelet-configuration-directory">KEP-3983: Add support for a drop-in kubelet configuration directory&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add support for AdminNetworkPolicy resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2091/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2091/</guid><description>&lt;h1 id="kep-2091-add-support-for-adminnetworkpolicy-resources">KEP-2091: Add support for AdminNetworkPolicy resources&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adminnetworkpolicy-resource"
 
 >AdminNetworkPolicy resource&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#actions"
 
 >Actions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#priority"
 
 >Priority&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rule-names"
 
 >Rule Names&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#baselineadminnetworkpolicy-resource"
 
 >BaselineAdminNetworkPolicy resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-deny-traffic-at-a-cluster-level"
 
 >Story 1: Deny traffic at a cluster level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-allow-traffic-at-a-cluster-level"
 
 >Story 2: Allow traffic at a cluster level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-explicitly-delegate-traffic-to-existing-k8s-network-policy"
 
 >Story 3: Explicitly Delegate traffic to existing K8s Network Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-create-and-isolate-multiple-tenants-in-a-cluster"
 
 >Story 4: Create and Isolate multiple tenants in a cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-cluster-wide-default-guardrails"
 
 >Story 5: Cluster Wide Default Guardrails&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rbac"
 
 >RBAC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#key-differences-between-adminnetworkpolicies-and-networkpolicies"
 
 >Key differences between AdminNetworkPolicies and NetworkPolicies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigation"
 
 >Risks and Mitigation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adminnetworkpolicy-api-design"
 
 >AdminNetworkPolicy API Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#general-notes-on-the-adminnetworkpolicy-api"
 
 >General Notes on the AdminNetworkPolicy API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#further-examples-utilizing-the-self-field-for-namespacedpeer-objects"
 
 >Further examples utilizing the self field for &lt;code>NamespacedPeer&lt;/code> objects&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#sample-specs-for-user-stories"
 
 >Sample Specs for User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sample-spec-for-story-1-deny-traffic-at-a-cluster-level"
 
 >Sample spec for Story 1: Deny traffic at a cluster level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-spec-for-story-2-allow-traffic-at-a-cluster-level"
 
 >Sample spec for Story 2: Allow traffic at a cluster level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-spec-for-story-3-explicitly-delegate-traffic-to-existing-k8s-network-policy"
 
 >Sample spec for Story 3: Explicitly Delegate traffic to existing K8s Network Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-spec-for-story-4-create-and-isolate-multiple-tenants-in-a-cluster"
 
 >Sample spec for Story 4: Create and Isolate multiple tenants in a cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-spec-for-story-5-cluster-wide-default-guardrails"
 
 >Sample spec for Story 5: Cluster Wide Default Guardrails&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade-considerations"
 
 >Upgrade considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade-considerations"
 
 >Downgrade considerations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#networkpolicy-v2"
 
 >NetworkPolicy v2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#empower-deny-allow-action-based-crd"
 
 >Empower, Deny, Allow action based CRD&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#clusterdefaultnetworkpolicy-resource"
 
 >ClusterDefaultNetworkPolicy resource&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#single-crd-with-defaultrules-field"
 
 >Single CRD with DefaultRules field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-crd-with-isoverrideable-field"
 
 >Single CRD with IsOverrideable field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-crd-with-baselineallow-as-action"
 
 >Single CRD with BaselineAllow as Action&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add user fields to atomic write volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5936/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5936/</guid><description>&lt;h1 id="kep-5936-add-user-fields-to-atomic-write-volumes">KEP-5936: Add user fields to atomic write volumes&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-define-owner-uid-of-mounted-volume-files"
 
 >Story 1: define owner UID of mounted volume files&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#constraints"
 
 >Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-api-specs"
 
 >Changes to API Specs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interactions-with-existing-features"
 
 >Interactions with existing features&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#edge-cases"
 
 >Edge cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Add webhook hosting to CCM.</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2699/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2699/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.** (SIG Cloud Provider)
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements** (https://github.com/kubernetes/enhancements/issues/2699)
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.** (Done)
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2699-add-webhook-hosting-capability-to-ccm-framework">KEP-2699: Add webhook hosting capability to CCM framework&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1---full-control-separation-of-concerns"
 
 >Story 1 - Full control, separation of concerns&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2---fast-and-simple"
 
 >Story 2 - Fast and simple&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3---immediate-cloud-provider-extraction-effort"
 
 >Story 3 - Immediate Cloud Provider Extraction effort&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Adding AppProtocol to Services and Endpoints</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1507/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1507/</guid><description>&lt;h1 id="adding-appprotocol-to-services-and-endpoints">Adding AppProtocol to Services and Endpoints&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#services"
 
 >Services:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpoints"
 
 >Endpoints:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-roadmap"
 
 >Proposed Roadmap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Kubernetes does not have a standardized way of representing application
protocols. When a protocol is specified, it must be one of TCP, UDP, or SCTP.
With the EndpointSlice beta release in 1.17, a concept of AppProtocol was added
that would allow application protocols to be specified for each port. This KEP
proposes adding support for that same attribute to Services and Endpoints.&lt;/p></description></item><item><title>Admission Webhook Match Conditions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3716/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3716/</guid><description>&lt;h1 id="kep-3716-admission-webhook-match-conditions">KEP-3716: Admission Webhook Match Conditions&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#exclude-resources-from-a-wildcard-rule"
 
 >Exclude resources from a wildcard rule&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exempt-system-users-from-security-policy"
 
 >Exempt system users from security policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scope-an-nfs-access-management-webhook-to-pods-mounting-nfs-volumes"
 
 >Scope an NFS access management webhook to Pods mounting NFS volumes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#debuggability"
 
 >Debuggability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance"
 
 >Performance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cross-webhook-match-conditions"
 
 >Cross-webhook match conditions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#exclusion-expressions"
 
 >Exclusion Expressions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-exclusions"
 
 >Resource Exclusions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-admission-control"
 
 >CEL Admission Control&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Aggregated Discovery</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3352/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3352/</guid><description>&lt;!-- **Note:** When your KEP is complete, all of these comment blocks
should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.** Make sure that the problem space is
 something the SIG is interested in taking up. KEPs should not be
 checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements** When filing an
 enhancement tracking issue, please make sure to complete all fields
 in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to
 the enhancement and add the link.
- [ ] **Make a copy of this template directory.** Copy this template
 into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number
 (with no leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.** At
 minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.** At minimum, you should
 fill in the "Summary" and "Motivation" sections. These should be
 easy if you've preflighted the idea of the KEP with the appropriate
 SIG(s).
- [ ] **Create a PR for this KEP.** Assign it to people in the SIG who
 are sponsoring this process.
- [ ] **Merge early and iterate.** Avoid getting hung up on specific
 details and instead aim to get the goals of the KEP clarified and
 merged quickly. The best way to do this is to just start with the
 high-level sections and fill out details incrementally in subsequent
 PRs.

Just because a KEP is merged does not mean it is complete or approved.
Any KEP marked as `provisional` is a working document and subject to
change. You can denote sections that are under active debate as
follows:

``` &lt;&lt;[UNRESOLVED optional short context or usernames ]>> Stuff that
is being argued. &lt;&lt;[/UNRESOLVED]>> ```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep
discussions focused. If you disagree with what is already in a
document, open a new PR with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole
lifecycle. You do not need a new KEP to move from beta to GA, for
example. If new details emerge that belong in the KEP, edit the KEP.
Once a feature has become "implemented", major changes should get new
KEPs.

The canonical place for the latest set of instructions (and the likely
source of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant
changes once it is marked `implementable`, must be approved by each of
the KEP approvers. If none of those approvers are still appropriate,
then changes to that list should be approved by the remaining
approvers and/or the owning SIG (or SIG Architecture for cross-cutting
KEPs). -->
&lt;h1 id="kep-3352-aggregated-discovery">KEP-3352: Aggregated Discovery&lt;/h1>
&lt;!-- This is the title of your KEP. Keep it short, simple, and
descriptive. A good title can help communicate what the KEP is and
should be considered as part of any review. -->
&lt;!-- A table of contents is helpful for quickly jumping to sections of
a KEP and for highlighting any additional information provided beyond
the standard KEP template.

Ensure the TOC is wrapped with &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc
 --&amp;rt;&lt;/code> tags, and then generate with `hack/update-toc.sh`. -->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aggregation"
 
 >Aggregation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client"
 
 >Client&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!-- **ACTION REQUIRED:** In order to merge code into a release, there
must be an issue in [kubernetes/enhancements] referencing this KEP and
targeting a release milestone **before the [Enhancement
Freeze](https://git.k8s.io/sig-release/releases) of the targeted
release**.

For enhancements that make changes to code or processes/procedures in
core Kubernetes—i.e., [kubernetes/kubernetes], we require the
following Release Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track.
These checklist items _must_ be updated for the enhancement to be
released. -->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone
/ release&lt;/em>.&lt;/p></description></item><item><title>Allow a Network Policy to contemplate a set of ports in a single rule</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2079/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2079/</guid><description>&lt;h1 id="kep-2079-network-policy-to-support-port-ranges">KEP-2079: Network Policy to support Port Ranges&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1---opening-communication-to-nodeports-of-other-cluster"
 
 >Story 1 - Opening communication to NodePorts of other cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2---blocking-the-egress-for-not-allowed-insecure-ports"
 
 >Story 2 - Blocking the egress for not allowed insecure ports&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3---containerized-passive-ftp-server"
 
 >Story 3 - Containerized Passive FTP Server&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validations"
 
 >Validations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Today the &lt;code>ports&lt;/code> field in ingress and egress network policies is an array
that needs a declaration of each single port to be contemplated. This KEP
proposes to add a new field that allows a declaration of a port range,
simplifying the creation of rules with multiple ports.&lt;/p></description></item><item><title>Allow bind mount options (noexec, nodev, nosuid) on volumeMounts</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5855/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5855/</guid><description>&lt;h1 id="kep-5855-allow-bind-mount-options-noexec-nodev-nosuid-on-volumemounts">KEP-5855: Allow bind mount options (noexec, nodev, nosuid) on volumeMounts&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-mechanism"
 
 >Implementation mechanism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-changes"
 
 >CRI changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-changes-cri-o-containerd"
 
 >Container runtime changes (CRI-O, containerd)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-wide-enforcement"
 
 >Cluster-wide Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#manual-validation"
 
 >Manual validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mount-options-on-emptydirvolumesource"
 
 >Mount options on EmptyDirVolumeSource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#acl"
 
 >ACL&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#selinux"
 
 >SELinux&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Allow DaemonSets to surge during update like Deployments</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1591/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1591/</guid><description>&lt;h1 id="allow-daemonsets-to-surge-during-update-like-deployments">Allow DaemonSets to surge during update like Deployments&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workload-implications"
 
 >Workload Implications&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implications-to-drain"
 
 >Implications to drain&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Daemonsets allow two update strategies - OnDelete which only replaces pods when they are deleted and RollingUpdate which supports MinAvailable like Deployments but not Surge. Daemonsets should support Surge in order to minimize DaemonSet downtime on nodes. This will allow daemonset workloads to implement zero-downtime upgrades.&lt;/p></description></item><item><title>Allow HostNetwork Pods to Use User Namespaces</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5607/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5607/</guid><description>&lt;h1 id="kep-5607-allow-hostnetwork-pods-to-use-user-namespaces">KEP-5607: Allow HostNetwork Pods to Use User Namespaces&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Allow informers for getting a stream of data instead of chunking</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3157/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3157/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [X] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3157-allow-informers-for-getting-a-stream-of-data-instead-of-chunking">KEP-3157: allow informers for getting a stream of data instead of chunking.&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#required-changes-for-a-watch-request-with-the-sendinitialeventstrue"
 
 >Required changes for a WATCH request with the SendInitialEvents=true&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#important-optimisations"
 
 >Important optimisations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#manual-testing-without-the-changes-in-place"
 
 >Manual testing without the changes in place&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#results-with-watch-list"
 
 >Results with WATCH-LIST&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#required-changes-for-a-watch-request-with-the-rv-set-to-the-last-observed-value-rv--0"
 
 >Required changes for a WATCH request with the RV set to the last observed value (RV &amp;gt; 0)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#provide-a-fix-for-the-long-standing-issue-httpsgithubcomkuberneteskubernetesissues59848"
 
 >Provide a fix for the long-standing issue &lt;a href="https://github.com/kubernetes/kubernetes/issues/59848">https://github.com/kubernetes/kubernetes/issues/59848&lt;/a>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#replacing-standard-list-request-with-watchlist-mechanism-for-client-gos-list-method"
 
 >Replacing standard List request with WatchList mechanism for client-go&amp;rsquo;s List method.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta2"
 
 >Beta2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta3"
 
 >Beta3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta4"
 
 >Beta4&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta5"
 
 >Beta5&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backward-compatibility"
 
 >Backward compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scale-test-results-5000-nodes-165k-pods"
 
 >Scale test results (5000 nodes, ~165K pods)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#post-ga"
 
 >Post-GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix"
 
 >Appendix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sources-of-list-request"
 
 >Sources of LIST request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#steps-followed-by-informers"
 
 >Steps followed by informers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Allow Replacement of Pods in a Job when fully terminating</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3939/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3939/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3939-allow-replacement-of-pods-in-a-job-when-fully-terminated">KEP-3939: Allow replacement of Pods in a Job when fully terminated&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-default-job-controller-behavior"
 
 >The default job controller behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-pods-enter-a-terminating-state"
 
 >When Pods enter a terminating state&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#exponential-backoff-for-pod-failures"
 
 >Exponential Backoff for Pod Failures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pods-are-not-guaranteed-to-transition-to-a-terminal-phase"
 
 >Pods are not guaranteed to transition to a terminal phase&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#job-api-definition"
 
 >Job API Definition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#defaulting-and-validation"
 
 >Defaulting and validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tracking-the-terminating-pods"
 
 >Tracking the terminating pods&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-this-feature-be-enabled--disabled-in-a-live-cluster"
 
 >How can this feature be enabled / disabled in a live cluster?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-a-rollout-or-rollback-fail-can-it-impact-already-running-workloads"
 
 >How can a rollout or rollback fail? Can it impact already running workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-specific-metrics-should-inform-a-rollback"
 
 >What specific metrics should inform a rollback?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#were-upgrade-and-rollback-tested-was-the-upgrade-downgrade-upgrade-path-tested"
 
 >Were upgrade and rollback tested? Was the upgrade-&amp;gt;downgrade-&amp;gt;upgrade path tested?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#is-the-rollout-accompanied-by-any-deprecations-andor-removals-of-features-apis-fields-of-api-types-flags-etc"
 
 >Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-an-operator-determine-if-the-feature-is-in-use-by-workloads"
 
 >How can an operator determine if the feature is in use by workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-can-someone-using-this-feature-know-that-it-is-working-for-their-instance"
 
 >How can someone using this feature know that it is working for their instance?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-reasonable-slos-service-level-objectives-for-the-enhancement"
 
 >What are the reasonable SLOs (Service Level Objectives) for the enhancement?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-slis-service-level-indicators-an-operator-can-use-to-determine-the-health-of-the-service"
 
 >What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-missing-metrics-that-would-be-useful-to-have-to-improve-observability-of-this-feature"
 
 >Are there any missing metrics that would be useful to have to improve observability of this feature?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#does-this-feature-depend-on-any-specific-services-running-in-the-cluster"
 
 >Does this feature depend on any specific services running in the cluster?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-api-calls"
 
 >Will enabling / using this feature result in any new API calls?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-introducing-new-api-types"
 
 >Will enabling / using this feature result in introducing new API types?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-calls-to-the-cloud-provider"
 
 >Will enabling / using this feature result in any new calls to the cloud provider?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-size-or-count-of-the-existing-api-objects"
 
 >Will enabling / using this feature result in increasing size or count of the existing API objects?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-time-taken-by-any-operations-covered-by-existing-slisslos"
 
 >Will enabling / using this feature result in increasing time taken by any operations covered by existing SLIs/SLOs?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-non-negligible-increase-of-resource-usage-cpu-ram-disk-io--in-any-components"
 
 >Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, &amp;hellip;) in any components?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-enabling--using-this-feature-result-in-resource-exhaustion-of-some-node-resources-pids-sockets-inodes-etc"
 
 >Can enabling / using this feature result in resource exhaustion of some node resources (PIDs, sockets, inodes, etc.)?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-does-this-feature-react-if-the-api-server-andor-etcd-is-unavailable"
 
 >How does this feature react if the API server and/or etcd is unavailable?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-other-known-failure-modes"
 
 >What are other known failure modes?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-steps-should-be-taken-if-slos-are-not-being-met-to-determine-the-problem"
 
 >What steps should be taken if SLOs are not being met to determine the problem?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Allow special characters environment variable</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4369/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4369/</guid><description>&lt;h1 id="kep-4369-allow-special-characters-in-environment-variables">KEP-4369: Allow special characters in environment variables&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Allow zero value for Sleep Action of PreStop Hook</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4818/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4818/</guid><description>&lt;h1 id="kep-4818-allow-zero-value-for-sleep-action-of-prestop-hook">KEP-4818: Allow zero value for Sleep Action of PreStop Hook&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Allows setting arbitrary FQDN as the pod's hostname</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4762/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4762/</guid><description>&lt;h1 id="kep-4762-allows-setting-arbitrary-fqdn-as-the-pods-hostname">KEP-4762: Allows setting arbitrary FQDN as the pod&amp;rsquo;s hostname&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Anago to Krel Migration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/0000/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/0000/</guid><description>&lt;h1 id="anago-to-krel-migration">Anago to Krel Migration&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#objectives"
 
 >Objectives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestones"
 
 >Milestones&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#first-milestone-complete-the-migration-effort"
 
 >First Milestone: Complete the Migration Effort&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#open-issues"
 
 >Open Issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#acceptance-criteria"
 
 >Acceptance Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#second-milestone-introduce-krel-stagerelease"
 
 >Second Milestone: Introduce krel stage/release&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#open-issues-1"
 
 >Open Issues&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks"
 
 >Risks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#qualitytest-plan"
 
 >Quality/Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;p>&lt;em>Moving away from running bash in production in k/release&lt;/em>&lt;/p>
&lt;h2 id="objectives">Objectives&lt;/h2>
&lt;p>This roadmap defines a strategy for achieving two primary goals: migrating
exchangeable bits of bash code within anago to krel and creating a Golang native
replacement for anago.&lt;/p></description></item><item><title>API gzip compression support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2338/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2338/</guid><description>&lt;h1 id="graduate-api-gzip-compression-to-ga">Graduate API gzip compression to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#116"
 
 >1.16&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#117"
 
 >1.17&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Kubernetes sometimes returns extremely large responses to clients outside of its local network, resulting in long delays for components that integrate with the cluster in the list/watch controller pattern. Kubernetes should properly support transparent gzip response encoding, while ensuring that the performance of the cluster does not regress for small requests.&lt;/p></description></item><item><title>API Server Authentication to Admission Webhooks</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6060/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6060/</guid><description>&lt;h1 id="kep-6060-api-server-authentication-to-admission-webhooks">KEP-6060: API Server Authentication to Admission Webhooks&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#terms"
 
 >Terms&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#token"
 
 >Token&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#token-acquisition-service-account"
 
 >Token Acquisition Service Account&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#webhook-authentication-client"
 
 >Webhook Authentication Client&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aggregated-api-servers-and-kube-apiserver"
 
 >Aggregated API Servers and &lt;code>kube-apiserver&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sequence-diagrams"
 
 >Sequence Diagrams&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#flow-1-kube-apiserver-as-webhook-client"
 
 >Flow 1: &lt;code>kube-apiserver&lt;/code> as Webhook Client&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#jwt-payload"
 
 >JWT payload&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#flow-2-kube-apiserver-denies-a-suspicious-request"
 
 >Flow 2: &lt;code>kube-apiserver&lt;/code> denies a suspicious request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flow-3-aggregated-api-server-deniedaccepted-by-webhook"
 
 >Flow 3: Aggregated API Server denied/accepted by webhook&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#jwt-payload-both-requests"
 
 >JWT payload (both requests)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#broad-access-to-webhooks"
 
 >Broad access to webhooks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#token-replay-across-webhooks"
 
 >Token replay across webhooks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#token-replay-across-api-groups"
 
 >Token replay across API groups&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#service-account-compromise"
 
 >Service account compromise&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#increased-authorization-load"
 
 >Increased authorization load&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#potential-deadlock"
 
 >Potential Deadlock&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-tokenrequest-api"
 
 >Changes to &lt;code>TokenRequest&lt;/code> API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-tokenrequestspec"
 
 >Changes to &lt;code>TokenRequestSpec&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-tokenrequest-handler"
 
 >Changes to &lt;code>TokenRequest&lt;/code> handler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#added-claim-webhook-authenticationk8sioallowedapigroup"
 
 >Added claim: &lt;code>&amp;quot;webhook-authentication.k8s.io/allowedAPIGroup&amp;quot;&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#token-acquisition-from-the-client-perspective"
 
 >Token Acquisition (from the client perspective)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#all-webhook-authentication-clients"
 
 >All webhook authentication clients:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-apiserver"
 
 >&lt;code>kube-apiserver&lt;/code>:&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dedicated-service-account-for-token-acquisition"
 
 >Dedicated service account for token acquisition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-details"
 
 >Other details&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#aggregated-api-servers"
 
 >Aggregated API Servers:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#authorization-checks"
 
 >Authorization Checks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rbac-example"
 
 >RBAC Example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#synthetic-resource-for-authorization-checks"
 
 >Synthetic resource for authorization checks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#recommendations-for-permissions"
 
 >Recommendations for permissions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#new-types-of-boundobjectref"
 
 >New types of BoundObjectRef&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#audience"
 
 >Audience&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-jwt-private-claims"
 
 >New JWT Private Claims&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#token-verification"
 
 >Token Verification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#token-review"
 
 >Token Review&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#token-caching-and-rotation"
 
 >Token Caching and Rotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#apiservice-as-boundobjectref"
 
 >&lt;code>APIService&lt;/code> as &lt;code>BoundObjectRef&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-certificates-mtls"
 
 >Client Certificates (mTLS)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#designated-serviceaccount-magic-sa"
 
 >Designated ServiceAccount (&amp;quot;Magic SA&amp;quot;)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#serviceaccount-token-with-identity-in-private-claims"
 
 >ServiceAccount Token with Identity in Private Claims&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admissionreview-delegation"
 
 >AdmissionReview Delegation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>API Server Network Proxy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1281/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1281/</guid><description>&lt;h1 id="api-server-network-proxy">API Server Network Proxy&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#definitions"
 
 >Definitions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#network-context"
 
 >Network Context&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proxy-grpc-definition"
 
 >Proxy gRPC definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#konnectivity-server"
 
 >Konnectivity Server&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#direct-connection"
 
 >Direct Connection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-api-server-outbound-requests"
 
 >Kubernetes API Server Outbound Requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-the-solution"
 
 >Testing the Solution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#combined-control-plane-and-node-network"
 
 >Combined Control Plane and Node Network&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#control-plane-and-untrusted-node-network"
 
 >Control Plane and Untrusted Node Network&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#control-plane-and-node-networks-which-are-not-ip-routable"
 
 >Control Plane and Node Networks which are not IP Routable&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#better-monitoring"
 
 >Better Monitoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We will build an extensible system which controls network traffic from the Kube API Server.
We will add a traffic egress or network proxy system. The KAS can be configured to send traffic
(or not) to one or more of the proxies. Users can drop in custom proxies if the
default behavior is insufficient.&lt;/p></description></item><item><title>APIServer Tracing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/647/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/647/</guid><description>&lt;h1 id="kep-647-apiserver-tracing">KEP-647: APIServer Tracing&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#definitions"
 
 >Definitions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#steady-state-trace-collection"
 
 >Steady-State trace collection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#on-demand-trace-collection"
 
 >On-Demand trace collection&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#tracing-api-requests"
 
 >Tracing API Requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exporting-spans"
 
 >Exporting Spans&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#running-the-opentelemetry-collector"
 
 >Running the OpenTelemetry Collector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#apiserver-configuration-and-egressselectors"
 
 >APIServer Configuration and EgressSelectors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-requirements"
 
 >Graduation requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives considered&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introducing-a-new-egressselector-type"
 
 >Introducing a new EgressSelector type&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-opentelemetry-exporters"
 
 >Other OpenTelemetry Exporters&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Apply</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/555/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/555/</guid><description>&lt;h1 id="apply">Apply&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-topology"
 
 >API Topology&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#lists"
 
 >Lists&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#maps-and-structs"
 
 >Maps and structs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubectl"
 
 >Kubectl&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#server-side-apply"
 
 >Server-side Apply&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#status-wiping"
 
 >Status Wiping&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-behavior"
 
 >Current Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-change"
 
 >Proposed Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-audit"
 
 >API Audit&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-plan"
 
 >Testing Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade-from-kubectl-client-side-to-server-side-apply"
 
 >Upgrade from kubectl Client-Side to Server-Side Apply&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#avoiding-conflicts-from-client-side-apply-to-server-side-apply"
 
 >Avoiding Conflicts from Client-Side Apply to Server-Side Apply&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#downgrade-from-kubectl-server-side-to-client-side-apply"
 
 >Downgrade from kubectl Server-Side to Client-Side Apply&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade-the-api-server"
 
 >Downgrade the API Server&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history-1"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-1"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;code>kubectl apply&lt;/code> is a core part of the Kubernetes config workflow, but it is
buggy and hard to fix. This functionality will be regularized and moved to the
control plane.&lt;/p></description></item><item><title>Appropriate use of node-role labels</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1143/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1143/</guid><description>&lt;h1 id="appropriate-use-of-node-role-labels">Appropriate use of node-role labels&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-of-node-rolekubernetesio-labels"
 
 >Use of &lt;code>node-role.kubernetes.io/*&lt;/code> labels&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#current-users-of-node-rolekubernetesio-within-the-project-that-must-change"
 
 >Current users of &lt;code>node-role.kubernetes.io/*&lt;/code> within the project that must change&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-load-balancer"
 
 >Service load-balancer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-controller-excludes-master-nodes-from-consideration-for-eviction"
 
 >Node controller excludes master nodes from consideration for eviction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-e2e-tests"
 
 >Kubernetes e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preventing-accidental-reintroduction"
 
 >Preventing accidental reintroduction&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#migrating-existing-deployments"
 
 >Migrating existing deployments&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#instructions-for-deployers"
 
 >Instructions for deployers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reference"
 
 >Reference&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>
 of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Artifact Distribution Policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3000/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3000/</guid><description>&lt;h1 id="kep-3000-image-promotion-and-distribution-policy">KEP 3000: Image Promotion and Distribution Policy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-a-new-domain"
 
 >Why a new domain?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-can-we-help"
 
 >How can we help?&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-not-in-scope"
 
 >What is not in scope&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-good-goals-to-shoot-for"
 
 >What are good goals to shoot for&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-exactly-are-you-doing"
 
 >What exactly are you doing?&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#registryk8sio-request-handling"
 
 >registry.k8s.io request handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives--background"
 
 >Alternatives / Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-much-is-this-going-to-save-us"
 
 >How much is this going to save us?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>For a few years now, we have been using k8s.gcr.io in all our repositories as default repository for downloading images from.&lt;/p></description></item><item><title>Artifact Generation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2503/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2503/</guid><description/></item><item><title>Asynchronous API calls during scheduling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5229/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5229/</guid><description>&lt;h1 id="kep-5229-asynchronous-api-calls-during-scheduling">KEP-5229: Asynchronous API calls during scheduling&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-calls-categorization"
 
 >API calls categorization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#1-how-to-handle-pod-rescheduling-while-waiting-for-the-api-call-to-complete"
 
 >1: How to handle Pod rescheduling while waiting for the API call to complete&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-advanced-queue-and-dont-block-the-pod-from-being-scheduled-in-the-meantime"
 
 >Use advanced queue and don&amp;rsquo;t block the Pod from being scheduled in the meantime&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#2-what-component-should-handle-the-api-calls"
 
 >2: What component should handle the API calls&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#21-make-the-api-calls-queued-in-a-separate-component"
 
 >2.1: Make the API calls queued in a separate component&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#22-send-api-calls-through-a-kube-schedulers-cache"
 
 >2.2: Send API calls through a kube-scheduler&amp;rsquo;s cache&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#asynchronous-api-call-failure"
 
 >Asynchronous API call failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#object-updated-by-an-external-component-causing-a-race-with-the-scheduler"
 
 >Object updated by an external component causing a race with the scheduler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-calls-added-at-a-higher-rate-than-execution-rate-leading-to-memory-explosion"
 
 >API calls added at a higher rate than execution rate leading to memory explosion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-is-retried-based-on-an-old-object"
 
 >Pod is retried based on an old object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#out-of-tree-plugins-start-using-asynchronous-api-calls-framework"
 
 >Out-of-tree plugins start using asynchronous API calls framework&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposal-c-create-a-separate-component-managing-api-calls-but-treat-the-cache-as-a-middleware"
 
 >Proposal C: Create a separate component managing API calls, but treat the cache as a middleware&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary-of-api-call-management"
 
 >Summary of API call management&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enqueueing-a-new-api-call"
 
 >Enqueueing a new API call&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enqueueing-another-api-call-for-the-same-object"
 
 >Enqueueing another API call for the same object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#receiving-object-update-through-event-handlers"
 
 >Receiving object update through event handlers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#executing-the-api-call"
 
 >Executing the API call&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enqueueing-an-api-call-while-a-previous-one-is-in-flight"
 
 >Enqueueing an API call while a previous one is in-flight&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#waiting-for-the-api-call-to-finish"
 
 >Waiting for the API call to finish&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#retrying-api-calls"
 
 >Retrying API calls&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#11-handle-api-calls-in-the-scheduling-queue"
 
 >1.1: Handle API calls in the scheduling queue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#12-handle-api-calls-in-the-handleschedulingfailure"
 
 >1.2: Handle API calls in the handleSchedulingFailure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#21-just-dispatch-goroutines"
 
 >2.1: Just dispatch goroutines&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-design-proposals"
 
 >Alternative design proposals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposal-a-create-a-separate-component-managing-api-calls"
 
 >Proposal A: Create a separate component managing API calls&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-b-make-a-schedulers-cache-managing-api-calls"
 
 >Proposal B: Make a scheduler&amp;rsquo;s cache managing API calls&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Asynchronous Preemption</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4832/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4832/</guid><description>&lt;h1 id="kep-4832-asynchronous-preemption">KEP-4832: Asynchronous Preemption&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#when-kube-apiserver-is-unstable"
 
 >When kube-apiserver is unstable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#consideration-to-race-condition"
 
 >Consideration to race condition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-pod2s-scheduling-is-successful-pod2-is-equal-or-lower-priority-than-pod1"
 
 >The pod2&amp;rsquo;s scheduling is successful (pod2 is equal or lower priority than pod1)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-pod2s-scheduling-is-successful-pod2-is-higher-priority-than-pod1"
 
 >The pod2&amp;rsquo;s scheduling is successful (pod2 is higher priority than pod1)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-pod2s-scheduling-is-failed-and-starts-the-preemption-pod2-is-equal-or-lower-priority-than-pod1"
 
 >The pod2&amp;rsquo;s scheduling is failed and starts the preemption (pod2 is equal or lower priority than pod1)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-pod2s-scheduling-is-failed-and-starts-the-preemption-pod2-is-higher-priority-than-pod1"
 
 >The pod2&amp;rsquo;s scheduling is failed and starts the preemption (pod2 is higher priority than pod1)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introduce-a-new-extension-point"
 
 >Introduce a new extension point&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Authorize with Selectors</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4601/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4601/</guid><description>&lt;h1 id="kep-4601-authorize-with-selectors">KEP-4601: Authorize with Selectors&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#authorization-attributes-changes"
 
 >Authorization Attributes changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future-proofing-your-authorization-webhook-for-future-verbs"
 
 >Future-proofing your authorization webhook for future verbs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#subjectaccessreview-changes"
 
 >SubjectAccessReview Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-authorizer-changes"
 
 >Node Authorizer Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-authorizer-changes"
 
 >CEL Authorizer Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#as-a-sar-client-i-want-to-check-a-request-with-a-field-or-label-selector"
 
 >As a SAR client, I want to check a request with a field or label selector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#as-an-authorization-webhook-author-i-want-to-easily-consume-the-field-and-label-selectors"
 
 >As an authorization webhook author, I want to easily consume the field and label selectors&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#client-provides-field-or-label-selector-to-kube-apiserver-that-does-not-parse"
 
 >client provides field or label selector to kube-apiserver that does not parse&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-provides-field-or-label-selector-to-kube-apiserver-with-improper-verb"
 
 >client provides field or label selector to kube-apiserver with improper verb&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-provides-sar-where-field-rawselector-does-not-match-field-requirements"
 
 >client provides SAR where field rawSelector does not match field requirements.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-kube-apiserver-old-webhook-authorizer"
 
 >New kube-apiserver, old webhook authorizer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#old-kube-apiserver-new-in-cluster-authorizer-or-any-sar-client"
 
 >Old kube-apiserver, new in-cluster authorizer (or any SAR client)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Auto delete PVCs created by StatefulSet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1847/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1847/</guid><description>&lt;h1 id="kep-1847-auto-delete-pvcs-created-by-statefulset">KEP-1847: Auto delete PVCs created by StatefulSet&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-required"
 
 >Changes required&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-0"
 
 >Story 0&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#objects-associated-with-the-statefulset"
 
 >Objects Associated with the StatefulSet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volume-delete-policy-for-the-statefulset-created-pvcs"
 
 >Volume delete policy for the StatefulSet created PVCs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#whenscaled-policy-of-delete"
 
 >&lt;code>whenScaled&lt;/code> policy of &lt;code>Delete&lt;/code>.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#whendeleted-policy-of-delete"
 
 >&lt;code>whenDeleted&lt;/code> policy of &lt;code>Delete&lt;/code>.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-cascading-deletion"
 
 >Non-Cascading Deletion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutating-persistentvolumeclaimretentionpolicy"
 
 >Mutating &lt;code>PersistentVolumeClaimRetentionPolicy&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cluster-role-change-for-statefulset-controller"
 
 >Cluster role change for statefulset controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade--feature-enableddisable-tests"
 
 >Upgrade/downgrade &amp;amp; feature enabled/disable tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-release"
 
 >Alpha release&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-release"
 
 >Beta release&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-release"
 
 >GA release&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-this-feature-be-enabled--disabled-in-a-live-cluster"
 
 >How can this feature be enabled / disabled in a live cluster?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#does-enabling-the-feature-change-any-default-behavior"
 
 >Does enabling the feature change any default behavior?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-the-feature-be-disabled-once-it-has-been-enabled-ie-can-we-roll-back-the-enablement"
 
 >Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-happens-if-we-reenable-the-feature-if-it-was-previously-rolled-back"
 
 >What happens if we reenable the feature if it was previously rolled back?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-tests-for-feature-enablementdisablement"
 
 >Are there any tests for feature enablement/disablement?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-a-rollout-fail-can-it-impact-already-running-workloads"
 
 >How can a rollout fail? Can it impact already running workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-specific-metrics-should-inform-a-rollback"
 
 >What specific metrics should inform a rollback?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#were-upgrade-and-rollback-tested-was-the-upgrade-downgrade-upgrade-path-tested"
 
 >Were upgrade and rollback tested? Was the upgrade-&amp;gt;downgrade-&amp;gt;upgrade path tested?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#is-the-rollout-accompanied-by-any-deprecations-andor-removals-of-features-apis"
 
 >Is the rollout accompanied by any deprecations and/or removals of features, APIs,&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-an-operator-determine-if-the-feature-is-in-use-by-workloads"
 
 >How can an operator determine if the feature is in use by workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-slis-service-level-indicators-an-operator-can-use-to-determine"
 
 >What are the SLIs (Service Level Indicators) an operator can use to determine&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-reasonable-slos-service-level-objectives-for-the-above-slis"
 
 >What are the reasonable SLOs (Service Level Objectives) for the above SLIs?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-missing-metrics-that-would-be-useful-to-have-to-improve-observability"
 
 >Are there any missing metrics that would be useful to have to improve observability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#does-this-feature-depend-on-any-specific-services-running-in-the-cluster"
 
 >Does this feature depend on any specific services running in the cluster?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-api-calls"
 
 >Will enabling / using this feature result in any new API calls?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-introducing-new-api-types"
 
 >Will enabling / using this feature result in introducing new API types?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-calls-to-the-cloud-provider"
 
 >Will enabling / using this feature result in any new calls to the cloud provider?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-size-or-count-of-the-existing-api-objects"
 
 >Will enabling / using this feature result in increasing size or count of the existing API objects?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-time-taken-by-any-operations-covered-by-existing-slisslos"
 
 >Will enabling / using this feature result in increasing time taken by any operations covered by existing SLIs/SLOs?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-non-negligible-increase-of-resource-usage-cpu-ram-disk-io--in-any-components"
 
 >Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, &amp;hellip;) in any components?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-does-this-feature-react-if-the-api-server-andor-etcd-is-unavailable"
 
 >How does this feature react if the API server and/or etcd is unavailable?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-other-known-failure-modes"
 
 >What are other known failure modes?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-steps-should-be-taken-if-slos-are-not-being-met-to-determine-the-problem"
 
 >What steps should be taken if SLOs are not being met to determine the problem?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Auto-refreshing official CVE feed</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3203/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3203/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3203-auto-refreshing-official-cve-feed">KEP-3203: Auto-Refreshing Official CVE Feed&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pre-requisites"
 
 >Pre-requisites&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#json-blob-construction-will-fail"
 
 >JSON blob construction will fail&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#misuse-of-auto-refresh-feature"
 
 >Misuse of Auto-Refresh feature&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#large-json-blob-could-lead-to-slower-readwrite-and-resource-consumption"
 
 >Large JSON blob could lead to slower read/write and resource consumption&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#storage-of-cve-feed-blob"
 
 >Storage of CVE feed blob&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-only-use-google-cloud-bucket"
 
 >1. &lt;strong>Only use Google Cloud Bucket&lt;/strong>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-only-use-git-repository"
 
 >2. &lt;strong>Only use Git Repository&lt;/strong>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>
.&lt;/p></description></item><item><title>Azure Availability Zones</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/586/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/586/</guid><description/></item><item><title>Backoff Limits Per Index For Indexed Jobs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3850/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3850/</guid><description>&lt;h1 id="kep-3850-backoff-limits-per-index-for-indexed-jobs">KEP-3850: Backoff Limits Per Index For Indexed Jobs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#performance-benchmark"
 
 >Performance benchmark&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-job-object-too-big"
 
 >The Job object too big&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#exponential-backoff-delay-issue"
 
 >Exponential backoff delay issue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#too-fast-job-status-updates"
 
 >Too fast Job status updates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#job-api"
 
 >Job API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tracking-the-number-of-failures-per-index"
 
 >Tracking the number of failures per index&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failed-indexes-format"
 
 >Failed indexes format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-completion"
 
 >Job completion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failindex-action"
 
 >FailIndex action&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exponential-backoff-delay-per-index"
 
 >Exponential backoff delay per index&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backofflimitperindex-inside-new-runpolicy"
 
 >backoffLimitPerIndex inside new runPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mark-job-complete-if-some-indexes-failed"
 
 >Mark Job Complete if some indexes failed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-backofflimitperindex-when-restartpolicyonfailure"
 
 >Support backoffLimitPerIndex when restartPolicy=OnFailure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutually-exclusive-backofflimit-and-backofflimitperindex"
 
 >Mutually exclusive backoffLimit and backoffLimitPerIndex&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-bool-field"
 
 >Use bool field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-enum-field"
 
 >Use enum field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#global-exponential-backoff-delay"
 
 >Global exponential backoff delay&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exponential-backoff-delay-with-in-memory-tracking"
 
 >Exponential backoff delay with in-memory tracking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-ways-to-support-high-number-of-completions"
 
 >Alternative ways to support high number of completions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#keep-failedindexes-field-as-a-bitmap"
 
 >Keep failedIndexes field as a bitmap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#keep-the-list-of-failed-indexes-in-a-dedicated-api-object"
 
 >Keep the list of failed indexes in a dedicated API object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implicit-limit-on-the-number-of-failed-indexes"
 
 >Implicit limit on the number of failed indexes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#skip-uncountedterminatedpods-when-backofflimitperindex-is-used"
 
 >Skip uncountedTerminatedPods when backoffLimitPerIndex is used&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Beta APIs Are Off by Default</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3136/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3136/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3136-beta-apis-are-off-by-default">KEP-3136: Beta APIs Are Off by Default&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Beta Feature Gate Promotion Requirements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5241/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5241/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5241-beta-feature-gate-promotion-requirements">KEP-5241: Beta Feature Gate Promotion Requirements&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-if-i-need-to-add-capability-to-my-feature"
 
 >What if I need to add capability to my feature?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#who-will-make-sure-that-new-keps-follow-the-promotion-rules"
 
 >Who will make sure that new KEPs follow the promotion rules?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#this-may-slow-the-rate-that-new-features-are-promoted"
 
 >This may slow the rate that new features are promoted.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Block ExternalIPs via Admission Control</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2200/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2200/</guid><description>&lt;h1 id="kep-2200-deny-use-of-externalips-via-admission-control">KEP-2200: Deny use of ExternalIPs via admission control&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal is in response to CVE-2020-8554: &amp;ldquo;Man in the middle using
LoadBalancer or ExternalIPs&amp;rdquo;.&lt;/p></description></item><item><title>bound service account token improvements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4193/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4193/</guid><description>&lt;h1 id="kep-4193-bound-service-account-token-improvements">KEP-4193: bound service account token improvements&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#embedding-pods-bound-node-information-in-tokens"
 
 >Embedding Pod&amp;rsquo;s bound Node information in tokens&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allowing-serviceaccount-tokens-to-be-bound-to-a-node-object"
 
 >Allowing ServiceAccount tokens to be bound to a Node object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extending-tokenreview-to-verify-tokens-bound-to-node-objects"
 
 >Extending TokenReview to verify tokens bound to Node objects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#including-a-uuid-jti-on-each-issued-jwt"
 
 >Including a UUID (&lt;a href="https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7">JTI&lt;/a>) on each issued JWT&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Bound Service Account Tokens</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1205/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1205/</guid><description>&lt;h1 id="bound-service-account-tokens">Bound Service Account Tokens&lt;/h1>
&lt;h2 id="table-of-contents">Table Of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#tokenrequest"
 
 >TokenRequest&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#token-attenuations"
 
 >Token Attenuations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#audience-binding"
 
 >Audience binding&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#time-binding"
 
 >Time Binding&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#object-binding"
 
 >Object Binding&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-tokenrequestsauthenticationk8sio"
 
 >Add &lt;code>tokenrequests.authentication.k8s.io&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modify-tokenreviewsauthenticationk8sio"
 
 >Modify &lt;code>tokenreviews.authentication.k8s.io&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-flow"
 
 >Example Flow&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#service-account-authenticator-modification"
 
 >Service Account Authenticator Modification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#acls-for-tokenrequest"
 
 >ACLs for TokenRequest&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tokenrequestprojection"
 
 >TokenRequestProjection&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-change"
 
 >API Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#file-permission"
 
 >File Permission&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-heuristics"
 
 >Proposed Heuristics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#serviceaccount-admission-controller-migration"
 
 >ServiceAccount Admission Controller Migration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisites"
 
 >Prerequisites&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#safe-rollout-of-time-bound-token"
 
 >Safe Rollout of Time-bound Token&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#tokenrequesttokenrequestprojection"
 
 >TokenRequest/TokenRequestProjection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rootcaconfigmap"
 
 >RootCAConfigMap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#boundserviceaccounttokenvolume"
 
 >BoundServiceAccountTokenVolume&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#tokenrequesttokenrequestprojection-1"
 
 >TokenRequest/TokenRequestProjection&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta-ga"
 
 >Beta-&amp;gt;GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rootcaconfigmap-1"
 
 >RootCAConfigMap&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta-ga-1"
 
 >Beta-&amp;gt;GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#boundserviceaccounttokenvolume-1"
 
 >BoundServiceAccountTokenVolume&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-beta"
 
 >Alpha-&amp;gt;Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP describes an API that would allow workloads running on Kubernetes to
request JSON Web Tokens that are audience, time and eventually key bound. In
addition, this KEP introduces a new mechanism of distribution with support for
bound service account tokens and explores how to migrate from the existing
mechanism backwards compatibly.&lt;/p></description></item><item><title>Bounding Self-Labeling Kubelets</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/279/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/279/</guid><description>&lt;h1 id="bounding-self-labeling-kubelets">Bounding Self-Labeling Kubelets&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#capturing-dedicated-workloads"
 
 >Capturing Dedicated Workloads&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-timeline"
 
 >Implementation Timeline&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#file-or-flag-based-configuration-of-the-apiserver-to-allow-specifying-allowed-labels"
 
 >File or flag-based configuration of the apiserver to allow specifying allowed labels&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-based-configuration-of-the-apiserver-to-allow-specifying-allowed-labels"
 
 >API-based configuration of the apiserver to allow specifying allowed labels&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-kubelets-to-add-any-labels-they-wish-and-add-noschedule-taints-if-disallowed-labels-are-added"
 
 >Allow kubelets to add any labels they wish, and add NoSchedule taints if disallowed labels are added&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#forbid-all-labels-regardless-of-namespace-except-for-a-specifically-allowed-set"
 
 >Forbid all labels regardless of namespace except for a specifically allowed set&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Today the node client has total authority over its own Node labels.
This ability is incredibly useful for the node auto-registration flow.
The kubelet reports a set of well-known labels, as well as additional
labels specified on the command line with &lt;code>--node-labels&lt;/code>.&lt;/p></description></item><item><title>Breaking apart the Kubernetes test tarball</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/714/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/714/</guid><description>&lt;h1 id="breaking-apart-the-kubernetes-test-tarball">Breaking apart the kubernetes test tarball&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#internal-structure-of-the-test-tarball"
 
 >Internal structure of the test tarball&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#binary-artifacts"
 
 >Binary artifacts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#portable-sources"
 
 >Portable sources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#updating-dependencies-on-kubernetes-testtargz"
 
 >Updating dependencies on &lt;code>kubernetes-test.tar.gz&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dependencies-outside-the-kubernetes-organization"
 
 >Dependencies outside the Kubernetes organization&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &lt;a href="https://github.com/kubernetes/enhancements/issues/714"
 
 target="_blank" rel="noopener">k/enhancements issue in release milestone and linked to KEP&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The Kubernetes release artifacts include a &amp;ldquo;mondo&amp;rdquo; test tarball which includes both
&amp;ldquo;portable&amp;rdquo; test sources (such as shell scripts and image manifests) as well as
platform-specific test binaries for all supported client, node, and
server platforms.&lt;/p></description></item><item><title>Building a Dockerless Kubelet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1547/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1547/</guid><description>&lt;h1 id="building-a-dockerless-kubelet">Building a Dockerless Kubelet&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#history"
 
 >History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#returning-to-motivation"
 
 >Returning to Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal outlines a plan to enable building a dockerless Kubelet. We
define a dockerless Kubelet as a Kubelet with no &amp;ldquo;Docker-specific&amp;rdquo; code and
no dependency on the &lt;code>docker/docker&lt;/code> Golang package. We define &amp;ldquo;Docker-specific&amp;rdquo;
code as code which only serves a purpose when Docker is the container runtime.
&amp;ldquo;Docker-specific&amp;rdquo; code is never executed when the Kubelet uses a remote
container runtime (i.e. containerd or CRI-O).&lt;/p></description></item><item><title>Building Kubernetes Without In-Tree Cloud Providers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1179/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1179/</guid><description>&lt;h1 id="building-kubernetes-without-in-tree-cloud-providers">Building Kubernetes Without In-Tree Cloud Providers&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://github.com/kubernetes/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal outlines a plan to enable building Kubernetes without the in-tree
cloud providers in preparation for &lt;a href="https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/sig-cloud-provider/2395-removing-in-tree-cloud-providers"
 
 target="_blank" rel="noopener">removing them entirely&lt;/a>
.&lt;/p></description></item><item><title>Built-in declarative defaults</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1929/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1929/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-1929-built-in-declarative-defaults">KEP-1929: Built-in declarative defaults&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-crd-normalization"
 
 >Changes to CRD Normalization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-kubebuilderdefault-gen"
 
 >Changes to kubebuilder/default-gen&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-publishing"
 
 >Default publishing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#marker-format"
 
 >Marker format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#non-pointer-structs"
 
 >Non-pointer structs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#struct-pointers"
 
 >Struct pointers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-pointer-scalar-fields"
 
 >Non-pointer scalar fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lists"
 
 >Lists&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lists-without-default"
 
 >Lists without default&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#string-maps"
 
 >String Maps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#string-maps-without-default"
 
 >String maps without default&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>cAdvisor-less, CRI-full Container and Pod Stats</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2371/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2371/</guid><description>&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#cadvisor-less-cri-full-container-and-pod-stats"
 
 >cAdvisor-less, CRI-full Container and Pod Stats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-state-of-these-metrics"
 
 >Current State of These Metrics&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-fulfiller-of-metrics-endpoints--future-proposal"
 
 >Current Fulfiller of Metrics Endpoints &amp;amp; Future Proposal&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#summary-api"
 
 >Summary API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metricscadvisor"
 
 >/metrics/cadvisor&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#historypast-conversations"
 
 >History/Past Conversations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#open-questions"
 
 >Open Questions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#stats-summary-api"
 
 >Stats Summary API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-implementation"
 
 >CRI Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#containerstats-additions"
 
 >ContainerStats additions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podstats-cri-additions"
 
 >PodStats CRI additions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#containermetrics-additions"
 
 >ContainerMetrics additions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet"
 
 >Kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cadvisor"
 
 >cAdvisor&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cadvisor-metrics-endpoint"
 
 >cAdvisor Metrics Endpoint&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-implementations"
 
 >CRI implementations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cadvisor-1"
 
 >cAdvisor&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows"
 
 >Windows&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h1 id="cadvisor-less-cri-full-container-and-pod-stats">cAdvisor-less, CRI-full Container and Pod Stats&lt;/h1>
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Calendar and Meeting Guidelines</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/calendars/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/calendars/</guid><description>&lt;p>Project meetings are a life line of the Kubernetes project. Consistent
calendaring is a challenge with many different clients, corporate policies,
time zones and various iterations of Daylight Savings Time. This guide should
help you navigate some of the common pitfalls and provide some tips &amp;amp; best
practices.&lt;/p>
&lt;p>Please feel free to PR in your favorite tips and tricks that may help others.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#calendar-guidelines"
 
 >Calendar Guidelines&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#establishing-a-new-meeting"
 
 >Establishing a New Meeting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#testing-permissions"
 
 >Testing Permissions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#transferring-ownership"
 
 >Transferring Ownership&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tips"
 
 >Tips&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#viewing-kubernetes-project-calendars"
 
 >Viewing Kubernetes Project Calendars&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#adding-events-to-your-own-calendar"
 
 >Adding Events to Your own Calendar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#calendar-event-template"
 
 >Calendar Event Template&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#title"
 
 >Title&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#description"
 
 >Description&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#permissions-impacted-after-changing-positions-or-role"
 
 >Permissions Impacted After Changing Positions or Role&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="establishing-a-new-meeting">Establishing a New Meeting&lt;/h2>
&lt;p>&lt;em>&amp;ldquo;I&amp;rsquo;m a chair for a SIG or WG and need to set up a meeting.&amp;rdquo;&lt;/em>&lt;/p></description></item><item><title>CBOR Serializer</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4222/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4222/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4222-cbor-serializer">KEP-4222: CBOR Serializer&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#format"
 
 >Format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#negotiation"
 
 >Negotiation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-enablement"
 
 >Client Enablement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phased-implementation"
 
 >Phased Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#library-dependency"
 
 >Library Dependency&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-cbor"
 
 >Why CBOR?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#duplicate-map-keys-and-unrecognized-or-duplicate-field-names"
 
 >Duplicate Map Keys and Unrecognized or Duplicate Field Names&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#encoding-determinism"
 
 >Encoding Determinism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unicode"
 
 >Unicode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#libraries"
 
 >Libraries&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rawextension"
 
 >RawExtension&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#usage"
 
 >Usage&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#transient-external-types"
 
 >Transient External Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stored-external-types"
 
 >Stored External Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#types-as-canonical-definition-of-custom-resources"
 
 >Types as Canonical Definition of Custom Resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scenarios"
 
 >Scenarios&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compatibility"
 
 >Compatibility&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#migration"
 
 >Migration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#custom-json-marshalers"
 
 >Custom JSON Marshalers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CEL for Admission Control</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3488/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3488/</guid><description>&lt;h1 id="kep-3488-cel-for-admission-control">KEP-3488: CEL for Admission Control&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#considerations"
 
 >Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#admission-webhook-parity"
 
 >Admission Webhook Parity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#configurability"
 
 >Configurability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#migration"
 
 >Migration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compliance"
 
 >Compliance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1"
 
 >Phase 1&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-shape"
 
 >API Shape&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policy-definitions"
 
 >Policy Definitions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#policy-configuration"
 
 >Policy Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#match-criteria"
 
 >Match Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#decisions-and-enforcement"
 
 >Decisions and Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failure-policy"
 
 >Failure Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#safety-measures"
 
 >Safety measures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#singleton-policies"
 
 >Singleton Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limits"
 
 >Limits&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#phase-2"
 
 >Phase 2&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#informational-type-checking"
 
 >Informational type checking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enforcement-actions"
 
 >Enforcement Actions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#audit-annotations"
 
 >Audit Annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#audit-events"
 
 >Audit Events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#per-namespace-policy-params"
 
 >Per namespace policy params&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#match-conditions"
 
 >Match Conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-expression-composition"
 
 >CEL Expression Composition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#variables"
 
 >Variables&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#secondary-authz"
 
 >Secondary Authz&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#access-to-namespace"
 
 >Access to namespace&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#transition-rules"
 
 >Transition rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-constraints"
 
 >Resource constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#safety-features"
 
 >Safety Features&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aggregated-api-servers"
 
 >Aggregated API servers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-function-library"
 
 >CEL function library&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#audit-annotations-1"
 
 >Audit Annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-visibility"
 
 >Client visibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-plan"
 
 >Future Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#namespace-scoped-policy-binding"
 
 >Namespace scoped policy binding&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-case-singleton-policy"
 
 >Use Case: Singleton Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-shared-parameter-resource"
 
 >Use Case: Shared Parameter Resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-principle-of-least-privilege-policy"
 
 >Use Case: Principle of least privilege policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-validating-native-type-with-new-field-version-skew-case"
 
 >Use Case: Validating native type with new field (version skew case)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-multiple-policy-definitions-for-different-versions-of-crd"
 
 >Use Case: Multiple policy definitions for different versions of CRD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-prevent-admission-webhooks-from-matching-a-reserved-namespace"
 
 >Use Case: Prevent admission webhooks from matching a reserved namespace&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-fine-grained-control-of-enforcement"
 
 >Use Case: Fine grained control of enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-migrating-from-validating-webhook-to-validation-policy"
 
 >Use Case: Migrating from validating webhook to validation policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-pre-existing-deployment-triggers-rollout-long-after-pod-policy-is-changed"
 
 >Use Case: Pre-existing Deployment triggers rollout long after Pod policy is changed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-rollout-of-a-new-validation-expression-to-an-existing-policy"
 
 >Use Case: Rollout of a new validation expression to an existing policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-canary-ing-a-policy"
 
 >Use Case: Canary-ing a policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#potential-applications"
 
 >Potential Applications&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-case-build-in-admission-controllers"
 
 >Use Case: Build-in admission controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-kubewarden"
 
 >Use Case: KubeWarden&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-opagatekeeper"
 
 >Use Case: OPA/Gatekeeper&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-k-rail"
 
 >Use Case: K-Rail&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-kyverno"
 
 >Use Case: Kyverno&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-cloud-provider-extensions"
 
 >Use Case: Cloud Provider Extensions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cel-integration-with-kubernetes-native-types"
 
 >CEL Integration with Kubernetes native types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#writing-to-status"
 
 >Writing to Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#versioning"
 
 >Versioning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policy-definition-versioning"
 
 >Policy Definition Versioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#parameter-crd-versioning"
 
 >Parameter CRD Versioning&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#type-checking-alternatives"
 
 >Type checking alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#policy-definition-and-configuration-separation-alternatives"
 
 >Policy definition and configuration separation alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-duck-typed-crds"
 
 >Alternative: Duck Typed CRDs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-openapiv3-ref-in-crds"
 
 >Alternative: OpenAPIv3 &lt;code>$ref&lt;/code> in CRDs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-matchrules-subresource"
 
 >Alternative: &lt;code>/matchRules&lt;/code> subresource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-policyconfiguration-kind-with-config-embedded"
 
 >Alternative: &lt;code>PolicyConfiguration&lt;/code> kind with config embedded&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-generate-crds"
 
 >Alternative: Generate CRDs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cel-variables-alternatives"
 
 >CEL variables alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-scopes"
 
 >Alternative: Scopes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#message-formatting-alternatives"
 
 >Message formatting alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CEL for CRD AdditionalPrinterColumns</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4595/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4595/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4595-cel-for-crd-additionalprintercolumns">KEP-4595: CEL for CRD AdditionalPrinterColumns&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#complex-cel-expressions-may-impact-compilation-performance"
 
 >Complex CEL expressions may impact compilation performance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-evaluation-errors-despite-successful-compilation"
 
 >Runtime evaluation errors despite successful compilation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-flow-of-cel-additionalprintercolumns"
 
 >Proposed flow of CEL additionalPrinterColumns&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-compilation"
 
 >CEL Compilation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-vs-jsonpath-performance-analysis"
 
 >CEL vs JSONPath Performance Analysis&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Certificates API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1513/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1513/</guid><description>&lt;h1 id="certificates-api">Certificates API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sequence-of-an-issuance"
 
 >Sequence of an Issuance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#signers"
 
 >Signers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#limiting-approval-and-signer-powers-for-certain-signers"
 
 >Limiting approval and signer powers for certain signers.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-changes-between-v1beta1-and-v1"
 
 >API changes between v1beta1 and v1&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#importance-of-specsignername"
 
 >Importance of .spec.signerName&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#certificatesigningrequest-api-definition"
 
 >CertificateSigningRequest API Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#manual-csr-approval-with-kubectl"
 
 >Manual CSR Approval With Kubectl&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automatic-csr-approval-implementations"
 
 >Automatic CSR Approval Implementations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automatic-signer-implementations"
 
 >Automatic Signer Implementations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The Certificates API enables automation of
&lt;a href="https://tools.ietf.org/html/rfc5280"
 
 target="_blank" rel="noopener">x509&lt;/a>
 credential provisioning by providing
a programmatic interface for clients of the Kubernetes API to request and obtain
x509 certificates from a Certificate Authority (CA).&lt;/p></description></item><item><title>Certificates copy for join --control-plane</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2502/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2502/</guid><description/></item><item><title>cgroups v2</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2254/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2254/</guid><description>&lt;h1 id="cgroups-v2">Cgroups v2&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design"
 
 >Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dependencies-on-oci-and-container-runtimes"
 
 >Dependencies on OCI and container runtimes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#current-status-of-dependencies"
 
 >Current status of dependencies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#current-cgroups-usage-and-the-equivalent-in-cgroups-v2"
 
 >Current cgroups usage and the equivalent in cgroups v2&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cgroup-namespace"
 
 >cgroup namespace&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-1-convert-from-cgroups-v1-settings-to-v2"
 
 >Phase 1: Convert from cgroups v1 settings to v2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-use-cgroups-v2-throughout-the-stack"
 
 >Phase 2: Use cgroups v2 throughout the stack&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk-and-mitigations"
 
 >Risk and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>A proposal to add support for cgroups v2 to kubernetes.&lt;/p></description></item><item><title>Clarify if/how controllers can use status to track non-observable state</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2527/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2527/</guid><description>&lt;h1 id="kep-2527-clarify-ifhow-controllers-can-use-status-to-track-non-observable-state">KEP-2527: Clarify if/how controllers can use status to track non-observable state&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#part-1-loosen-and-clarify-status"
 
 >Part 1: Loosen and clarify &lt;code>status&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#part-2-clarify-when-it-makes-sense-to-use-2-objects"
 
 >Part 2: Clarify when it makes sense to use 2 objects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-add-a-new-top-level-stanza-to-specstatus-resources"
 
 >Alternative 1: Add a new top-level stanza to spec/status resources&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#examples-1"
 
 >Examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tradeoffs"
 
 >Tradeoffs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-sub-divide-spec"
 
 >Alternative 2: Sub-divide spec&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#examples-2"
 
 >Examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tradeoffs-1"
 
 >Tradeoffs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notes"
 
 >Notes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Cleaning up container streaming requests</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1558/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1558/</guid><description>&lt;h1 id="cleaning-up-container-streaming-requests">Cleaning up container streaming requests&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rollout-plan"
 
 >Rollout Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dependence-on-apiserver-redirects"
 
 >Dependence on apiserver redirects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-breakage"
 
 >Rollout breakage&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#removing-a-deprecated-flag"
 
 >Removing a deprecated flag&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Cleaning up IPTables Chain Ownership</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3178/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3178/</guid><description>&lt;h1 id="kep-3178-cleaning-up-iptables-chain-ownership">KEP-3178: Cleaning up IPTables Chain Ownership&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-chains-in-question-and-their-purpose"
 
 >The Chains in Question and Their Purpose&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eliminating-kube-mark-drop"
 
 >Eliminating &lt;code>KUBE-MARK-DROP&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#external-users-of-kubelets-iptables-chains"
 
 >External Users of Kubelet&amp;rsquo;s IPTables Chains&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#iptables-wrapper"
 
 >&lt;code>iptables-wrapper&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#martian-packet-blocking"
 
 >Martian Packet Blocking&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pre-alpha"
 
 >Pre-Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-125"
 
 >Alpha (1.25)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-127"
 
 >Beta (1.27)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-128"
 
 >GA (1.28?)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga--2"
 
 >GA + 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#indeterminate-future"
 
 >Indeterminate Future&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-a-feature-gate-in-kube-proxy-as-well"
 
 >Use a Feature Gate in Kube-Proxy As Well&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#move-kube-mark-drop-to-kube-proxy-rather-than-removing-it"
 
 >Move &lt;code>KUBE-MARK-DROP&lt;/code> to Kube-Proxy Rather Than Removing It&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#remove-kube-mark-masq-from-kube-proxy-and-let-kubelet-own-it"
 
 >Remove &lt;code>KUBE-MARK-MASQ&lt;/code> from Kube-Proxy and Let Kubelet Own It&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Kubelet currently creates some IPTables chains at startup. In the past
it actually used some of them, but with &lt;a href="../../sig-node/2221-remove-dockershim"
 
 >the removal of dockershim&lt;/a>
 it
no longer does. Additionally, for historical reasons, it creates some
IPTables chains that are duplicates of chains also created by
kube-proxy, and some that are only used by kube-proxy, but which
kube-proxy requires kubelet to create on its behalf. (The initial
comment in &lt;a href="https://github.com/kubernetes/kubernetes/issues/82125"
 
 target="_blank" rel="noopener">kubernetes #82125&lt;/a>
 has more details on the history of how
we got to where we are now, or at least to where we were before
dockershim was removed.)&lt;/p></description></item><item><title>Client Executable Proxy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2718/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2718/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2718-client-executable-proxy">KEP-2718: Client Executable Proxy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proxy-proposal"
 
 >Proxy Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authentication-to-proxy"
 
 >Authentication to Proxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#caching"
 
 >Caching&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proxy-shutdown"
 
 >Proxy Shutdown&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-proposal-request-replacement"
 
 >Alternative Proposal: Request Replacement&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Client Opt-out for managedFields in API Response</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5958/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5958/</guid><description>&lt;h1 id="kep-5958-client-opt-out-for-managedfields-in-api-response">KEP-5958: Client Opt-out for managedFields in API Response&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#accept-parameter"
 
 >Accept Parameter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#in-tree-controller-migration"
 
 >In-tree Controller Migration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-configuration"
 
 >Client Configuration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#client-support-and-version-skew"
 
 >Client Support and Version Skew&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-questionnaire"
 
 >Production Readiness Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Client-go Apply</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2155/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2155/</guid><description>&lt;h1 id="kep-2155-apply-for-client-gos-typed-client">KEP-2155: Apply for client-go&amp;rsquo;s typed client&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#poor-adoption"
 
 >Poor adoption&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#apply-functions"
 
 >Apply functions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generated-apply-configuration-types"
 
 >Generated apply configuration types&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deepcopy-support"
 
 >DeepCopy support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#code-generator-changes"
 
 >Code Generator Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#addition-of-applyconfiguration-gen"
 
 >Addition of applyconfiguration-gen&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-gen-changes"
 
 >client-gen changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#readmodifywrite-loop-support"
 
 >read/modify/write loop support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interoperability-with-structured-and-unstructured-types"
 
 >Interoperability with structured and unstructured types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#fuzz-based-round-trip-testing"
 
 >Fuzz-based round-trip testing&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#integration-testing"
 
 >Integration testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-testing"
 
 >e2e testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-generated-structs-where-all-fields-are-pointers"
 
 >Alternative: Generated structs where all fields are pointers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-use-yaml-directly"
 
 >Alternative: Use YAML directly&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-combine-go-structs-with-fieldset-mask"
 
 >Alternative: Combine go structs with fieldset mask&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-use-varadic-function-based-builders"
 
 >Alternative: Use varadic function based builders&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Cloud Dual-Stack --node-ip Handling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3705/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3705/</guid><description>&lt;h1 id="kep-3705-cloud-dual-stack-node-ip-handling">KEP-3705: Cloud Dual-Stack &amp;ndash;node-ip Handling&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-behavior"
 
 >Current behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to---node-ip"
 
 >Changes to &lt;code>&amp;ndash;node-ip&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-the-provided-node-ip-annotation"
 
 >Changes to the &lt;code>provided-node-ip&lt;/code> annotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-cloud-providers"
 
 >Changes to cloud providers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-of---node-ip-possibilities"
 
 >Example of &lt;code>&amp;ndash;node-ip&lt;/code> possibilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Kubelet supports dual-stack &lt;code>--node-ip&lt;/code> values for clusters with
no cloud provider (eg, &amp;ldquo;bare metal&amp;rdquo; clusters), but not for clusters
using a cloud provider. This KEP proposes to fix that.&lt;/p></description></item><item><title>Cloud Provider Documentation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2393/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2393/</guid><description>&lt;h2 id="documentation-requirements-for-kubernetes-cloud-providers">Documentation Requirements for Kubernetes Cloud Providers&lt;/h2>
&lt;h3 id="table-of-contents">Table of Contents&lt;/h3>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-format-for-documentation"
 
 >Proposed Format for Documentation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#requirement-1-example-manifests"
 
 >Requirement 1: Example Manifests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#requirement-2-resource-management"
 
 >Requirement 2: Resource Management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h3 id="summary">Summary&lt;/h3>
&lt;p>This KEP describes the documentation requirements for both in-tree and out-of-tree cloud providers.
These requirements are meant to ensure the usage and integration of cloud providers with the rest of the Kubernetes ecosystem is concise and clear and that documentation layout across providers is consistent.&lt;/p></description></item><item><title>Cloud Provider for BaiduCloud</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2531/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2531/</guid><description/></item><item><title>Cloud Provider For HUAWEI CLOUD</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2532/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2532/</guid><description/></item><item><title>Cluster Profile API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4322/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4322/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4322-clusterprofile-api">KEP-4322: ClusterProfile API&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#terminology"
 
 >Terminology&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-multicluster-workload-distribution"
 
 >Story 1: Multicluster Workload Distribution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-operations-and-management"
 
 >Story 2: Operations and Management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-transparent-to-consumers"
 
 >Story 3: Transparent to Consumers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#whats-the-relationship-between-the-clusterprofile-api-and-cluster-inventory"
 
 >What&amp;rsquo;s the relationship between the ClusterProfile API and Cluster Inventory?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#whats-the-relationship-between-a-cluster-inventory-and-clusterset"
 
 >What&amp;rsquo;s the relationship between a cluster inventory and clusterSet?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-should-the-api-be-consumed"
 
 >How should the API be consumed?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-should-we-organize-clusterprofile-objects-on-a-hub-cluster"
 
 >How should we organize ClusterProfile objects on a hub cluster?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#uniqueness-of-the-clusterprofile-object"
 
 >Uniqueness of the ClusterProfile object&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cluster-name"
 
 >Cluster Name&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-1"
 
 >Example 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-2"
 
 >Example 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#spec"
 
 >Spec&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#display-name"
 
 >Display name&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-manager"
 
 >Cluster Manager&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#status"
 
 >Status&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version"
 
 >Version&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#properties"
 
 >Properties&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conditions"
 
 >Conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#access-providers"
 
 >Access Providers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cluster-access"
 
 >Cluster Access&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pull-model-with-work-api"
 
 >Pull Model with Work API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#push-model-with-identity-federation-recommended"
 
 >Push Model with Identity Federation (Recommended)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#push-model-via-access-provider-plugins"
 
 >Push Model via Access Provider Plugins&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#access-provider-plugin-design"
 
 >Access Provider Plugin Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#external-access-provider-plugin-mechanism"
 
 >External Access Provider Plugin Mechanism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#standardizing-the-provider-definition"
 
 >Standardizing the Provider Definition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cluster-data"
 
 >Cluster Data&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#passing-plugin-configuration-via-extensions"
 
 >Passing Plugin Configuration via Extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security-concerns"
 
 >Security Concerns&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#configuring-plugins-in-the-controller"
 
 >Configuring Plugins in the Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugin-examples"
 
 >Plugin Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#secret-reader-plugin"
 
 >Secret Reader Plugin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gke-with-workload-identity-federation"
 
 >GKE with Workload Identity Federation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-example"
 
 >API Example&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-examples-with-access-providers"
 
 >API Examples with Access Providers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability-implication"
 
 >Scalability implication&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#extending-cluster-api-cluster-resource"
 
 >Extending Cluster API &lt;code>Cluster&lt;/code> resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clusterprofile-crd-scope"
 
 >ClusterProfile CRD scope&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#global-hub-cluster-for-multiple-clustersets"
 
 >Global hub cluster for multiple clustersets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#global-hub-cluster-per-clusterset"
 
 >Global hub cluster per clusterset&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#regional-hub-cluster-for-multiple-clustersets"
 
 >Regional hub cluster for multiple clustersets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#regional-hub-clusters-per-clusterset"
 
 >Regional hub clusters per clusterset&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#self-assembling-clustersets"
 
 >Self-assembling clustersets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workload-placement-across-multiple-clusters-without-cross-cluster-service-networking"
 
 >Workload placement across multiple clusters &lt;em>without&lt;/em> cross-cluster service networking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workload-placement-into-a-specific-clusterset"
 
 >Workload placement into a specific clusterset&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#push-model-via-credentials-in-secret"
 
 >Push Model via Credentials in Secret&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#secret-format"
 
 >Secret format&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Cluster Trust Bundles</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3257/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3257/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3257-cluster-trust-bundles">KEP-3257: Cluster Trust Bundles&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#trust-anchor-distribution-for-private-cas"
 
 >Trust Anchor Distribution for Private CAs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#clustertrustbundle-object"
 
 >ClusterTrustBundle Object&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-object-definition"
 
 >API Object Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#access-control"
 
 >Access Control&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#well-known-clustertrustbundles"
 
 >Well-known ClusterTrustBundles&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#clustertrustbundle-projected-volume-source"
 
 >ClusterTrustBundle Projected Volume Source&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configuration-object-definition"
 
 >Configuration Object Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volume-content-generation-and-refresh"
 
 >Volume Content Generation and Refresh&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#canarying-changes-to-a-clustertrustbundle"
 
 >Canarying Changes to a ClusterTrustBundle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#publishing-the-kube-apiserver-serving-trust-bundle"
 
 >Publishing the kube-apiserver-serving Trust Bundle&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-kube-apiserver-serving-signer"
 
 >The kube-apiserver-serving signer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-and-kcm-api-discovery"
 
 >Kubelet and KCM API discovery&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#do-nothing-in-tree-solve-trust-distribution-with-crdcsi-driver"
 
 >Do nothing in-tree; solve trust distribution with CRD/CSI driver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-a-configmap-rather-than-defining-a-new-type"
 
 >Use a ConfigMap rather than defining a new type&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-for-other-certificate-formats-beyond-pem-wrapped-der-formatted-x509"
 
 >Support for other certificate formats beyond PEM-wrapped DER-formatted X.509&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>ClusterID for ClusterSet Identification</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2149/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2149/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2149-clusterid-for-clusterset-identification">KEP-2149: ClusterId for ClusterSet identification&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#clusterset-membership"
 
 >ClusterSet membership&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#joining-or-moving-between-clustersets"
 
 >Joining or moving between ClusterSets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multi-cluster-services"
 
 >Multi-Cluster Services&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#diagnostics"
 
 >Diagnostics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multi-tenant-controllers"
 
 >Multi-tenant controllers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#clusterproperty-crd"
 
 >&lt;code>ClusterProperty&lt;/code> CRD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#well-known-properties"
 
 >Well known properties&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#property-clusterclustersetk8sio"
 
 >Property: &lt;code>cluster.clusterset.k8s.io&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#uniqueness"
 
 >Uniqueness&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lifespan"
 
 >Lifespan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#contents"
 
 >Contents&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consumers"
 
 >Consumers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notable-scenarios"
 
 >Notable scenarios&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#property-clustersetk8sio"
 
 >Property: &lt;code>clusterset.k8s.io&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#lifespan-1"
 
 >Lifespan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#contents-1"
 
 >Contents&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consumers-1"
 
 >Consumers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#additional-properties"
 
 >Additional Properties&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#note-on-clusterpropertyvalue-max-length-validation"
 
 >Note: On ClusterProperty.value max length validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rationale-behind-the-clusterproperty-crd"
 
 >Rationale behind the &lt;code>ClusterProperty&lt;/code> CRD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementing-the-clusterproperty-crd-and-its-admission-controllers"
 
 >Implementing the &lt;code>ClusterProperty&lt;/code> CRD and its admission controllers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#clusterclustersetk8sio-clusterproperty"
 
 >&lt;code>cluster.clusterset.k8s.io ClusterProperty&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clustersetk8sio-clusterproperty"
 
 >&lt;code>clusterset.k8s.io ClusterProperty&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#crd-upgrade-path"
 
 >CRD upgrade path&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#to-crd-or-not-to-crd"
 
 >To CRD or not to CRD?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-criteria"
 
 >Beta -&amp;gt; GA criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>ClusterProfile credentials plugin</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5339/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5339/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5339-plugin-for-credentials-in-clusterprofile">KEP-5339: Plugin for Credentials in ClusterProfile&lt;/h1>
&lt;h2 id="status">Status&lt;/h2>
&lt;p>This KEP has been replaced by &lt;a href="https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/sig-multicluster/4322-cluster-inventory/"
 
 target="_blank" rel="noopener">KEP-4322: ClusterProfile API&lt;/a>
. The credential provider plugin mechanism, &lt;code>accessProviders&lt;/code> API field, and related design details have been merged into KEP-4322.&lt;/p></description></item><item><title>Code Of Conduct</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct/</guid><description>&lt;h2 id="cncf-community-code-of-conduct-v13">CNCF Community Code of Conduct v1.3&lt;/h2>
&lt;p>Other languages available:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ar.md"
 
 target="_blank" rel="noopener">Arabic/العربية&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/bn.md"
 
 target="_blank" rel="noopener">Bengali/বাংলা&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/bg.md"
 
 target="_blank" rel="noopener">Bulgarian/Български&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/zh.md"
 
 target="_blank" rel="noopener">Chinese/中文&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/cs.md"
 
 target="_blank" rel="noopener">Czech/Česky&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/fa.md"
 
 target="_blank" rel="noopener">Farsi/فارسی&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/fr.md"
 
 target="_blank" rel="noopener">French/Français&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/de.md"
 
 target="_blank" rel="noopener">German/Deutsch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/he.md"
 
 target="_blank" rel="noopener">Hebrew/עברית&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/hi.md"
 
 target="_blank" rel="noopener">Hindi/हिन्दी&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/hu.md"
 
 target="_blank" rel="noopener">Hungarian/Magyar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/id.md"
 
 target="_blank" rel="noopener">Indonesian/Bahasa Indonesia&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/it.md"
 
 target="_blank" rel="noopener">Italian/Italiano&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ja.md"
 
 target="_blank" rel="noopener">Japanese/日本語&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ko.md"
 
 target="_blank" rel="noopener">Korean/한국어&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/pl.md"
 
 target="_blank" rel="noopener">Polish/Polski&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/pt.md"
 
 target="_blank" rel="noopener">Portuguese/Português&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/ru.md"
 
 target="_blank" rel="noopener">Russian/Русский&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/es.md"
 
 target="_blank" rel="noopener">Spanish/Español&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/zh-tw.md"
 
 target="_blank" rel="noopener">Traditional Chinese/繁體中文&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/tr.md"
 
 target="_blank" rel="noopener">Turkish/Türkçe&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/uk.md"
 
 target="_blank" rel="noopener">Ukrainian/Українська&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/cncf/foundation/blob/main/code-of-conduct-languages/vi.md"
 
 target="_blank" rel="noopener">Vietnamese/Tiếng Việt&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="community-code-of-conduct">Community Code of Conduct&lt;/h3>
&lt;p>As contributors, maintainers, and participants in the CNCF community, and in the interest of fostering
an open and welcoming community, we pledge to respect all people who participate or contribute
through reporting issues, posting feature requests, updating documentation,
submitting pull requests or patches, attending conferences or events, or engaging in other community or project activities.&lt;/p></description></item><item><title>Code Of Conduct</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/code-of-conduct/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/code-of-conduct/</guid><description>&lt;p>Kubernetes follows the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct"
 
 >CNCF Code of Conduct&lt;/a>
.&lt;/p>
&lt;p>Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting
the &lt;a href="https://github.com/kubernetes/community/blob/main/committee-code-of-conduct"
 
 target="_blank" rel="noopener">Kubernetes Code of Conduct Committee&lt;/a>
 via &lt;a href="mailto:conduct@kubernetes.io"
 
 >conduct@kubernetes.io&lt;/a>
.&lt;/p></description></item><item><title>Code of Conduct Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/committees/code-of-conduct/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/committees/code-of-conduct/charter/</guid><description>&lt;h2 id="missionpurpose">Mission/Purpose&lt;/h2>
&lt;p>Our primary mission is creating and maintaining a safe and respectful community.
Our role is to provide and enforce a well-considered viewpoint on what
constitutes acceptable behavior within our community. The &lt;a href="https://git.k8s.io/community/code-of-conduct.md"
 
 target="_blank" rel="noopener">Code of
Conduct&lt;/a>
 serves as the primary
policy document and is supported with additional references and tools as needed.
Since maintaining a safe environment is a very large part of what the committee
does, we must carefully balance transparency of process with preserving the
privacy of all individuals involved when an incident report is made to this
committee or to any other community leader.&lt;/p></description></item><item><title>Community Survey Requests</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/surveys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/surveys/</guid><description>&lt;ul>
&lt;li>&lt;a href="#whats-a-community-survey"
 
 >What&amp;rsquo;s a Community Survey?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#survey-request-process"
 
 >Survey Request Process&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-determine-goals-and-content-of-survey"
 
 >1. Determine Goals and Content of Survey&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-request-survey-review"
 
 >2. Request Survey Review&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-request-survey-publication"
 
 >3. Request Survey Publication&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-contributor-communications-promotion-optional"
 
 >4. Contributor Communications Promotion (optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#5-collect-survey-results"
 
 >5. Collect Survey Results&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#6-publish-survey-results"
 
 >6. Publish Survey Results&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tips-and-notes-around-surveys"
 
 >Tips and Notes Around Surveys&lt;/a>
&lt;/li>
&lt;/ul>
&lt;p>Let us help you make your survey a success.&lt;/p>
&lt;p>The Kubernetes project has access to the CNCF SurveyMonkey account for creating
community surveys, and SIG-Contributor Experience includes people who can give
advice on improving the quality of surveys, as well as promote them. As such,
what follows is the process for requesting such a community survey, in order to
maximize its reach and data quality.&lt;/p></description></item><item><title>Comparable Resource Version</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5504/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5504/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5504-comparable-resource-versions">KEP-5504: Comparable Resource Versions&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#helper-function"
 
 >Helper Function&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conformance-tests"
 
 >Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation-changes"
 
 >Documentation Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Compatibility Versions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4330/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4330/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4330-compatibility-versions-in-kubernetes">KEP-4330: Compatibility Versions in Kubernetes&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#component-flags"
 
 >Component Flags&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#--emulation-version"
 
 >&amp;ndash;emulation-version&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#--min-compatibility-version"
 
 >&amp;ndash;min-compatibility-version&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#skew"
 
 >Skew&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-feature-gates"
 
 >Changes to Feature Gates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate-lifecycles"
 
 >Feature Gate Lifecycles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gating-changes"
 
 >Feature gating changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-emulatable-features"
 
 >Non-Emulatable Features&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#validation-ratcheting"
 
 >Validation ratcheting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cel-environment-compatibility-versioning"
 
 >CEL Environment Compatibility Versioning&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#storageversion-compatibility-versioning"
 
 >StorageVersion Compatibility Versioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-availability"
 
 >API availability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-availability-in-forward-compatible-mode"
 
 >API availability in forward-compatible mode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-to-api-forward-compatibility"
 
 >Alternatives to API forward compatibility&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-field-availability"
 
 >API Field availability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#discovery"
 
 >Discovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-introspection"
 
 >Version introspection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risk-increased-cost-in-test-due-to-the-need-to-test-changes-against-the-e2e-tests-of-multiple-release-branches"
 
 >Risk: Increased cost in test due to the need to test changes against the e2e tests of multiple release branches&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk-increased-maintenance-burden-on-kubernetes-maintainers"
 
 >Risk: Increased maintenance burden on Kubernetes maintainers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risk-unintended-and-out-of-allowance-version-skew"
 
 >Risk: Unintended and out-of-allowance version skew&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-1"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Component Flagz</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4828/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4828/</guid><description>&lt;h1 id="kep-4828-component-flagz">KEP-4828: Component Flagz&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-story-1-debugging-component-behavior"
 
 >User Story 1: Debugging Component Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-story-2--verifying-flag-changes"
 
 >User Story 2: Verifying Flag Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#data-format-and-versioning"
 
 >Data Format and versioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authz-and-authn"
 
 >Authz and authn&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpoint-response-format"
 
 >Endpoint Response Format&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#data-format-text"
 
 >Data format: text&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request"
 
 >Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#response-fields"
 
 >Response fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-response"
 
 >Sample response&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#structured-api-format-v1alpha1"
 
 >Structured API format (v1alpha1)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request-1"
 
 >Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#response-body-flagz-object"
 
 >Response Body: &lt;code>Flagz&lt;/code> object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-response-json"
 
 >Sample Response (JSON)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-versioning-and-deprecation-policy"
 
 >API Versioning and Deprecation Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Component Statusz</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4827/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4827/</guid><description>&lt;h1 id="kep-4827-component-statusz">KEP-4827: Component Statusz&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#as-a-developer"
 
 >As a developer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#as-an-operator"
 
 >As an operator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#as-support-engineer"
 
 >As support engineer&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#data-format-and-versioning"
 
 >Data Format and versioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authz-and-authn"
 
 >Authz and authn&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpoint-response-format"
 
 >Endpoint Response Format&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#data-format-text"
 
 >Data format: text&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request"
 
 >Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-response"
 
 >Sample response&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#structured-api-format-v1alpha1"
 
 >Structured API format (v1alpha1)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request-1"
 
 >Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#response-body-statusz-object"
 
 >Response Body: &lt;code>Statusz&lt;/code> object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-response-json"
 
 >Sample Response (JSON)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-versioning-and-deprecation-policy"
 
 >API Versioning and Deprecation Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CompositePodGroup API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6012/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6012/</guid><description>&lt;h1 id="kep-6012-compositepodgroup-api">KEP-6012: CompositePodGroup API&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backward-compatibility"
 
 >Backward compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ai-training-on-tpus"
 
 >AI training on TPUs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#disaggregated-serving-under-leaderworkerset"
 
 >Disaggregated serving under LeaderWorkerSet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#replicated-training-jobs-under-jobset"
 
 >Replicated training jobs under JobSet&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#suboptimal-placement-decisions-due-to-np-hardness-of-multi-level-scheduling"
 
 >Suboptimal Placement Decisions due to NP-Hardness of Multi-level Scheduling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consistency-and-validity-across-decoupled-hierarchy-objects"
 
 >Consistency and Validity Across Decoupled Hierarchy Objects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-coverage-and-extensibility-gaps"
 
 >API Coverage and Extensibility Gaps&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-overview"
 
 >API overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-the-workload-api"
 
 >Changes to the &lt;code>Workload&lt;/code> API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-the-podgroup-api"
 
 >Changes to the &lt;code>PodGroup&lt;/code> API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workloadreference"
 
 >&lt;code>WorkloadReference&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#standalone-podgroup-objects"
 
 >Standalone &lt;code>PodGroup&lt;/code> objects&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#compositepodgroup-api"
 
 >&lt;code>CompositePodGroup&lt;/code> API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#spec"
 
 >Spec&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workload-reference"
 
 >Workload reference&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduling-policy"
 
 >Scheduling policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduling-constraints"
 
 >Scheduling constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#disruption-mode-priority-class-name-and-priority"
 
 >Disruption mode, priority class name and priority&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#status"
 
 >Status&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-consumption-model"
 
 >API consumption model&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#object-ownership-and-garbage-collection"
 
 >Object ownership and garbage collection&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-validation"
 
 >API validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workload"
 
 >&lt;code>Workload&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#group-hierarchy"
 
 >Group hierarchy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#runtime-validation-in-beta"
 
 >Runtime validation in Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#changes-in-kube-scheduler"
 
 >Changes in kube-scheduler&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multi-level-gang-scheduling"
 
 >Multi-level gang scheduling&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisites"
 
 >Prerequisites&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gangscheduling-plugin-changes"
 
 >GangScheduling Plugin Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#recursive-scheduling-cycle-execution"
 
 >Recursive Scheduling Cycle Execution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduling-sequence-for-podgroups"
 
 >Scheduling sequence for PodGroups&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#suboptimal-scheduling-decisions"
 
 >Suboptimal scheduling decisions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#integration-with-workload-aware-preemption"
 
 >Integration with workload-aware preemption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multi-level-topology-aware-scheduling"
 
 >Multi-level topology-aware scheduling&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#compositepodgroup-scheduling-algorithm"
 
 >CompositePodGroup Scheduling Algorithm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preemption-in-topology-aware-scheduling"
 
 >Preemption in topology-aware scheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-shape"
 
 >API shape&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podgroup-as-a-recursive-api-type"
 
 >&lt;code>PodGroup&lt;/code> as a recursive API type&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-api-type-per-hierarchy-level"
 
 >New API type per hierarchy level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsubgroup-and-podset"
 
 >&lt;code>PodSubGroup&lt;/code> and &lt;code>PodSet&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#naming-of-the-new-api"
 
 >Naming of the new API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-of-compositepodgroup"
 
 >Validation of &lt;code>CompositePodGroup&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Concurrent Watch Object Decode</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6178/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6178/</guid><description>&lt;h1 id="kep-6178-concurrent-watch-object-decode">KEP-6178: Concurrent Watch Object Decode&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#choosing-the-concurrency-level"
 
 >Choosing the concurrency level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scale-the-pool-with-gomaxprocs"
 
 >Scale the pool with GOMAXPROCS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#make-the-pool-size-configurable"
 
 >Make the pool size configurable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Conditional Authorization</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5681/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5681/</guid><description>&lt;h1 id="kep-5681-conditional-authorization">KEP-5681: Conditional Authorization&lt;/h1>
&lt;ul>
&lt;li>Author: Lucas Käldström, Upbound&lt;/li>
&lt;li>Contributor: Micah Hausler, AWS&lt;/li>
&lt;/ul>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#abstract"
 
 >Abstract&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-use-cases"
 
 >Example Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background-and-major-considered-alternatives"
 
 >Background and Major Considered Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-not-just-give-authorizers-access-to-request-and-stored-objects"
 
 >Why not just give authorizers access to request and stored objects?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-not-just-use-validatingadmissionpolicies"
 
 >Why not just use &lt;code>ValidatingAdmissionPolicies&lt;/code>?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-partial-evaluation"
 
 >What is partial evaluation?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-propagate-the-conditions-with-the-request"
 
 >Why propagate the conditions with the request?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#glossary"
 
 >Glossary&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#technical-requirements"
 
 >Technical Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#core-interface-changes"
 
 >Core interface changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#condition-and-conditionset-data-model"
 
 >Condition and ConditionSet data model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#computing-a-concrete-decision-from-a-conditionset"
 
 >Computing a concrete decision from a ConditionSet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#computing-a-concrete-decision-from-a-conditional-authorization-chain"
 
 >Computing a concrete decision from a conditional authorization chain&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authorizationconditionsenforcer-admission-controller"
 
 >&lt;code>AuthorizationConditionsEnforcer&lt;/code> admission controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-selfsubjectaccessreview"
 
 >Changes to &lt;code>(Self)SubjectAccessReview&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supporting-webhooks-through-the-authorizationconditionsreview-api"
 
 >Supporting webhooks through the &lt;code>AuthorizationConditionsReview&lt;/code> API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#composite--union-authorizer-support"
 
 >Composite / Union Authorizer Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#built-in-cel-conditions-evaluator"
 
 >Built-in CEL conditions evaluator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-availability-and-version-skew"
 
 >Feature availability and version skew&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#other-kubernetes-authorization-enforcement-points-with-and-without-conditions-awareness"
 
 >Other Kubernetes authorization enforcement points, with and without conditions-awareness&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#compound-authorization-for-connectible-resources"
 
 >Compound Authorization for Connectible Resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compound-authorization-for-updatepatch--create"
 
 >Compound Authorization for update/patch → create&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#constrained-impersonation-through-conditional-authorization"
 
 >Constrained Impersonation through Conditional Authorization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-authorizer"
 
 >Node authorizer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validatingadmissionpolicies"
 
 >ValidatingAdmissionPolicies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deletecollection-support"
 
 >&lt;code>deletecollection&lt;/code> support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#complete-list-of-all-authorize-calls-in-kube-apiserver"
 
 >Complete list of all &lt;code>Authorize&lt;/code> calls in &lt;code>kube-apiserver&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#authorizer-requirements"
 
 >Authorizer requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#todos"
 
 >TODOs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#expose-all-conditions-in-admissionreview-and-have-admission-plugins-acknowledge-the-conditions"
 
 >Expose all conditions in AdmissionReview, and have admission plugins “acknowledge” the conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#propagate-an-api-server-generated-request-uid-to-both-authorization-and-admission"
 
 >Propagate an API server-generated request UID to both authorization and admission&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#only-one-conditionset-exposed-as-part-of-subjectaccessreview-status"
 
 >Only one ConditionSet exposed as part of SubjectAccessReview status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#require-the-client-to-annotate-its-write-request-with-field-or-label-selectors"
 
 >Require the client to annotate its write request with field or label selectors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extract-label-and-field-selectors-from-the-request-and-current-object-in-etcd-and-supply-that-to-the-authorization-process"
 
 >Extract label and field selectors from the request and current object in etcd, and supply that to the authorization process&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#do-nothing-force-implementers-to-implement-all-of-this-out-of-tree"
 
 >Do nothing, force implementers to implement all of this out of tree&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix-a-further-resources"
 
 >Appendix A: Further resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix-b-future-addition-sketch-conditional-reads"
 
 >Appendix B: Future addition sketch: Conditional Reads&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> e2e Tests for all Beta API Operations (endpoints)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Ensure GA e2e tests meet requirements for &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Minimum Two Week Window for GA e2e tests to prove flake free. &lt;em>Not yet applicable for this KEP&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Graduation criteria is in place
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> &lt;a href="https://github.com/kubernetes/community/pull/1806"
 
 target="_blank" rel="noopener">all GA Endpoints&lt;/a>
 must be hit by &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
 within one minor version of promotion to GA. &lt;em>Not yet applicable for this KEP&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Production readiness review completed&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="abstract">Abstract&lt;/h2>
&lt;p>This KEP proposes extending Kubernetes authorization to support &lt;strong>conditions&lt;/strong>,
where an authorization decision depends on &lt;strong>resource data&lt;/strong> (labels and fields
of object), rather than only metadata (apiGroup, resource, namespace, name).
This enables more fine-grained, and most importantly,
&lt;a href="https://github.com/kubernetes/kubernetes/issues/118985"
 
 target="_blank" rel="noopener">&lt;strong>cohesive&lt;/strong>&lt;/a>
 access
control policies that span both authorization and admission phases, while
maintaining backward compatibility with existing authorizers.&lt;/p></description></item><item><title>Configurable Pod DNS</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/504/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/504/</guid><description>&lt;h1 id="configurable-pod-dns">Configurable Pod DNS&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-api-examples"
 
 >Pod API examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#host-etcresolvconf"
 
 >Host &lt;code>/etc/resolv.conf&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#override-dns-server-and-search-paths"
 
 >Override DNS server and search paths&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#overriding-ndots"
 
 >Overriding &lt;code>ndots&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#semantics"
 
 >Semantics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#invalid-configurations"
 
 >Invalid configurations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal gives users a way to overlay tweaks into the existing
&lt;code>DnsPolicy&lt;/code>. A new PodSpec field &lt;code>dnsConfig&lt;/code> will contains fields that are
merged with the settings currently selected with &lt;code>DnsPolicy&lt;/code>.&lt;/p></description></item><item><title>Configurable scale up/down velocity for HPA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/853/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/853/</guid><description>&lt;h1 id="configurable-scale-updown-velocity-for-hpa">Configurable scale up/down velocity for HPA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-scale-up-as-fast-as-possible"
 
 >Story 1: Scale Up As Fast As Possible&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-scale-up-as-fast-as-possible-scale-down-very-gradually"
 
 >Story 2: Scale Up As Fast As Possible, Scale Down Very Gradually&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-scale-up-very-gradually-usual-scale-down-process"
 
 >Story 3: Scale Up Very Gradually, Usual Scale Down Process&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-scale-up-as-usual-do-not-scale-down"
 
 >Story 4: Scale Up As Usual, Do Not Scale Down&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-stabilization-before-scaling-down"
 
 >Story 5: Stabilization before scaling down&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-6-avoid-false-positive-signals-for-scaling-up"
 
 >Story 6: Avoid false positive signals for scaling up&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#algorithm-pseudocode"
 
 >Algorithm Pseudocode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introducing-stabilizationwindowseconds-option"
 
 >Introducing &lt;code>stabilizationWindowSeconds&lt;/code> Option&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-values"
 
 >Default Values&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stabilization-window"
 
 >Stabilization Window&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hpa-controller-state-changes"
 
 >HPA Controller State Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#command-line-options-changes"
 
 >Command Line Options Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;a href="https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/"
 
 target="_blank" rel="noopener">Horizontal Pod Autoscaler&lt;/a>
 (HPA) automatically scales the number of pods in any resource which supports the &lt;code>scale&lt;/code> subresource based on observed CPU utilization
(or, with custom metrics support, on some other application-provided metrics). This proposal adds scale velocity configuration parameters to the HPA to control the
rate of scaling in both directions.&lt;/p></description></item><item><title>Configurable Scaling Delay with Pod Resource Exposure</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6122/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6122/</guid><description>&lt;h1 id="kep-6122-configurable-scaling-delay-with-pod-resource-exposure">KEP-6122: Configurable Scaling Delay with Pod Resource Exposure&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scale-down-delay-in-cpu-manager"
 
 >Scale Down Delay in CPU Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scale-down-delay-timing"
 
 >Scale-Down Delay Timing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consecutive-scaling"
 
 >Consecutive Scaling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resize-complete-state"
 
 >Resize Complete State&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#actual-resources-update"
 
 >Actual Resources Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extend-downward-api-volume-to-expose-cpu-manager-status"
 
 >Extend Downward API Volume to Expose CPU Manager Status&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha2"
 
 >Alpha2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-lifo-last-in-first-out-cpu-release"
 
 >1. LIFO (Last-In, First-Out) CPU Release&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-cpu-release-based-on-real-time-usage"
 
 >2. CPU Release Based on Real-Time Usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-immediate-actuation-no-delay"
 
 >3. Immediate Actuation (No Delay)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-handshake-based-synchronization"
 
 >4. Handshake-Based Synchronization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#5-node-declared-features-as-opt-out-mechanism"
 
 >5. Node Declared Features as Opt-Out Mechanism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#6-pod-level-grace-period-opt-inopt-out-mechanism"
 
 >6. Pod-Level Grace Period (Opt-In/Opt-Out Mechanism)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#7-hook-based-synchronization-approach"
 
 >7. Hook-Based Synchronization Approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#8-generalizing-scale-down-delay-to-other-resource-types"
 
 >8. Generalizing Scale-Down Delay to Other Resource Types&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Configurable tolerance for HPA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4951/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4951/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4951-configurable-tolerance-for-hpa">KEP-4951: Configurable tolerance for HPA&lt;/h1>
&lt;!--
Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Configure FQDN as Hostname for Pods</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1797/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1797/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please ensure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "title", "authors", "owning-sig",
 "status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary", and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG that are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as a `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement", for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If there are
new details that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable` or significant changes once
it is marked `implementable` must be approved by each of the KEP approvers.
If any of those approvers is no longer appropriate than changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross cutting KEPs).
-->
&lt;h1 id="kep-1797-configure-fqdn-as-hostname-for-pods">KEP-1797: Configure FQDN as Hostname for Pods&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-user-does-not-configure-pod-to-have-fqdn"
 
 >Story 1: User does not Configure Pod to have FQDN&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-user-configures-pod-to-have-fqdn"
 
 >Story 2: User Configures Pod to have FQDN&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-user-configures-pod-to-have-fqdn-and-it-would-like-the-pod-hostname-to-be-the-fqdn"
 
 >Story 3: User Configures Pod to have FQDN and it would like the pod hostname to be the FQDN&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#behavior-on-windows"
 
 >Behavior on Windows&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Configure the max CrashLoopBackOff delay</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5593/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5593/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5593-configure-the-max-crashloopbackoff-delay">KEP-5593: Configure the max CrashLoopBackOff delay&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#refactor-and-flat-rate-to-10-minutes-for-the-backoff-counter-reset-threshold"
 
 >Refactor and flat rate to 10 minutes for the backoff counter reset threshold&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#task-isolation"
 
 >Task isolation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fast-restart-on-failure"
 
 >Fast restart on failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sidecar-containers-fast-restart"
 
 >Sidecar containers fast restart&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#per-node-config"
 
 >Per node config&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementing-with-kubeletconfiguration"
 
 >Implementing with KubeletConfiguration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#refactor-of-recovery-threshold"
 
 >Refactor of recovery threshold&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-overhead-analysis"
 
 >Kubelet overhead analysis&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-job-api-podfailurepolicy-and-backofflimit"
 
 >Relationship with Job API podFailurePolicy and backoffLimit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-imagepullbackoff"
 
 >Relationship with ImagePullBackOff&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-kk123602"
 
 >Relationship with k/k#123602&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#conflict-resolution"
 
 >Conflict resolution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#global-override"
 
 >Global override&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#per-exit-code-configuration"
 
 >Per exit code configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restartpolicy-rapid"
 
 >&lt;code>RestartPolicy: Rapid&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flat-rate-restarts-for-succeeded-pods"
 
 >Flat-rate restarts for &lt;code>Succeeded&lt;/code> Pods&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#on-success-and-the-10-minute-recovery-threshold"
 
 >On Success and the 10 minute recovery threshold&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#related-api-opt-in-for-flat-ratequick-restarts-when-transitioning-from-succeeded-phase"
 
 >Related: API opt-in for flat rate/quick restarts when transitioning from &lt;code>Succeeded&lt;/code> phase&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#related-succeeded-vs-rapidly-failing-whos-getting-the-better-deal"
 
 >Related: &lt;code>Succeeded&lt;/code> vs &lt;code>Rapid&lt;/code>ly failing: who&amp;rsquo;s getting the better deal?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#exposing-per-node-config-as-command-line-flags"
 
 >Exposing per-node config as command-line flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#late-recovery"
 
 >Late recovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#more-complex-heuristics"
 
 >More complex heuristics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#appendix-a"
 
 >Appendix A&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-syncpod"
 
 >Kubelet SyncPod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-syncpod"
 
 >Runtime SyncPod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-syncterminatingpod--runtime-killpod"
 
 >Kubelet SyncTerminatingPod + runtime killPod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-syncterminatedpod"
 
 >Kubelet SyncTerminatedPod&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Consider Terminating Pods in Deployments</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3973/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3973/</guid><description>&lt;h1 id="kep-3973-consider-terminating-pods-in-deployments">KEP-3973: Consider Terminating Pods in Deployments&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-optional"
 
 >Story 1 (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Consistent Reads from Cache</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2340/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2340/</guid><description>&lt;h1 id="consistent-reads-from-cache">Consistent Reads from Cache&lt;/h1>
&lt;p>Kubernetes Get and List requests are guaranteed to be &amp;ldquo;consistent reads&amp;rdquo; if the
&lt;code>resourceVersion&lt;/code> parameter is not provided. Consistent reads are served from
etcd using a &amp;ldquo;quorum read&amp;rdquo;.&lt;/p>
&lt;p>But often the watch cache contains sufficiently up-to-date data to serve the
read request, and could serve it far more efficiently.&lt;/p>
&lt;p>This KEP proposes a mechanism to serve most reads from the watch cache
while still providing the same consistency guarantees as serving the
read from etcd.&lt;/p></description></item><item><title>consistent-resource-version-semantics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2523/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2523/</guid><description>&lt;h1 id="consistent-resource-version-semantics-for-list">Consistent Resource Version Semantics for List&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-a-resourceversionmatch-query-parameter"
 
 >Add a ResourceVersionMatch query parameter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backward-compatibility"
 
 >Backward Compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impact-on-get-calls"
 
 >Impact on get calls&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-introduce-exactresourceversion-and-minresourceversion-parameters"
 
 >Alternative: Introduce ExactResourceVersion and MinResourceVersion parameters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-use-syntax-in-the-query-string"
 
 >Alternative: Use syntax in the query string&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Make resource version semantics consistent for list requests regardless of pagination.&lt;/p></description></item><item><title>Consolidate Workload controllers life cycle status</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2804/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2804/</guid><description>&lt;h1 id="kep-2804-consolidate-workload-controllers-life-cycle-status">KEP-2804: Consolidate Workload controllers life cycle status&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#overview-of-all-conditions"
 
 >Overview of all conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-conditions"
 
 >Proposed Conditions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#progressing"
 
 >Progressing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#complete"
 
 >Complete&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failed"
 
 >Failed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#available"
 
 >Available&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#batch-workloads-conditions-waiting--running"
 
 >Batch Workloads Conditions: Waiting &amp;amp; Running&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Constrained Impersonation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5284/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5284/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5284-constrained-impersonation">KEP-5284: Constrained Impersonation&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#subject-access-review-details"
 
 >Subject Access Review Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workflow-when-the-feature-is-enabled"
 
 >workflow when the feature is enabled&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#permissions-across-authorization-checks-are-unioned"
 
 >Permissions across authorization checks are unioned&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-verbs-with-impersonate-onmode-prefix-has-been-used-by-other-component"
 
 >The verbs with &lt;code>impersonate-on:&amp;lt;mode&amp;gt;:&lt;/code> prefix has been used by other component.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#high-request-volume-leads-to-high-load-on-authorization-chain"
 
 >High request volume leads to high load on authorization chain.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#delegating-permission-of-impersonating-wildcard-action-or-wildcard-subjects-is-not-supported"
 
 >Delegating permission of impersonating wildcard action or wildcard subjects is not supported&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#verb-impersonateuser-info"
 
 >Verb &lt;code>impersonate:user-info&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#header-impersonate-user-is-set"
 
 >Header &lt;code>Impersonate-User&lt;/code> is set&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#header-impersonate-group-is-set"
 
 >Header &lt;code>Impersonate-Group&lt;/code> is set&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#header-impersonate-uid-is-set"
 
 >Header &lt;code>Impersonate-Uid&lt;/code> is set&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#header-with-prefix-impersonate-extra--is-set"
 
 >Header with prefix &lt;code>Impersonate-Extra-&lt;/code> is set&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#verb-impersonateserviceaccount"
 
 >Verb &lt;code>impersonate:serviceaccount&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#verb-impersonatearbitrary-node-and-impersonateassociated-node"
 
 >Verb &lt;code>impersonate:arbitrary-node&lt;/code> and &lt;code>impersonate:associated-node&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#auditing"
 
 >Auditing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-kube-apiserver-old-impersonate-permission"
 
 >New kube-apiserver, old &lt;code>impersonate&lt;/code> permission&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#old-kube-apiserver-new-impersonate-onmodeverb-and-impersonatemode-permission"
 
 >Old kube-apiserver, new &lt;code>impersonate-on:&amp;lt;mode&amp;gt;:&amp;lt;verb&amp;gt;&lt;/code> and &lt;code>impersonate:&amp;lt;mode&amp;gt;&lt;/code> permission&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-impersonateuser-info-instead-of-impersonateserviceaccount-and-impersonatearbitrary-node"
 
 >Use &lt;code>impersonate:user-info&lt;/code> instead of &lt;code>impersonate:serviceaccount&lt;/code> and &lt;code>impersonate:arbitrary-node&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-participation-in-subjectaccessreview-for-impersonation"
 
 >Controller participation in SubjectAccessReview for impersonation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#setting-a-special-apigroup-suffix-instead-of-special-verb"
 
 >Setting a special APIGroup suffix instead of special verb&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#check-permission-intersection-of-impersonator-and-target-user"
 
 >Check permission intersection of impersonator and target user&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#expand-rbacsar"
 
 >Expand RBAC/SAR&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#conditional-authorization"
 
 >Conditional Authorization&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Container Resource based Autoscaling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1610/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1610/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-1610-container-resource-based-autoscaling">KEP-1610: Container Resource based Autoscaling&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multiple-containers-with-different-scaling-thresholds"
 
 >Multiple containers with different scaling thresholds&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multiple-containers-but-only-scaling-for-one"
 
 >Multiple containers but only scaling for one.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-container-metrics-to-existing-pod-resource-metric"
 
 >Add container metrics to existing pod resource metric.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Container Restart Policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5307/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5307/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

-->
&lt;h1 id="kep-5307-container-restart-rules">KEP-5307: Container Restart Rules&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#container-restart-count"
 
 >Container Restart Count&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-podfailurepolicy"
 
 >Job PodFailurePolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#maxrestarttimes"
 
 >​maxRestartTimes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sidecar-containers"
 
 >Sidecar Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-improvements"
 
 >Future Improvements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unintended-restart-loops"
 
 >Unintended Restart Loops&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#wrapping-entrypoint"
 
 >Wrapping entrypoint&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-declarative-callbacks-based-restart-policy"
 
 >Non-declarative (callbacks based) restart policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Container Stop Signals</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4960/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4960/</guid><description>&lt;h1 id="kep-4960-container-stop-signals">KEP-4960: Container Stop Signals&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cross-validation-with-pod-specosname"
 
 >Cross validation with Pod spec.os.name&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-api"
 
 >CRI API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-changes"
 
 >Container runtime changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-support"
 
 >Windows support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-skew-with-cri-api-and-container-runtime"
 
 >Version skew with CRI API and container runtime&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Context support in k8s.io/client-go</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1601/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1601/</guid><description>&lt;h1 id="context-support-in-k8sioclient-go">Context support in k8s.io/client-go&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cleanup-inconsistent-options-passing"
 
 >Cleanup Inconsistent Options Passing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-signatures-after-refactor"
 
 >Client Signatures After Refactor&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal outlines a refactoring that would allow propagating of
&lt;a href="https://golang.org/pkg/context/"
 
 target="_blank" rel="noopener">context&lt;/a>
 with
&lt;a href="https://github.com/kubernetes/client-go"
 
 target="_blank" rel="noopener">client-go&lt;/a>
 with API calls made using
k8s.io/client-go clientsets.&lt;/p>
&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>When using client-go, external calls to the Kubernetes API are made in order to
manage resources. Adding support for context propagation along these request
paths enables clean and efficient implementation of cross cutting functionality.
This functionality initially will include:&lt;/p></description></item><item><title>Contextual logging</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3077/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3077/</guid><description>&lt;h1 id="kep-3077-contextual-logging">&lt;a href="https://github.com/kubernetes/enhancements/issues/3077"
 
 target="_blank" rel="noopener">KEP-3077&lt;/a>
: contextual logging&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#uninitialized-logger"
 
 >Uninitialized logger&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#logging-during-initialization"
 
 >Logging during initialization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance-overhead"
 
 >Performance overhead&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#transition"
 
 >Transition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#no-logger-set-or-not-set-with-contextualloggertrue"
 
 >no logger set or not set with &lt;code>ContextualLogger(true)&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#logger-set-with-contextualloggertrue"
 
 >logger set with &lt;code>ContextualLogger(true)&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#removing-kubernetes-dependency-on-legacy-klog-features"
 
 >Removing Kubernetes&amp;rsquo; dependency on legacy klog features&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pitfalls-during-usage"
 
 >Pitfalls during usage&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#logger-in-context-and-function-not-consistent"
 
 >Logger in context and function not consistent&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#overwriting-context-not-needed-initially-forgotten-later"
 
 >Overwriting context not needed initially, forgotten later&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#redundant-keyvalue-pairs"
 
 >Redundant key/value pairs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modifying-the-same-variable-in-a-loop"
 
 >Modifying the same variable in a loop&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unused-return-values"
 
 >Unused return values&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#text-format"
 
 >Text format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-logger"
 
 >Default logger&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#logging-helper-api"
 
 >logging helper API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#logging-in-tests"
 
 >Logging in tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#logcheck"
 
 >&lt;a href="https://github.com/kubernetes/klog/tree/main/hack/tools/logcheck">logcheck&lt;/a>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#code-examples"
 
 >Code examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-testing"
 
 >Unit testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#injecting-common-value-logger-passed-through-existing-ctx-parameter-or-new-parameter"
 
 >Injecting common value, logger passed through existing ctx parameter or new parameter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resulting-output"
 
 >Resulting output&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#integration-with-logslog"
 
 >Integration with log/slog&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-and-next-steps"
 
 >Status and next steps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#per-component-logger"
 
 >Per-component logger&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#propagating-a-logger-to-init-code"
 
 >Propagating a logger to init code&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#panic-when-fromcontext-is-called-before-setting-a-logger"
 
 >Panic when FromContext is called before setting a logger&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clean-separation-of-contextual-logging-and-traditional-klog-logging"
 
 >Clean separation of contextual logging and traditional klog logging&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-logslog-instead-of-kloglogr"
 
 >Use log/slog instead of klog+logr&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Continuously Deploy K8s Prow</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2539/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2539/</guid><description>&lt;h1 id="kep-2539-continuously-deploy-k8s-prow">KEP-2539: Continuously Deploy K8s Prow&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prow-users"
 
 >Prow Users&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prow-oncall"
 
 >Prow Oncall&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#breaking-changes-in-prow"
 
 >Breaking Changes in Prow&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#automated-merging-of-prow-autobump-prs"
 
 >Automated Merging of Prow Autobump PRs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#roll-back-process"
 
 >Roll Back Process&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#announcement"
 
 >Announcement&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#a-new-tool-merges-autobump-prs"
 
 >A new tool merges autobump PRs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros"
 
 >Pros:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons"
 
 >Cons:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Contributor Site</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2225/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2225/</guid><description>&lt;h1 id="contributor-site">Contributor Site&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We need a way to organize and publish information targeted at contributors.
In order to continue to scale the Kubernetes contributor community we need a convenient, scalable and findable way to publish information.&lt;/p>
&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>While the current kubernetes.io site is great for end users, it isn&amp;rsquo;t often used by or aimed at project contributors.
Instead, most contributors look at documentation in markdown files that are spread throughout a wide set of repos and orgs.
It is difficult for users to find this documentation.&lt;/p></description></item><item><title>Controller Manager Leader Migration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2436/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2436/</guid><description>&lt;h1 id="controller-manager-leader-migration">Controller Manager Leader Migration&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#migration-configuration"
 
 >Migration Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-leadermigrationconfiguration"
 
 >Default LeaderMigrationConfiguration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#component-flags"
 
 >Component Flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-walkthrough-of-controller-migration-with-default-configuration"
 
 >Example Walkthrough of Controller Migration with Default Configuration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enable-leader-migration-on-components"
 
 >Enable Leader Migration on Components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade-the-control-plane"
 
 >Upgrade the Control Plane&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#disable-leader-migration"
 
 >Disable Leader Migration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Coordinated Leader Election</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4355/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4355/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4355-coordinated-leader-election">KEP-4355: Coordinated Leader Election&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#component-lease-candidates"
 
 >Component Lease Candidates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#coordinated-election-controller"
 
 >Coordinated Election Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#coordinated-lease-lock"
 
 >Coordinated Lease Lock&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#renewal-interval-and-performance"
 
 >Renewal Interval and Performance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#strategy"
 
 >Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-for-strategy"
 
 >Alternative for Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#creating-a-new-leaseconfiguration-resource"
 
 >Creating a new LeaseConfiguration resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#yamlcli-configuration-on-the-kube-apiserver"
 
 >YAML/CLI configuration on the kube-apiserver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#strategy-propagated-from-leasecandidate"
 
 >Strategy propagated from LeaseCandidate&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#priority-based-coordinated-leader-election"
 
 >Priority-based Coordinated Leader Election&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#leasecandidatespec-update"
 
 >LeaseCandidateSpec Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#behavior-of-the-priority-field"
 
 >Behavior of the Priority Field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-breakdown-for-priority-based-coordination-leader-election"
 
 >Scenario Breakdown for priority based coordination leader election&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-initial-state"
 
 >1. Initial State&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-during-upgrade"
 
 >2. During Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-priority-setting"
 
 >3. Priority Setting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#41-upgrade-completion"
 
 >4.1. Upgrade Completion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#42-update-rollback"
 
 >4.2 Update rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#5-priority-persistence"
 
 >5. Priority Persistence&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#consideration-for-stale-priorities"
 
 >Consideration for Stale Priorities&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#enabling-on-a-component"
 
 >Enabling on a component&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#migrations"
 
 >Migrations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comparison-of-leader-election"
 
 >Comparison of leader election&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk-amount-of-writes-performed-by-leader-election-increases-substantially"
 
 >Risk: Amount of writes performed by leader election increases substantially&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risk-lease-candidate-watches-increase-apiserver-load-substantially"
 
 >Risk: lease candidate watches increase apiserver load substantially&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risk-we-have-to-start-over-and-build-confidence-in-a-new-leader-election-algorithm"
 
 >Risk: We have to &amp;quot;start over&amp;quot; and build confidence in a new leader election algorithm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risk-how-is-the-election-controller-elected"
 
 >Risk: How is the election controller elected?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risk-what-if-the-election-controller-fails-to-elect-a-leader"
 
 >Risk: What if the election controller fails to elect a leader?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#similar-approaches-involving-the-leader-election-controller"
 
 >Similar approaches involving the leader election controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#running-the-leader-election-controller-in-ha-on-every-apiserver"
 
 >Running the leader election controller in HA on every apiserver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#running-the-coordinated-leader-election-controller-in-kcm"
 
 >Running the coordinated leader election controller in KCM&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#running-the-coordinated-leader-election-controller-in-a-new-container"
 
 >Running the coordinated leader election controller in a new container&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#component-instances-pick-a-leader-without-a-coordinator"
 
 >Component instances pick a leader without a coordinator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#component-instances-pick-a-leader-without-lease-candidates-or-a-coordinator"
 
 >Component instances pick a leader without lease candidates or a coordinator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#algorithm-configurability"
 
 >Algorithm configurability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone /
release&lt;/em>.&lt;/p></description></item><item><title>CPU Manager</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3570/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3570/</guid><description>&lt;h1 id="cpu-manager">CPU Manager&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1--high-performance-applications"
 
 >Story 1 : High-performance applications&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2--kubevirt"
 
 >Story 2 : KubeVirt&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#discovering-cpu-topology"
 
 >Discovering CPU topology&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cpu-manager-interfaces-sketch"
 
 >CPU Manager interfaces (sketch)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#configuring-the-cpu-manager"
 
 >Configuring the CPU Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policy-1-none-cpuset-control-default"
 
 >Policy 1: &amp;quot;none&amp;quot; cpuset control [default]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#policy-2-static-cpuset-control"
 
 >Policy 2: &amp;quot;static&amp;quot; cpuset control&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cpu-manager-options"
 
 >CPU Manager options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-sketch"
 
 >Implementation sketch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-pod-specs-and-interpretation"
 
 >Example pod specs and interpretation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-scenarios-and-interactions"
 
 >Example scenarios and interactions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-and-not-implemented-items"
 
 >Proposed and not implemented items&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policy-3-dynamic-cpuset-control"
 
 >Policy 3: &amp;quot;dynamic&amp;quot; cpuset control&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-sketch-1"
 
 >Implementation sketch&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendixes"
 
 >Appendixes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#related-issues"
 
 >related issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operations-and-observability"
 
 >Operations and observability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#practical-challenges"
 
 >Practical challenges&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#original-implementation-roadmap"
 
 >Original implementation roadmap&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-none-policy-target-kubernetes-v18"
 
 >Phase 1: None policy [TARGET: Kubernetes v1.8]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-static-policy-target-kubernetes-v18"
 
 >Phase 2: Static policy [TARGET: Kubernetes v1.8]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3-beta-support-target-kubernetes-v19"
 
 >Phase 3: Beta support [TARGET: Kubernetes v1.9]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#later-phases-target-after-kubernetes-v19"
 
 >Later phases [TARGET: After Kubernetes v1.9]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cpuset-pitfalls"
 
 >cpuset pitfalls&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CPUManager policy option to align CPUs by Socket instead of by NUMA node</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3327/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3327/</guid><description>&lt;h1 id="kep-3327-add-cpumanager-policy-option-to-align-cpus-by-socket-instead-of-by-numa-node">KEP-3327: Add CPUManager policy option to align CPUs by Socket instead of by NUMA node&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-change"
 
 >Proposed Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CPUManager Policy Option to Distribute CPUs Across NUMA Nodes Instead of Packing Them</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2902/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2902/</guid><description>&lt;h1 id="kep-2902-add-cpumanager-policy-option-to-distribute-cpus-across-numa-nodes-instead-of-packing-them">KEP-2902: Add CPUManager policy option to distribute CPUs across NUMA nodes instead of packing them&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#compatibility-with-full-pcpus-only-policy-options"
 
 >Compatibility with &lt;code>full-pcpus-only&lt;/code> policy options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CRD Validation Expression Language</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2876/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2876/</guid><description>&lt;h1 id="kep-2876-crd-validation-expression-language">KEP-2876: CRD Validation Expression Language&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview-of-existing-validation"
 
 >Overview of existing validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#descriptive-self-contained-crds"
 
 >Descriptive, self contained CRDs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#webhooks-development-complexity"
 
 >Webhooks: Development Complexity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#webhooks-operational-complexity"
 
 >Webhooks: Operational Complexity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#transition-rules"
 
 >Transition Rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#considerations"
 
 >Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-evaluated"
 
 >Alternatives Evaluated&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#expression-lifecycle"
 
 >Expression lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#function-library"
 
 >Function library&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#function-library-updates"
 
 >Function Library Updates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#accidental-misuse"
 
 >Accidental misuse&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#malicious-use"
 
 >Malicious use&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-plan"
 
 >Future Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-for-general-admission-control"
 
 >CEL for General Admission Control&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cel-custom-resource-definition-conversion"
 
 >CEL Custom Resource Definition Conversion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-expression-languages"
 
 >Other expression languages&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#type-checking"
 
 >Type Checking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#type-system-integration"
 
 >Type System Integration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-not-represent-associative-lists-as-maps-in-cel"
 
 >Why not represent associative lists as maps in CEL?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resource-constraints"
 
 >Resource constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#estimated-cost-limits"
 
 >Estimated Cost Limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-cost-budget"
 
 >Runtime Cost Budget&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#request-lifetime-bound"
 
 >Request lifetime Bound&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bounds"
 
 >Bounds&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria-1"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta-1"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introduce-cel-for-general-admission-control"
 
 >Introduce CEL for General Admission Control&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rego"
 
 >Rego&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#expr"
 
 >Expr&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#webassembly"
 
 >WebAssembly&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#starlark-formerly-known-as-skylark"
 
 >Starlark (formerly known as Skylark)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#build-our-own"
 
 >Build our own&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#make-it-easier-to-validate-crds-using-webhooks"
 
 >Make it easier to validate CRDs using webhooks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CRD Validation Ratcheting</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4008/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4008/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4008-crd-validation-ratcheting">KEP-4008: CRD Validation Ratcheting&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#nested-value-validations"
 
 >Nested Value Validations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#xlisttype-and-xmapkeys"
 
 >XListType and XMapKeys&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#atomic-lists-and-maps"
 
 >Atomic Lists and Maps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-rules"
 
 >CEL Rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#advanced-ratcheting"
 
 >Advanced Ratcheting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ratcheting-rules-in-cel"
 
 >Ratcheting Rules in CEL&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#crd-author-tightens-a-field"
 
 >CRD Author Tightens a Field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-update-tightens-crd-validation"
 
 >K8s Update Tightens CRD validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-update-widens-crd-validation"
 
 >K8s Update Widens CRD Validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#detection-of-breaking-schema-changes-is-different"
 
 >Detection of Breaking Schema Changes is Different&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-use-crd-schema-checker"
 
 >Mitigation: Use CRD-Schema-Checker&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-use-new-objects"
 
 >Mitigation: Use New Objects&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#not-all-rules-can-be-correctlyeasily-ratcheted"
 
 >Not All Rules Can Be Correctly/Easily Ratcheted&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-blacklisted-validations"
 
 >Mitigation: Blacklisted Validations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-conservative-ratcheting-rule"
 
 >Mitigation: Conservative Ratcheting Rule&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube-openapi-changes"
 
 >&lt;code>kube-openapi&lt;/code> changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#structural-schema-based-validation-changes"
 
 >Structural-Schema-based validation changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#correlation-of-old-and-new"
 
 >Correlation of Old and New&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cel-validator-changes"
 
 >Cel-Validator changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

- &lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>

- &lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>

- &lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>

- &lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#crds-opt-in-to-ratcheting-functionality"
 
 >CRDs Opt-in to Ratcheting Functionality&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#offline-pass-to-flag-invalid-objects-at-rest-during-upgrade"
 
 >Offline Pass to Flag Invalid Objects at Rest During Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#post-process-errors"
 
 >Post-Process Errors&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#drawbacks-1"
 
 >Drawbacks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#robustness-of-paths-returned-by-openapi-schema-validator"
 
 >Robustness of paths returned by OpenAPI Schema Validator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evaluation-of-json-paths"
 
 >Evaluation of JSON Paths&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#correlating-errors-to-fields"
 
 >Correlating Errors To Fields&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#different-ratcheting-rule-per-value-validation"
 
 >Different Ratcheting Rule Per Value Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#drawbacks-2"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ratcheting-within-nested-value-validations"
 
 >Ratcheting Within Nested Value Validations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#not"
 
 >Not&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#oneof"
 
 >OneOf&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#weaker-ratcheting-rule"
 
 >Weaker Ratcheting Rule&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#drawbacks-3"
 
 >Drawbacks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#allows-arbitrary-invalid-data"
 
 >Allows Arbitrary Invalid Data&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allof"
 
 >AllOf&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#anyof"
 
 >AnyOf&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Create a `k8s.io/component-base` repo</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/783/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/783/</guid><description/></item><item><title>CRI Container Log Rotation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2411/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2411/</guid><description>&lt;h1 id="kep-2411-cri-container-log-rotation">KEP-2411: CRI Container Log Rotation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CRI List Streaming</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5825/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5825/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5825-cri-list-streaming">KEP-5825: CRI List Streaming&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#message-size-analysis"
 
 >Message Size Analysis&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#streamcontainers"
 
 >StreamContainers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#streampodsandboxes"
 
 >StreamPodSandboxes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-stream-operations"
 
 >Other Stream Operations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#behavior-matrix"
 
 >Behavior Matrix&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#increase-grpc-message-limit"
 
 >Increase gRPC message limit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#improve-garbage-collection"
 
 >Improve garbage collection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#token-based-pagination"
 
 >Token-based pagination&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#offset-based-pagination"
 
 >Offset-based pagination&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#standards-and-documentation"
 
 >Standards and Documentation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#related-issues-and-prs"
 
 >Related Issues and PRs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CronJobs (previously ScheduledJobs)</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/19/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/19/</guid><description>&lt;h1 id="kep-19-cronjobs-previously-scheduledjobs">KEP-19: CronJobs (previously ScheduledJobs)&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#plan-for-promoting-cronjob-to-ga"
 
 >Plan for promoting CronJob to GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#existing-controller"
 
 >Existing controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-controller"
 
 >New controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#informers-and-caches"
 
 >Informers and Caches&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multiple-workers"
 
 >Multiple workers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-cron-aspect"
 
 >Handling Cron aspect&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-statuslastsuccessfultime"
 
 >Add .status.lastSuccessfulTime&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fix-applicable-open-issues"
 
 >Fix applicable open issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scale-targets-for-ga"
 
 >Scale Targets for GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cronjob-limits"
 
 >CronJob Limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#frequency-of-launched-jobs"
 
 >Frequency of launched jobs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cronjob-v1-api"
 
 >CronJob v1 API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cronjob-v1beta1-api"
 
 >CronJob v1beta1 API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validations"
 
 >Validations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tests"
 
 >Tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#e2e-test"
 
 >E2E test&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-test-cases"
 
 >Existing test cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-test-cases"
 
 >New test cases&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#conformance-tests"
 
 >Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-plan"
 
 >Implementation plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#release-120"
 
 >Release 1.20&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#release-121"
 
 >Release 1.21&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#release-122"
 
 >Release 1.22&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-and-further-reading"
 
 >Alternatives and Further Reading&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cron-aspect"
 
 >Cron Aspect&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#improvementsconsiderations"
 
 >Improvements/Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-statusnextscheduletime"
 
 >Add .status.nextScheduleTime&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-counters"
 
 >Add counters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-statusconditions"
 
 >Add .status.conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-jitter-for-cronjobs"
 
 >Support Jitter for cronjobs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-timezone-for-cronjobs"
 
 >Support Timezone for cronjobs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cronjob-umbrella-issue"
 
 >CronJob umbrella issue&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Cross resource group nodes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/604/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/604/</guid><description/></item><item><title>CSI driver opt-in for service account tokens via secrets field</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5538/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5538/</guid><description>&lt;h1 id="kep-5538-csi-driver-opt-in-for-service-account-tokens-via-secrets-field">KEP-5538: CSI driver opt-in for service account tokens via secrets field&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-implementation"
 
 >Current Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-implementation"
 
 >Proposed Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#driver-migration-example"
 
 >Driver Migration Example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rollout-sequence"
 
 >Rollout Sequence&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-force-migration-approach"
 
 >Alternative 1: Force migration approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-enhance-protosanitizer"
 
 >Alternative 2: Enhance protosanitizer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-new-dedicated-token-field-in-csi-spec"
 
 >Alternative 3: New dedicated token field in CSI spec&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-4-automatic-detection-and-dual-placement"
 
 >Alternative 4: Automatic detection and dual placement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-5-use-csi-capability-instead-of-csidriver-field"
 
 >Alternative 5: Use CSI capability instead of CSIDriver field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CSI Pod Info on Mount</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/603/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/603/</guid><description>&lt;h1 id="csi-pod-info-on-mount">CSI Pod Info on Mount&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-to-beta"
 
 >Alpha to Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga"
 
 >Beta to GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document presents a design to allow Kubernetes to pass metadata such as Pod name and namespace to the CSI &lt;code>NodePublishVolume&lt;/code> call if a CSI driver requires it.&lt;/p>
&lt;p>The detailed design was originally implemented as a &lt;a href="https://github.com/kubernetes/design-proposals-archive/blob/master/storage/container-storage-interface-pod-information.md"
 
 target="_blank" rel="noopener">design proposal&lt;/a>
.&lt;/p></description></item><item><title>CSI Raw Block Volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/565/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/565/</guid><description>&lt;h1 id="csi-raw-block-volumes">CSI Raw Block Volumes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-strategy"
 
 >Upgrade/Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#k8s-112-alpha"
 
 >K8s 1.12: Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-113-alpha"
 
 >K8s 1.13: Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-114-beta"
 
 >K8s 1.14: Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-117-beta"
 
 >K8s 1.17: Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-118-ga"
 
 >K8s 1.18: GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Raw block support has been added to both the core of Kubernetes (including
API support and support in kubelet for a subset of volume types) as well as
the CSI specification. This feature is specifically to add raw block support
to kubelet for volumes of the &amp;ldquo;csi&amp;rdquo; type by taking advantage of the
now-standardized CSI RPCs.&lt;/p></description></item><item><title>CSI Sidecars All in one</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4958/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4958/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4958-csi-sidecars-all-in-one">KEP-4958: CSI Sidecars All In One&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#increased-maintenance-tasks-on-components"
 
 >Increased maintenance tasks on components&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csi-sidecars-releases"
 
 >CSI Sidecars releases&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#maintenance-tasks-by-csi-driver-authors-and-cluster-administrators"
 
 >Maintenance tasks by CSI Driver authors and cluster administrators&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-utilization-by-the-csi-sidecar-components"
 
 >Resource utilization by the CSI Sidecar components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#glossary"
 
 >Glossary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aio-monorepo"
 
 >AIO Monorepo&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#release-management"
 
 >Release Management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rbac-policy"
 
 >RBAC policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#command-line"
 
 >Command Line&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#code-synchronization"
 
 >Code synchronization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#individual-repo-history"
 
 >Individual repo history&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reproducible-builds--dependencies-management"
 
 >Reproducible builds &amp;amp; Dependencies Management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks And Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#development-workflow"
 
 >Development workflow&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#milestone"
 
 >MileStone&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#milestone-modify-entrypoints-of-existing-sidecars-to-integrate-it-seamlessly-with-the-aio-sidecar"
 
 >Milestone-modify-entrypoints-of-existing-sidecars-to-integrate-it-seamlessly-with-the-AIO-sidecar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-setting-up-a-kubernetes-csi-storage-repository-with-nested-directory-synchronization"
 
 >Milestone-setting-up-a-Kubernetes-CSI-Storage-Repository-with-nested-directory-synchronization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-build-the-project-using-a-modified-copy-of-release-tools"
 
 >Milestone-Build-the-project-using-a-modified-copy-of-release-tools&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-set-up-new-test-infra-jobs-to-test-the-project-through-the-hostpath-csi-driver"
 
 >Milestone-set-up-new-test-infra-jobs-to-test-the-project-through-the-hostpath-CSI-Driver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-ready-to-accept-pr-from-community"
 
 >Milestone-ready-to-accept-PR-from-community&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-define-the-path-for-2-csi-drivers-to-be-migrated"
 
 >Milestone-define-the-path-for-2-CSI-Drivers-to-be-migrated.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-have-instructions-for-csi-driver-authors"
 
 >Milestone: Have instructions for CSI Driver authors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-three-cloud-vendors-start-using-the-monorepo-component-for-multi-k8s-minor-releases"
 
 >Milestone-three-cloud-vendors-start-using-the-monorepo-component-for-multi-k8s-minor-releases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-accept-pr-from-community"
 
 >Milestone-accept-PR-from-community&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-all-individual-repo-has-been-into-featurefreeze-state"
 
 >milestone-all-individual-repo-has-been-into-featurefreeze-state&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-all-individual-repo-has-been-into-deprecated-state"
 
 >Milestone-all-individual-repo-has-been-into-deprecated-state&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#milestone-merge-sidecar-informer-caches"
 
 >Milestone-merge-sidecar-informer-caches&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#questions-and-answers"
 
 >Questions and Answers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#project-goal-and-motivation"
 
 >Project Goal and Motivation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#development-and-release-process"
 
 >Development and Release Process&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#aio-monorepo-state-definition"
 
 >AIO MonoRepo state definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#individual-repository-state-definition"
 
 >Individual repository state definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#migration-process"
 
 >Migration Process&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#releasemanagement"
 
 >ReleaseManagement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reproduciblebuilds"
 
 >ReproducibleBuilds&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CSI Snapshot</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/177/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/177/</guid><description>&lt;h1 id="kep-177-csi-snapshot">KEP-177: CSI Snapshot&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-beta"
 
 >Alpha-&amp;gt;Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-ga"
 
 >Beta-&amp;gt;GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#snapshot-beta"
 
 >Snapshot Beta&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-split"
 
 >Controller Split&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-changes-implemented"
 
 >Other Changes Implemented&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#snapshot-ga"
 
 >Snapshot GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-implemented"
 
 >Changes Implemented&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#additional-changes-planned"
 
 >Additional Changes Planned&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CSI Snapshot Webhook</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1900/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1900/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-1900-add-additional-validation-to-volume-snapshot-objects">KEP-1900: Add additional validation to volume snapshot objects&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background-on-admission-webhooks"
 
 >Background on Admission webhooks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validating-scenarios"
 
 >Validating Scenarios&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volumesnapshot"
 
 >VolumeSnapshot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumesnapshotcontent"
 
 >VolumeSnapshotContent&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#authentication"
 
 >Authentication&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#timeout"
 
 >Timeout&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#idempotencydeadlock"
 
 >Idempotency/Deadlock&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automatic-labelling-of-invalid-objects"
 
 >Automatic Labelling of Invalid Objects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backwards-compatibility"
 
 >Backwards compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollback"
 
 >Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#current-controller-validation-of-oneof-semantic"
 
 >Current Controller validation of OneOf semantic&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#handling-volumesnapshot"
 
 >Handling VolumeSnapshot.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-volumesnapshotcontent"
 
 >Handling VolumeSnapshotContent&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deployment"
 
 >Deployment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-api-server-configuration"
 
 >Kubernetes API Server Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#webhook-server-deployment"
 
 >Webhook Server Deployment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CSI Volume Topology</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/557/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/557/</guid><description>&lt;h1 id="csi-volume-topology">CSI Volume Topology&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-strategy"
 
 >Upgrade/Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecations"
 
 >Deprecations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ga-testing"
 
 >GA testing&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-beta"
 
 >Alpha-&amp;gt;Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-ga"
 
 >Beta-&amp;gt;GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP is written after the original design doc has been approved and implemented. Design for CSI Volume Topology Support in Kubernetes is incorporated as part of the &lt;a href="https://github.com/kubernetes/design-proposals-archive/blob/master/storage/container-storage-interface.md"
 
 target="_blank" rel="noopener">CSI Volume Plugins in Kubernetes Design Doc&lt;/a>
.&lt;/p></description></item><item><title>CSR Duration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2784/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2784/</guid><description>&lt;h1 id="kep-2784-csr-duration">KEP-2784: CSR Duration&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scenario-1"
 
 >Scenario 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-2"
 
 >Scenario 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Custom profiling support in kubectl debug command</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4292/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4292/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4292-custom-profiling-support-in-kubectl-debug-command">KEP-4292: Custom profiling support in kubectl debug command&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#flags-for-all-fields"
 
 >Flags for all fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#customizable-pod-spec-instead-corev1container"
 
 >Customizable Pod Spec instead corev1.Container&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Custom Resource Field Selectors</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4358/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4358/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4358-custom-resource-field-selectors">KEP-4358: Custom Resource Field Selectors&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background-field-selection-as-it-exists-before-this-enhancement"
 
 >Background: Field selection as it exists before this enhancement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plan"
 
 >Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validation-rules"
 
 >Validation rules&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#openapi-discovery"
 
 >OpenAPI Discovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future work&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declarative-field-selector-definitions-on-built-in-types"
 
 >Declarative field selector definitions on built-in types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#index-selected-fields"
 
 >Index selected fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-as-an-accelerated-predicate-language"
 
 >CEL as an accelerated predicate language&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#increases-watch-cache-resource-utilization"
 
 >Increases watch cache resource utilization&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#openapi-discovery-1"
 
 >OpenAPI Discovery&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declare-selectable-fields-to-the-fieldselector-path-parameter-of-openapi"
 
 >Declare selectable fields to the fieldSelector path parameter of OpenAPI&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#declare-selectable-fields-by-annotating-schema-fields-as-being-selectable-eg"
 
 >Declare selectable fields by annotating schema fields as being selectable, e.g.:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>CustomResourceDefinition Conversion Webhook</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/598/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/598/</guid><description>&lt;h1 id="customresourcedefinition-conversion-webhook">CustomResourceDefinition Conversion Webhook&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#definitions"
 
 >Definitions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#detailed-design"
 
 >Detailed Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#crd-api-changes"
 
 >CRD API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#top-level-fields-to-per-version-fields"
 
 >Top level fields to Per-Version fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-level"
 
 >Support Level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollback"
 
 >Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#webhook-requestresponse"
 
 >Webhook Request/Response&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metadata"
 
 >Metadata&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitorability"
 
 >Monitorability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#error-messages"
 
 >Error Messages&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#caching"
 
 >Caching&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-of-writing-conversion-webhook"
 
 >Example of Writing Conversion Webhook&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#example-of-updating-crd-from-one-to-two-versions"
 
 >Example of Updating CRD from one to two versions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document proposes a detailed plan for adding support for version-conversion
of Kubernetes resources defined via Custom Resource Definitions (CRD). The API
Server is extended to call out to a webhook at appropriate parts of the handler
stack for CRDs.&lt;/p></description></item><item><title>Declarative API Definitions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5975/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5975/</guid><description>&lt;h1 id="kep-5975-declarative-api-definitions">KEP-5975: Declarative API Definitions&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enforcement-of-best-practices"
 
 >Enforcement of Best Practices&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-declarations"
 
 >API Declarations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#warnings"
 
 >Warnings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#field-wiping-and-fields-resetting"
 
 >Field Wiping and Fields Resetting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generation-management"
 
 >Generation Management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate-field-dropping"
 
 >Feature-Gate Field Dropping&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adding-a-new-api-resource"
 
 >Adding a New API Resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#adding-a-new-field-to-an-existing-api"
 
 >Adding a New Field to an Existing API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#registryrestconfig"
 
 >registry.RESTConfig&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#strategyconfig"
 
 >strategy.Config&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#specstatus-accessor-interfaces"
 
 >Spec/Status Accessor Interfaces&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;p>&lt;strong>Note:&lt;/strong> This KEP tracks an internal code organization change that is not
visible to end users. There are no feature gates and no alpha/beta/stable
transitions. We are using the KEP process to encourage discussion and
community involvement.&lt;/p></description></item><item><title>Declarative Validation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4153/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4153/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4153-declarative-validation-of-kubernetes-native-types">KEP-4153: Declarative Validation of Kubernetes Native Types&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unions"
 
 >Unions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-validation"
 
 >CEL Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#formats"
 
 >Formats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#idl-tags"
 
 >IDL tags&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#analysis-of-existing-validation-rules"
 
 >Analysis of existing validation rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-developer-wishes-to-add-a-field-to-a-existing-api-version"
 
 >Kubernetes developer wishes to add a field to a existing API version&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-devekoper-adds-a-v1beta2-version-of-an-api"
 
 >Kubernetes devekoper adds a v1beta2 version of an API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-wishes-to-validate-the-yaml-of-a-kubernetes-native-type-as-a-git-pre-submit-check"
 
 >User wishes to validate the YAML of a kubernetes native type as a Git pre-submit check&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-wishes-to-use-kubebuilder-to-define-a-custom-resource-that-embeds-podtemplate"
 
 >User wishes to use Kubebuilder to define a custom resource that embeds PodTemplate&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk-migration-to-declarative-validation-introduce-breaking-change-to-api-validation"
 
 >Risk: Migration to Declarative Validation introduce breaking change to API validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-ensure-invalid-objects-still-invalid"
 
 >Mitigation: Ensure Invalid Objects Still Invalid&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-ensure-valid-old-objects-still-valid"
 
 >Mitigation: Ensure Valid Old Objects Still Valid&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk-reduced-the-fidelity-of-validation-error-messages"
 
 >Risk: Reduced the fidelity of validation error messages&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-fallback-to-cel"
 
 >Mitigation: Fallback to CEL&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-explore-x-kubernetes-extension-for-custom-error-messages"
 
 >Mitigation: Explore &lt;code>x-kubernetes&lt;/code> extension for custom error messages&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk-added-latency-to-api-request-handling"
 
 >Risk: Added latency to API request handling.&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-avoid-conversion-to-internal-type"
 
 >Mitigation: Avoid Conversion to Internal Type&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-avoid-unstructured-conversion"
 
 >Mitigation: Avoid Unstructured Conversion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-use-value-validations-where-possible"
 
 >Mitigation: Use Value Validations Where Possible&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-go-fast-paths-for-hot-validation-code-paths"
 
 >Mitigation: Go fast paths for hot validation code paths&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#improve-current-schema-quality"
 
 >Improve Current Schema Quality&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#publish-complex-validation-rules"
 
 >Publish Complex Validation Rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#publish-declarative-defaults-in-schema"
 
 >Publish Declarative Defaults in Schema&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-shared-template-schemas"
 
 >Support Shared Template Schemas&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-missing-required-fields"
 
 >Add missing &lt;code>required&lt;/code> fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#zero-valued-primitive-fields"
 
 >Zero-Valued Primitive Fields&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#required-zero-fields"
 
 >Required Zero Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#optional-zero-fields"
 
 >Optional Zero Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#code-generator-solution"
 
 >Code Generator Solution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#create-a-library-for-validation-of-native-types"
 
 >Create a Library for Validation of Native Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enrichment-of-schemas"
 
 >Enrichment of schemas&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-test-instrumentation"
 
 >Unit Test Instrumentation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#e2e-test-instrumentation"
 
 >E2E Test Instrumentation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#error-message-equivalence"
 
 >Error Message Equivalence&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#using-schemas-for-validation"
 
 >Using Schemas for Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request-handling"
 
 >Request handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-of-unstructured-input-or-deserialized-go-type"
 
 >Validation of Unstructured input or Deserialized Go Type&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#deprecation-of-legacy-validation"
 
 >Deprecation of Legacy Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prototype-notes"
 
 >Prototype Notes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declarativevalidationextensionsinopenapi"
 
 >&lt;code>DeclarativeValidationExtensionsInOpenAPI&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#declarativevalidation"
 
 >&lt;code>DeclarativeValidation&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declarativevalidationextensionsinopenapi-1"
 
 >&lt;code>DeclarativeValidationExtensionsInOpenAPI&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#declarativevalidation-1"
 
 >&lt;code>DeclarativeValidation&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validate-on-storage-type-rather-than-request-type"
 
 >Validate On Storage Type Rather than Request Type&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Declarative Validation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5073/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5073/</guid><description>&lt;h1 id="kep-5073-declarative-validation-of-kubernetes-native-types-with-validation-gen">KEP-5073: Declarative Validation of Kubernetes Native Types With validation-gen&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-implicit-shadow-reality"
 
 >The &amp;quot;Implicit Shadow&amp;quot; Reality&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#problem-global-vs-local-control"
 
 >Problem: Global vs. Local Control&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#solution-lifecycle-tags"
 
 >Solution: Lifecycle Tags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introduce-validation-gen"
 
 >Introduce &lt;code>validation-gen&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validation-gens-approach-to-dedicated-tags-and-escape-hatch-tags"
 
 >&lt;code>validation-gen&lt;/code>&amp;rsquo;s Approach to Dedicated Tags and Escape Hatch Tags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#idl-tag-authoring-devex-and-user-error-messaging"
 
 >IDL Tag Authoring DevEx and User Error Messaging&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#introduce-new-validation-tests-and-test-framework"
 
 >Introduce new validation tests and test framework&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-validations-vs-migrating-validations"
 
 >New Validations Vs Migrating Validations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-validation-tests"
 
 >New Validation Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ensuring-validation-equivalence-with-testing"
 
 >Ensuring Validation Equivalence With Testing&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#introduce-feature-gates-declarativevalidation-declarativevalidationtakeover--declarativevalidationbeta"
 
 >Introduce Feature Gates: &lt;code>DeclarativeValidation&lt;/code>, &lt;code>DeclarativeValidationTakeover&lt;/code>, &amp;amp; &lt;code>DeclarativeValidationBeta&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declarativevalidation--declarativevalidationbeta-will-target-beta-from-the-beginning"
 
 >&lt;code>DeclarativeValidation&lt;/code> &amp;amp; &lt;code>DeclarativeValidationBeta&lt;/code> Will Target Beta From The Beginning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#execution--authority-logic"
 
 >Execution &amp;amp; Authority Logic&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate-graduation-criteria"
 
 >Feature Gate Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declarativevalidation-feature-gate-beta-to-ga-graduation-criteria"
 
 >&lt;code>DeclarativeValidation&lt;/code> Feature Gate Beta to GA Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#linter"
 
 >Linter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation-generation"
 
 >Documentation Generation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rollout-strategytimeline"
 
 >Rollout Strategy(Timeline)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v133---v134-completed"
 
 >v1.33 - v1.34 (completed):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v135-completed"
 
 >v1.35 (completed):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-1-v136-introduction---current-release"
 
 >Phase 1: v1.36 (Introduction - current release)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#case-new-apis"
 
 >Case: New APIs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#case-legacy-apis"
 
 >Case: Legacy APIs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#case-adding-validation-to-existing-fields-implicit"
 
 >Case: Adding Validation to Existing Fields (Implicit)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#phase-2-v137---v138-transition-to-beta"
 
 >Phase 2: v1.37 - v1.38 (Transition to Beta)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3-v139-gate-removal--ga"
 
 >Phase 3: v1.39+ (Gate Removal &amp;amp; GA)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#lifecycle-promotion-process-continuous"
 
 >Lifecycle: Promotion Process (Continuous)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-steps"
 
 >Graduation Steps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-lifecycle-tags-apply"
 
 >When Lifecycle Tags Apply&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lint-rules"
 
 >Lint Rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-walkthrough-two-field-migration"
 
 >Example Walkthrough: Two-Field Migration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-legacy--implicit-shadowing-v136---v138"
 
 >Phase 1: Legacy / Implicit Shadowing (v1.36 - v1.38)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-explicit-onboarding-v139--release-n"
 
 >Phase 2: Explicit Onboarding (v1.39 / Release N)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3-granular-field-graduation-v140--release-n1"
 
 >Phase 3: Granular Field Graduation (v1.40 / Release N+1)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-4-final-permanent-enforcement-v141--release-n2"
 
 >Phase 4: Final Permanent Enforcement (v1.41 / Release N+2)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#analysis-of-existing-validation-rules"
 
 >Analysis of existing validation rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-developer-wishes-to-add-a-field-to-an-existing-api-version"
 
 >Kubernetes developer wishes to add a field to an existing API version&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-developer-adds-a-new-version-v1beta2-of-an-api"
 
 >Kubernetes developer adds a new version (v1beta2) of an API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-developer-using-an-aggregated-api-andor-krm-server-is-adding-a-new-field-to-their-custom--api-type"
 
 >Kubernetes Developer Using an Aggregated API and/or KRM Server Is Adding a New Field To Their Custom API Type&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-api-reviewer-is-reviewing-api-changes-for-a-pr-for-a-new-kubernetes-native-type"
 
 >Kubernetes API reviewer is reviewing API changes for a PR for a new Kubernetes Native Type&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk-the-migration-project-loses-steam-and-work-is-abandoned"
 
 >Risk: The Migration Project Loses Steam And Work Is Abandoned&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-roll-back-all-migrated-fields"
 
 >Mitigation: Roll Back All Migrated Fields&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk-we-get-hundreds-of-prs-from-people-migrating-fields-and-cant-review-them-all"
 
 >Risk: we get hundreds of PRs from people migrating fields and can&amp;rsquo;t review them all.&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-these-are-not-urgent-and-we-will-have-patterns-which-can-be-reviewed-by-more-people"
 
 >Mitigation: These are not urgent and we will have patterns which can be reviewed by more people.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk-versioned-validation-drifts-between-versions"
 
 >Risk: Versioned validation drifts between versions.&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-round-trip-testing--fuzzing--equivalence-tests--linting"
 
 >Mitigation: round-trip testing + fuzzing + equivalence tests + linting.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk-migration-to-declarative-validation-introduces-breaking-change-to-api-validation"
 
 >Risk: Migration to Declarative Validation introduces breaking change to API validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-ensure-invalid-objects-still-invalid"
 
 >Mitigation: Ensure Invalid Objects Still Invalid&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-ensure-valid-old-objects-still-valid"
 
 >Mitigation: Ensure Valid Old Objects Still Valid&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk-added-latency-to-api-request-handling"
 
 >Risk: Added latency to API request handling.&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-resolve-known-low-hanging-fruit-of-performance-improvements-in-current-validation-code"
 
 >Mitigation: Resolve Known &amp;quot;Low Hanging Fruit&amp;quot; of Performance Improvements In Current Validation Code&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-avoid-conversion-to-internal-type"
 
 >Mitigation: Avoid Conversion to Internal Type&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#summary-of-declarative-validation-components"
 
 >Summary of Declarative Validation Components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-gen-implementation-plan"
 
 >&lt;code>validation-gen&lt;/code> Implementation Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#catalog-of-supported-validation-rules--associated-idl-tags"
 
 >Catalog of Supported Validation Rules &amp;amp; Associated IDL Tags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tag-stability-levels"
 
 >Tag Stability Levels&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#supporting-declarative-validation-idl-tags-on-shared-struct-fields"
 
 >Supporting Declarative Validation IDL tags On Shared Struct Fields&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#subfield-idl-tag"
 
 >&lt;code>subfield&lt;/code> IDL Tag&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-gen-one-deep-typedef-issue-and-solution"
 
 >&lt;code>validation-gen&lt;/code> One-deep typedef Issue And Solution&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#solution"
 
 >Solution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#migration-plan"
 
 >Migration Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase1-initialization-responsibility-of-contributors-implementing-the-kep"
 
 >Phase1: Initialization (Responsibility of Contributors Implementing the KEP)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase2-scaling-the-migration-responsibility-of-contributors-implementing-the-kep-and-broader-community"
 
 >Phase2: Scaling the Migration (Responsibility of Contributors Implementing the KEP and broader community)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase3-finalization-and-ga-core-team-and-community"
 
 >Phase3: Finalization and GA (Core Team and community)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tagging-and-validating-against-versioned-types"
 
 >Tagging and Validating Against Versioned Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-zero-values-in-declarative-validation"
 
 >Handling Zero Values in Declarative Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#difficulties-with-k8srequired-and-k8sdefault"
 
 >Difficulties with &lt;code>+k8s:required&lt;/code> and &lt;code>+k8s:default&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-solutions"
 
 >Proposed Solutions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#addressing-the-problem-with-valid-zero-values-using-the-linter"
 
 >Addressing the Problem with Valid Zero Values Using the Linter&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#immutability-validation"
 
 >Immutability Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-concepts"
 
 >Core Concepts&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#lifecycle-operations"
 
 >Lifecycle Operations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#field-type-lifecycle-behaviors"
 
 >Field Type Lifecycle Behaviors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lifecycle-operations-by-field-type"
 
 >Lifecycle Operations by Field Type&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#parent-lifecycle-scope-principle"
 
 >Parent Lifecycle Scope Principle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#list-additem-and-removeitem-item-equality-semantics-for-each-listtype"
 
 >List AddItem and RemoveItem “Item” Equality Semantics For Each listType&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#item-level-constraints"
 
 >Item-Level Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-tags-that-interact-with-create-andor-update-semantics"
 
 >Validation Tags That Interact With CREATE, and/or UPDATE semantics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#immutability-validation-tags"
 
 >Immutability Validation Tags&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#k8supdate"
 
 >+k8s:update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8simmutable"
 
 >+k8s:immutable&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#chainable-tag-semantics"
 
 >Chainable Tag Semantics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#common-patterns-reference-enabled-by-existing--new-tags-non-listsmaps"
 
 >Common Patterns Reference Enabled By Existing + New Tags: Non-Lists/Maps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#common-patterns-reference-enabled-by-existing--new-tags-listsmaps"
 
 >Common Patterns Reference Enabled By Existing + New Tags: Lists/Maps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#common-patterns-reference-enabled-by-existing--new-tags-list-items"
 
 >Common Patterns Reference Enabled By Existing + New Tags: List Items&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#immutability-patterns-and-tags-demonstrated"
 
 >Immutability Patterns and Tags Demonstrated&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cross-field-validation"
 
 >Cross-Field Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#handling-ratcheting-in-cross-field-validation-tags"
 
 >Handling Ratcheting In Cross-Field Validation Tags&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#referencing-fields-in-validation-gen-for-cross-field-validation-rules"
 
 >Referencing Fields in Validation-Gen For Cross-Field Validation Rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#field-reference-strategies"
 
 >Field Reference Strategies&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#field-path-strategy"
 
 >Field Path Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#virtual-field-strategy"
 
 >Virtual Field Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#choosing-between-field-paths-and-virtual-fields"
 
 >Choosing Between Field Paths and Virtual Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tag-placement-and-hoisting"
 
 >Tag Placement and Hoisting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comprehensive-example"
 
 >Comprehensive Example:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#subresources"
 
 >Subresources&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#status-type-subresources"
 
 >Status-Type Subresources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scale-type-subresources"
 
 >Scale-Type Subresources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#streaming-subresources"
 
 >Streaming Subresources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ratcheting"
 
 >Ratcheting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-principles"
 
 >Core Principles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-ratcheting-behavior"
 
 >Default Ratcheting Behavior&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#definition-of-semantic-equivalence"
 
 >Definition of Semantic Equivalence&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#policy-on-order-sensitive-list-validation"
 
 >Policy on Order-Sensitive List Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ratcheting-and-cross-field-validation"
 
 >Ratcheting and Cross-Field Validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-verification-testing"
 
 >Runtime verification testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#complex-tags"
 
 >Complex Tags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#straightforward-tags"
 
 >Straightforward Tags&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cel-and-openapi-libraries-directly-for-k8s-native-types-kep-4153"
 
 >Use CEL and OpenAPI libraries directly for K8s Native Types (&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/4153-declarative-validation">KEP-4153&lt;/a>)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-k8s-native-apis-design-partner-for-declarative-validation-in-134"
 
 >&amp;quot;New K8s Native APIs&amp;quot; Design Partner For Declarative Validation in 1.34&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Decouple PodGroup API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5832/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5832/</guid><description>&lt;h1 id="kep-5832-decouple-podgroup-from-workload-api">KEP-5832: Decouple PodGroup from Workload API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#independent-podgroup-lifecycle"
 
 >Independent PodGroup Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podgroup-level-status"
 
 >PodGroup-Level Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-scalability"
 
 >Controller Scalability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#apis"
 
 >APIs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-updated-workload-api"
 
 >1. Updated &lt;code>Workload&lt;/code> API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-updated-pod-api"
 
 >2. Updated &lt;code>Pod&lt;/code> API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-podgroup-api"
 
 >3. &lt;code>PodGroup&lt;/code> API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#deletion-protection"
 
 >Deletion Protection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#schedulingpolicy-reference-vs-copyinline-in-podgroup"
 
 >SchedulingPolicy Reference vs. Copy/Inline in PodGroup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podgroup-creation-ordering"
 
 >PodGroup Creation Ordering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podgroup-status-lifecycle"
 
 >PodGroup Status Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-changes"
 
 >Scheduler Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#informers-and-watches"
 
 >Informers and Watches&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gangscheduling-plugin"
 
 >GangScheduling plugin&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ownership-and-object-relationship"
 
 >Ownership and Object Relationship&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#naming-convention"
 
 >Naming Convention&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-plans"
 
 >Future Plans&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#hierarchical-podgroups"
 
 >Hierarchical PodGroups&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#embedded-podgroups-status-quo"
 
 >Embedded PodGroups (Status Quo)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-both-embedded-and-standalone-podgroup"
 
 >Support both embedded and standalone PodGroup&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Decouple TaintManager from NodeLifeCycleController</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3902/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3902/</guid><description>&lt;h1 id="kep-3902--decouple-taint-based-pod-eviction-from-node-lifecycle-controller">KEP-3902: Decouple Taint-based Pod Eviction from Node Lifecycle Controller&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story"
 
 >Story&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-controllers"
 
 >Proposed Controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#note"
 
 >Note&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Default Pod Topology Spread</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1258/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1258/</guid><description>&lt;h1 id="default-pod-topology-spread">Default Pod Topology Spread&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-selectorspread-plugin"
 
 >Relationship with &amp;quot;SelectorSpread&amp;quot; plugin&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-constraints"
 
 >Default constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-user-stories-are-addressed"
 
 >How user stories are addressed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v119"
 
 >Alpha (v1.19):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v120"
 
 >Beta (v1.20):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable-v124"
 
 >Stable (v1.24):&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>With &lt;a href="https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/sig-scheduling/895-pod-topology-spread"
 
 target="_blank" rel="noopener">Pod Topology Spread&lt;/a>
,
workload authors can define spreading rules for their loads based on the topology of the clusters.
The spreading rules are defined in the &lt;code>PodSpec&lt;/code>, thus they are tied to the pod.&lt;/p></description></item><item><title>Defaulting for Custom Resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/575/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/575/</guid><description>&lt;h1 id="defaulting-for-custom-resources">Defaulting for Custom Resources&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#behaviour-of-embedded-resource-objectmeta-defaults"
 
 >Behaviour of Embedded Resource ObjectMeta Defaults&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives considered&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Defaulting is a fundamental step in the processing of API objects in the request pipeline of the kube-apiserver. Defaulting happens during deserialization, i.e. after decoding of a versioned object, &lt;strong>but before&lt;/strong> conversion to a hub type.&lt;/p></description></item><item><title>Defend against accidental credential logging via static analysis interation into Prow.</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1933/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1933/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-1933-defend-against-logging-secrets-via-static-analysis">KEP-1933: Defend Against Logging Secrets via Static Analysis&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-120"
 
 >Alpha (1.20)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---stable-graduation"
 
 >Beta -&amp;gt; Stable Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Defining the Kubernetes Release Cadence</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2572/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2572/</guid><description>&lt;h1 id="kep-2572-defining-the-kubernetes-release-cadence">KEP-2572: Defining the Kubernetes Release Cadence&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enhance-determinism"
 
 >Enhance determinism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reduce-risk"
 
 >Reduce risk&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#collecting-data"
 
 >Collecting data&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#creating-a-policy"
 
 >Creating a policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#long-term-support-lts-releases"
 
 >Long-term support (LTS) releases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changing-enhancements-graduation"
 
 >Changing enhancements graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#architecture-changes"
 
 >Architecture changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modifying-sig-architecture-policies"
 
 >Modifying SIG Architecture policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#accelerated-release-cycles"
 
 >Accelerated release cycles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#establishing-maintenancestability-releases"
 
 >Establishing maintenance/stability releases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#determining-an-upper-bound-for-release-team-shadows"
 
 >Determining an upper bound for Release Team shadows&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#end-user"
 
 >End User&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#distributors-and-downstream-projects"
 
 >Distributors and downstream projects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#contributors"
 
 >Contributors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sig-release-members"
 
 >SIG Release members&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#concentrating-risk"
 
 >Concentrating risk&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#attention-to-tests"
 
 >Attention to tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#attention-to-dependencies"
 
 >Attention to dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-graduation"
 
 >Feature graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unprepared-kubernetes-users"
 
 >Unprepared Kubernetes Users&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#increased-enhancements-lifecycle"
 
 >Increased enhancements lifecycle&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#schedule-policy"
 
 >Schedule Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feedback-survey"
 
 >Feedback survey&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#github-discussion"
 
 >GitHub Discussion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#leads-meeting-feedback-session"
 
 >Leads meeting feedback session&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review approved&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>With this KEP, SIG Release proposes to change the current Kubernetes release
cadence from 4 down to 3 releases per year. This cadence started in ad hoc manner
in 2020 due to the ongoing COVID-19 pandemic. This KEP serves to formalize this release
cadence, which will shape the development of the release calendars for the
Kubernetes 1.22 and 1.23 releases, each of which will be &lt;em>15&lt;/em> weeks in duration.&lt;/p></description></item><item><title>Deployment Pod Replacement Policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5882/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5882/</guid><description>&lt;h1 id="kep-5882-deployment-pod-replacement-policy">KEP-5882: Deployment Pod Replacement Policy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-optional"
 
 >Story 1 (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-optional"
 
 >Story 2 (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#consideration-for-other-controllers"
 
 >Consideration for Other Controllers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-impact"
 
 >Feature Impact&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-skew"
 
 >kubectl Skew&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deployment-behavior-changes"
 
 >Deployment Behavior Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deployment-completion-and-progress-changes"
 
 >Deployment Completion and Progress Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deployment-scaling-changes-and-a-new-annotation-for-replicasets"
 
 >Deployment Scaling Changes and a New Annotation for ReplicaSets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-changes"
 
 >kubectl Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Deprecate &amp; remove Kubelet RunOnce mode</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4580/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4580/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4580-deprecate--remove-kubelet-runonce-mode">KEP-4580: Deprecate &amp;amp; remove Kubelet RunOnce mode&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubeletconfiguration-change-kubeletconfiguration"
 
 >KubeletConfiguration Change: KubeletConfiguration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-flag-change"
 
 >kubelet flag Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implement-warning-logging-for-runonce-mode-usage"
 
 >Implement warning logging for RunOnce mode usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introduction-legacynoderunoncemode-feature-gate"
 
 >Introduction LegacyNodeRunOnceMode feature gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Deprecate and remove SelfLink</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1164/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1164/</guid><description>&lt;h1 id="kep-1164-deprecate-and-remove-selflink">KEP-1164: Deprecate and Remove SelfLink&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Deprecate ipvs mode in kube-proxy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5495/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5495/</guid><description>&lt;h1 id="kep-5495-deprecate-ipvs-mode-in-kube-proxy">KEP-5495: Deprecate IPVS mode in kube-proxy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#stage-1-135"
 
 >Stage 1 (1.35)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stage-2-137"
 
 >Stage 2 (1.37)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stage-3-140"
 
 >Stage 3 (1.40)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stage-4-143"
 
 >Stage 4 (1.43)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cleanup-146"
 
 >Cleanup (1.46)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes deprecation of &lt;code>ipvs&lt;/code> in kube-proxy.&lt;/p></description></item><item><title>Deprecate klog specific flags in Kubernetes components</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2845/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2845/</guid><description>&lt;h1 id="kep-2845-deprecate-klog-specific-flags-in-kubernetes-components">KEP-2845: Deprecate klog specific flags in Kubernetes Components&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#removed-klog-flags"
 
 >Removed klog flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#logging-defaults"
 
 >Logging defaults&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#logging-headers"
 
 >Logging headers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#writing-logs-to-files"
 
 >Writing logs to files&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#caveats"
 
 >Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#users-dont-want-to-use-go-runner-as-replacement"
 
 >Users don&amp;rsquo;t want to use go-runner as replacement.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#log-processing-in-parent-process-causes-performance-problems"
 
 >Log processing in parent process causes performance problems&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#continue-supporting-all-klog-features"
 
 >Continue supporting all klog features&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#release-klog-30-with-removed-features"
 
 >Release klog 3.0 with removed features&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Deprecate Service.spec.externalIPs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5707/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5707/</guid><description>&lt;h1 id="kep-5707-deprecate-servicespecexternalips">KEP-5707: Deprecate Service.spec.externalIPs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#migration-guidance"
 
 >Migration Guidance&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#recommended-alternatives"
 
 >Recommended Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecation-v136"
 
 >Deprecation (v1.36)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-disabled---feature-gate-default-to-false"
 
 >Feature disabled - (Feature Gate Default to false)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#keep-externalips-with-enhanced-security"
 
 >Keep externalIPs with Enhanced Security&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Deprecate status.nodeInfo.kubeProxyVersion field</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4004/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4004/</guid><description>&lt;h1 id="kep-4004-deprecate-the-kubeproxyversion-field-of-v1node">KEP-4004: Deprecate the kubeProxyVersion field of v1.Node&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#versioned-api-change-nodestatus-v1-core"
 
 >Versioned API Change: NodeStatus v1 core&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodestatus-internal-representation"
 
 >NodeStatus Internal Representation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecated"
 
 >Deprecated&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#disabled"
 
 >Disabled&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Deprecate the &lt;code>status.nodeInfo.kubeProxyVersion&lt;/code> field of v1.Node&lt;/p></description></item><item><title>Deprecate v1.Endpoints and Associated Controllers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4974/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4974/</guid><description>&lt;h1 id="kep-4974-deprecate-v1endpoints-and-associated-controllers">KEP-4974: Deprecate v1.Endpoints and Associated Controllers&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#formal-deprecation-of-v1endpoints"
 
 >Formal Deprecation of &lt;code>v1.Endpoints&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#warnings-via-metrics"
 
 >Warnings via metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation-updates"
 
 >Documentation Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetesdefault-endpoints"
 
 >&lt;code>kubernetes.default&lt;/code> Endpoints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpoints-cleanup"
 
 >Endpoints Cleanup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#update-remaining-internal-endpoints-users"
 
 >Update Remaining Internal Endpoints Users&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-test-updates"
 
 >E2E Test Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecation---stage-1"
 
 >Deprecation - Stage 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation---stage-2"
 
 >Deprecation - Stage 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation---stage-3"
 
 >Deprecation - Stage 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation---stage-4"
 
 >Deprecation - Stage 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Device Plugins</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3573/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3573/</guid><description>&lt;h1 id="kep-3573-device-plugins">KEP-3573: Device Plugins&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#vendor-story"
 
 >Vendor story&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#end-user-story"
 
 >End User story&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introduction"
 
 >Introduction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#registration"
 
 >Registration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unix-socket"
 
 >Unix Socket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#protocol-overview"
 
 >Protocol Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-specification"
 
 >API Specification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#healthcheck-and-failure-recovery"
 
 >HealthCheck and Failure Recovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#installation"
 
 >Installation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrading-your-cluster"
 
 >Upgrading your cluster&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrading-kubelet"
 
 >Upgrading Kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrading-device-plugins"
 
 >Upgrading Device Plugins&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Different protocols in the same service definition with type=loadbalancer</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1435/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1435/</guid><description>&lt;h1 id="kep-1435-different-protocols-in-the-same-service-definition-with-typeloadbalancer">KEP-1435: different protocols in the same service definition with type=loadbalancer&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alibaba"
 
 >Alibaba&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aws"
 
 >AWS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#azure"
 
 >Azure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#digitalocean"
 
 >DigitalOcean&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gce"
 
 >GCE&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ibm-cloud"
 
 >IBM Cloud&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#openstack"
 
 >OpenStack&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#oracle-cloud"
 
 >Oracle Cloud&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tencent-cloud"
 
 >Tencent Cloud&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#billing-perspective"
 
 >Billing perspective&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-change-and-upgradedowngrade-situations"
 
 >API change and upgrade/downgrade situations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#option-control-alternatives---considered-alternatives"
 
 >Option Control Alternatives - considered alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#annotation-in-the-service-definition"
 
 >Annotation in the Service definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#merging-services-in-cpi"
 
 >Merging Services in CPI&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#the-selected-solution-for-the-option-control"
 
 >The selected solution for the option control&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy"
 
 >Kube-proxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-graduation"
 
 >Alpha Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#removing-a-deprecated-flag"
 
 >Removing a Deprecated Flag&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#downgrade-strategy"
 
 >Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This feature enables the creation of a LoadBalancer Service that has different port definitions with different protocols.&lt;/p></description></item><item><title>Disable AcceleratorUsage Metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1867/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1867/</guid><description>&lt;h1 id="disable-acceleratorusage-metrics">Disable AcceleratorUsage Metrics&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-graduation"
 
 >Alpha Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://github.com/kubernetes/enhancements/issues/1867"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP outlines the process to deprecate the Accelerator Metrics collected by Kubelet.&lt;/p></description></item><item><title>Disable cAdvisor json Metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2129/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2129/</guid><description>&lt;h1 id="disable-cadvisor-json-metrics">Disable CAdvisor Json Metrics&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ga-graduation"
 
 >GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://github.com/kubernetes/enhancements/issues/1867"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP outlines the process to deprecate cAdvisor json metrics collected by Kubelet.&lt;/p></description></item><item><title>Discover cgroup driver from CRI</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4033/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4033/</guid><description>&lt;h1 id="kep-4033-discover-cgroup-driver-from-cri">&lt;a href="https://github.com/kubernetes/enhancements/issues/4033"
 
 target="_blank" rel="noopener">KEP-4033&lt;/a>
: Discover cgroup driver from CRI&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-api"
 
 >CRI API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet"
 
 >Kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Discuss Forum Guidelines</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/discuss/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/discuss/</guid><description>&lt;ul>
&lt;li>&lt;a href="#code-of-conduct"
 
 >Code of conduct&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#privacy-policy"
 
 >Privacy Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admins"
 
 >Admins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#general-communication-guidelines"
 
 >General communication guidelines&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pm-private-message-conversations"
 
 >PM (Private Message) conversations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#escalating-andor-reporting-a-problem"
 
 >Escalating and/or reporting a problem&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#moderation"
 
 >Moderation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#moderator-expectations-and-guidelines"
 
 >Moderator expectations and guidelines&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-moderator-responsibilities"
 
 >Other moderator responsibilities&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ingest-queue"
 
 >Ingest queue&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#new-category-requests"
 
 >New category requests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#requesting-a-general-category"
 
 >Requesting a general category&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#requesting-a-sig-wg-or-sub-project-category"
 
 >Requesting a SIG, WG, or sub-project category&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#requesting-a-regional-category"
 
 >Requesting a regional category&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>Discuss (discuss.kubernetes.io), is the Kubernetes community forum backed by
the &lt;a href="https://discourse.org"
 
 target="_blank" rel="noopener">Discourse&lt;/a>
 discussion platform. It serves as the primary communication
platform for Kubernetes users; replacing the kubernetes-users mailing list in
September 2018.&lt;/p></description></item><item><title>Downward API HugePages</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2053/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2053/</guid><description>&lt;h1 id="kep-1967-downward-api-hugepages">KEP-1967: Downward API HugePages&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Admin Access</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5018/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5018/</guid><description>&lt;h1 id="kep-5018-dra-adminaccess-for-resourceclaims-and-resourceclaimtemplates">&lt;a href="https://github.com/kubernetes/enhancements/issues/5018"
 
 target="_blank" rel="noopener">KEP-5018&lt;/a>
: DRA: AdminAccess for ResourceClaims and ResourceClaimTemplates&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#draadminaccess-overview"
 
 >DRAAdminAccess Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workflow"
 
 >Workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rest-storage-changes"
 
 >REST Storage Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-controller-manager-changes"
 
 >Kube-controller-manager Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-scheduler-changes"
 
 >Kube-scheduler Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourcequota"
 
 >ResourceQuota&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone /
release&lt;/em>.&lt;/p></description></item><item><title>DRA Consumable Capacity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5075/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5075/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5075-dra-consumable-capacity">KEP-5075: DRA Consumable Capacity&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-enhancement"
 
 >API enhancement&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resourceslicespecs-device"
 
 >ResourceSliceSpec&amp;rsquo;s Device&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#celdeviceselectors-description"
 
 >CELDeviceSelector&amp;rsquo;s description&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaimspecs-devicerequest"
 
 >ResourceClaimSpec&amp;rsquo;s DeviceRequest&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaimstatuss-devicerequestallocationresult"
 
 >ResourceClaimStatus&amp;rsquo;s DeviceRequestAllocationResult&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduling-enhancement"
 
 >Scheduling enhancement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handles-device-updates-for-allowmultipleallocations-and-requestpolicy"
 
 >Handles Device Updates for &lt;code>AllowMultipleAllocations&lt;/code> and &lt;code>RequestPolicy&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deviceclasss-selector"
 
 >DeviceClass&amp;rsquo;s selector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaim-with-capacity-requirement"
 
 >ResourceClaim with capacity requirement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaims-request"
 
 >ResourceClaim&amp;rsquo;s request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaims-status"
 
 >ResourceClaim&amp;rsquo;s status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaim-with-distinctattribute"
 
 >ResourceClaim with distinctAttribute&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#identifying-multi-allocatable-property-of-device"
 
 >Identifying multi-allocatable Property of Device&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#selectingdeselecting-multi-allocatable-devices"
 
 >Selecting/Deselecting multi-allocatable Devices&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preventing-same-multi-allocatable-device-from-being-allocated-multiple-times-in-the-same-claim"
 
 >Preventing Same multi-allocatable Device from Being Allocated Multiple Times in the Same Claim&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#identifying-shared-device-in-the-device-status"
 
 >Identifying shared device in the device status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defining-a-valid-range-for-requestpolicy"
 
 >Defining a valid range for RequestPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-words"
 
 >Alternative words&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-possibilities"
 
 >Future Possibilities&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#requestpolicy"
 
 >RequestPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#capacityrequirements"
 
 >CapacityRequirements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Derived Attributes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6080/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6080/</guid><description>&lt;h1 id="kep-6080-dra-derived-attributes">KEP-6080: DRA Derived Attributes&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#end-user-rigidity"
 
 >End-User Rigidity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#attribute-standardization-bottleneck"
 
 >Attribute Standardization Bottleneck&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-manifest-example-gpu--nic-numa-alignment"
 
 >Core Manifest Example: GPU &amp;amp; NIC NUMA Alignment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#custom-multi-device-grouping-gpu--nic--cpu"
 
 >Custom Multi-Device Grouping (GPU + NIC + CPU)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#substring--regex-topology-extraction"
 
 >Substring / Regex Topology Extraction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dynamic-capacity-tiering"
 
 >Dynamic Capacity Tiering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implicit-hardware-alignment-via-naming-conventions"
 
 >Implicit Hardware Alignment via Naming Conventions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kep-5254-comparison-dra-constraints-with-cel"
 
 >KEP-5254 Comparison (DRA: Constraints with CEL)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-kep-5491-list-types-for-attributes"
 
 >Interaction with KEP-5491 (List Types for Attributes)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#naming-and-override-semantics-for-derived-attributes"
 
 >Naming and Override Semantics for Derived Attributes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel-environment--validation"
 
 >CEL Environment &amp;amp; Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-plugin-implementation"
 
 >Scheduler Plugin Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-considerations"
 
 >Future Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#derived-attributes-in-device-selectors"
 
 >Derived Attributes in Device Selectors&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Device Attributes Downward API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5304/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5304/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5304-dra-device-attributes-downward-api">KEP-5304: DRA Device Attributes Downward API&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#framework-implementation"
 
 >Framework Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#attributes-json-generation"
 
 >Attributes JSON Generation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cleanup-nodeunprepareresources"
 
 >Cleanup (NodeUnprepareResources)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#driver-integration"
 
 >Driver Integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workload-discovery"
 
 >Workload Discovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#schema-version-handling"
 
 >Schema version handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metadata-lifecycle"
 
 >Metadata Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#usage-examples"
 
 >Usage Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-1-physical-gpu-passthrough-kubevirt"
 
 >Example 1: Physical GPU Passthrough (KubeVirt)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-2-network-device-sr-iov--dpdk"
 
 >Example 2: Network Device (SR-IOV / DPDK)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-maturity-and-rollout"
 
 >Feature Maturity and Rollout&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v136"
 
 >Alpha (v1.36)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v136-1"
 
 >Alpha (v1.36)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-1"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-1"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-downward-api-with-resourcesliceattributeselector-original-design"
 
 >Alternative 1: Downward API with ResourceSliceAttributeSelector (Original Design)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-dra-driver-extends-cdi-with-attributes-driver-specific"
 
 >Alternative 2: DRA Driver Extends CDI with Attributes (Driver-Specific)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-add-method-to-draplugin-interface"
 
 >Alternative 3: Add Method to DRAPlugin Interface&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Device Binding Conditions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5007/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5007/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5007-dra-device-binding-conditions">&lt;a href="https://github.com/kubernetes/enhancements/issues/5007"
 
 target="_blank" rel="noopener">KEP-5007&lt;/a>
: DRA: Device Binding Conditions&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prebind-process"
 
 >PreBind Process&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-attachment-failures"
 
 >Handling attachment failures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-asynchronous-device-initialization"
 
 >Story 1: Asynchronous Device Initialization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-fabric-attached-gpu-allocation"
 
 >Story 2: Fabric-Attached GPU Allocation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-gang-scheduling-with-deferred-binding"
 
 >Story 3: Gang Scheduling with Deferred Binding&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dra-scheduler-plugin-design-overview"
 
 >DRA Scheduler Plugin Design Overview&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#device-enhancements"
 
 >Device Enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#devicerequestallocationresult-enhancements"
 
 >DeviceRequestAllocationResult Enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-dra-plugin-modifications"
 
 >Scheduler DRA Plugin Modifications&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prebind-phase-timeout"
 
 >PreBind Phase Timeout&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#timeout-behavior-for-bindingconditions"
 
 >Timeout Behavior for BindingConditions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternative-approach"
 
 >Alternative approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Device Compatibility Groups</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5963/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5963/</guid><description>&lt;h1 id="kep-5963-dra-device-compatibility-groups">KEP-5963: DRA Device Compatibility Groups&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#compatibilitygroups-assignment"
 
 >CompatibilityGroups Assignment&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-1-what-the-existing-api-enables"
 
 >Example 1: What the existing API enables&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-2-how-the-existing-api-does-not-solve-the-problem"
 
 >Example 2: How the existing API does not solve the problem&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-3-how-the-proposed-api-solves-the-problem"
 
 >Example 3: How the proposed API solves the problem&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-4-multiple-compatible-groups-with-an-incompatible-group"
 
 >Example 4: Multiple compatible groups with an incompatible group&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduler-changes"
 
 >Scheduler Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-multi-request-claims-and-device-constraints"
 
 >Interaction with Multi-Request Claims and Device Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#driver-responsibilities"
 
 >Driver Responsibilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance-tests"
 
 >Performance tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-workaround-driver-level-preparation-failure"
 
 >Current Workaround: Driver-level Preparation Failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#inverted-naming-mutualexclusiongroups"
 
 >Inverted naming: &lt;code>mutualExclusionGroups&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Extended Resource</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5004/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5004/</guid><description>&lt;h1 id="kep-5004-dra-handle-extended-resource-requests-via-dra-driver">&lt;a href="https://github.com/kubernetes/enhancements/issues/5004"
 
 target="_blank" rel="noopener">KEP-5004&lt;/a>
: DRA: Handle extended resource requests via DRA Driver&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#device-class-api"
 
 >Device Class API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implicit-extended-resource-name"
 
 >Implicit Extended Resource Name&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resource-claim-api"
 
 >Resource Claim API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-api"
 
 >Pod API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-quota"
 
 >Resource Quota&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduling-for-extended-resource-backed-by-dra"
 
 >Scheduling for Extended Resource backed by DRA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#eventstoregister"
 
 >EventsToRegister&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prefilter"
 
 >PreFilter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#filter"
 
 >Filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#postfilter"
 
 >PostFilter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reserve"
 
 >Reserve&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unreserve"
 
 >Unreserve&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prebind"
 
 >Prebind&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failure-handling"
 
 >Failure handling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#actuation-for-extended-resource-backed-by-dra"
 
 >Actuation for Extended Resource backed by DRA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-autoscaler-integration"
 
 >Cluster Autoscaler integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Node Allocatable Resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5517/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5517/</guid><description>&lt;h1 id="kep-5517-dra-node-allocatable-resources">KEP-5517: DRA: Node Allocatable Resources&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-problem"
 
 >Core Problem&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube-scheduler-background"
 
 >Kube-Scheduler Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-resource-enforcement-background"
 
 >Node Resource Enforcement Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cgroup-enforcement"
 
 >Cgroup Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#oom-score-adjustments"
 
 >OOM Score Adjustments&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#conceptual-mapping-pod-spec-requests-and-limits-with-dra"
 
 >Conceptual Mapping: Pod Spec Requests and Limits with DRA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#device-api-extensions"
 
 >Device API Extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-api-changes"
 
 >Pod API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resource-representation-examples"
 
 >Resource Representation Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-validation"
 
 >API Validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-scheduler-changes"
 
 >Kube-Scheduler Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resource-calculation"
 
 >Resource Calculation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-pod-level-resources"
 
 >Integration with Pod Level Resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-shared-claims"
 
 >Handling Shared Claims&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multiple-claims-per-container"
 
 >Multiple Claims per Container&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unreferenced-claims"
 
 >Unreferenced Claims&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preemption"
 
 >Preemption&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#node-resource-enforcement-and-isolation"
 
 >Node Resource Enforcement and Isolation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scope"
 
 >Scope&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#key-principles"
 
 >Key Principles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cgroup-enforcement-1"
 
 >Cgroup Enforcement&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-level-cgroup-settings"
 
 >Pod-Level Cgroup Settings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-level-cgroup-settings"
 
 >Container-Level Cgroup Settings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#qos-class-mismatch-risks"
 
 >QoS Class Mismatch Risks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-pod-level-resources"
 
 >Handling Pod Level Resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-missing-limits"
 
 >Handling Missing Limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-kubelet-disabling-quota-with-exclusive-cpus"
 
 >Handling Kubelet Disabling Quota with Exclusive CPUs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#enforcement-use-case-walkthroughs"
 
 >Enforcement Use Case Walkthroughs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#oom-score-adjustment-with-dra"
 
 >OOM Score Adjustment with DRA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-memory-qos"
 
 >Integration with Memory QoS&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-memory-qos-settings"
 
 >Current Memory QOS settings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-dra"
 
 >Integration with DRA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-status-updates"
 
 >Pod Status Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-internal-resource-states"
 
 >Kubelet Internal Resource States&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-in-place-pod-vertical-scaling"
 
 >Integration with In-Place Pod Vertical Scaling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet-admission-control"
 
 >Kubelet Admission Control&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-enhancements"
 
 >Future Enhancements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube-scheduler-scoring-and-resource-quota"
 
 >Kube-Scheduler Scoring and Resource Quota&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scoring"
 
 >Scoring&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#quota"
 
 >Quota&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pass-allocation-details-from-driver-to-kubelet"
 
 >Pass Allocation Details from Driver to Kubelet&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes-1"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-cgroup-enforcement"
 
 >Node Cgroup Enforcement&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha2"
 
 >Alpha2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deviceclass-api-extension-for-nodeallocatableresourcemappings"
 
 >DeviceClass API Extension for NodeAllocatableResourceMappings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#explicit-accountingpolicy-in-deviceclass-and-podstatus"
 
 >Explicit AccountingPolicy in DeviceClass and PodStatus&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-model-for-pod-level-resources--dra"
 
 >Alternative Model for pod level resources + DRA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-kubelet-cgroup-enforcement"
 
 >1. Kubelet Cgroup Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-kube-scheduler-changes"
 
 >2. Kube-Scheduler Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enforcement-use-case-walkthroughs-with-this-model"
 
 >Enforcement Use Case Walkthroughs with this model&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-pod-level-request-and-limit--dra-claim-single-container-references-claim"
 
 >1. pod level Request and Limit + DRA Claim (Single container references claim)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-pod-level-request-and-limit--fungible-dra-claim-prioritized-list"
 
 >2. pod level Request and Limit + Fungible DRA Claim (Prioritized List)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Optional Node Preparation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5945/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5945/</guid><description>&lt;h1 id="kep-5945-dra-optional-node-preparation">KEP-5945: DRA Optional Node Preparation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deploying-controller-managed-resources-without-node-local-drivers"
 
 >Deploying controller-managed resources without node-local drivers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-server-handling-and-ratcheting-validation"
 
 >API Server Handling and Ratcheting Validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#allocator-changes"
 
 >Allocator Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-changes"
 
 >Kubelet Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-declared-features-integration"
 
 >Node Declared Features Integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-deviceclass-level-configuration"
 
 >Alternative 1: DeviceClass-level configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-claim-level-declaration"
 
 >Alternative 2: Claim-level declaration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-kubelet-auto-discovery--grpc-probe-with-timeout"
 
 >Alternative 3: Kubelet Auto-Discovery / gRPC probe with timeout&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-4-centralized-catch-all-no-op-plugin"
 
 >Alternative 4: Centralized catch-all no-op plugin&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Partitionable Devices</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4815/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4815/</guid><description>&lt;h1 id="kep-4815-dra-add-support-for-partitionable-devices">&lt;a href="https://github.com/kubernetes/enhancements/issues/4815"
 
 target="_blank" rel="noopener">KEP-4815&lt;/a>
: DRA: Add support for partitionable devices&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dynamic-allocation-of-multi-instance-gpus-mig-on-nvidia-hardware"
 
 >Dynamic allocation of Multi-Instance GPUs (MIG) on NVIDIA hardware&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multi-host-tensor-processing-unit-tpu-scheduling"
 
 >Multi-host Tensor Processing Unit (TPU) scheduling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#partial-scheduling-of-pods-for-multi-host-devices"
 
 >Partial scheduling of pods for multi-host devices&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-moved-from-admission-to-runtime"
 
 >Validation moved from admission to runtime&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#limits"
 
 >Limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future-options"
 
 >Future options&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#defining-device-partitions-in-terms-of-consumed-capacity-in-a-device"
 
 >Defining device partitions in terms of consumed capacity in a device&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defining-multi-host-devices"
 
 >Defining multi-host devices&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multi-host-scheduling-limitations"
 
 >Multi-host scheduling limitations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#putting-it-all-together-for-the-mig-use-case"
 
 >Putting it all together for the MIG use-case&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-dra-for-the-multi-host-use-case"
 
 >Using DRA for the multi-host use-case&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Prioritized List</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4816/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4816/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4816-dra-prioritized-alternatives-in-device-requests">&lt;a href="https://github.com/kubernetes/enhancements/issues/4816"
 
 target="_blank" rel="noopener">KEP-4816&lt;/a>
: DRA: Prioritized Alternatives in Device Requests&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resource-quota"
 
 >Resource Quota&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scheduler-implementation"
 
 >Scheduler Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scoring"
 
 >Scoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#higher-level-indirection"
 
 >Higher Level Indirection&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Resource Availability Visibility</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5677/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5677/</guid><description>&lt;h1 id="kep-5677-dra-resource-availability-visibility">KEP-5677: DRA Resource Availability Visibility&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#architecture"
 
 >Architecture&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-cluster-administrator-checking-pool-status"
 
 >Story 1: Cluster Administrator Checking Pool Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-developer-debugging-resource-allocation"
 
 >Story 2: Developer Debugging Resource Allocation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-automation-and-monitoring"
 
 >Story 3: Automation and Monitoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scaling-risks"
 
 >Scaling Risks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operational-risks"
 
 >Operational Risks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#security-considerations"
 
 >Security Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rbac"
 
 >RBAC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#information-exposure"
 
 >Information Exposure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security-risks"
 
 >Security Risks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-security"
 
 >Controller Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-consideration-namespace-scoped-requests"
 
 >Future Consideration: Namespace-scoped Requests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-definition"
 
 >API Definition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resourcepoolstatusrequest-object"
 
 >ResourcePoolStatusRequest Object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#spec-fields"
 
 >Spec Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-fields"
 
 >Status Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#companion-api-change-resourceslicespecpartitiontypeattribute"
 
 >Companion API Change: &lt;code>ResourceSlice.Spec.PartitionTypeAttribute&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#controller-implementation"
 
 >Controller Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#controller-in-kcm"
 
 >Controller in KCM&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#one-time-processing"
 
 >One-time Processing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#incomplete-pool-handling-and-requeue"
 
 >Incomplete-Pool Handling and Requeue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reusing-existing-informers"
 
 >Reusing Existing Informers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#partitionable--consumable-device-accounting"
 
 >Partitionable &amp;amp; Consumable Device Accounting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#devices-that-are-both-partitionable-and-consumable"
 
 >Devices That Are Both Partitionable and Consumable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ttl-based-cleanup"
 
 >TTL-Based Cleanup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-rbac"
 
 >Controller RBAC&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubectl-integration"
 
 >kubectl Integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-136"
 
 >Alpha (1.36)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-137"
 
 >Alpha (1.37)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-out-of-tree-aggregated-api-server"
 
 >Alternative 1: Out-of-tree Aggregated API Server&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-synchronous-review-pattern"
 
 >Alternative 2: Synchronous Review Pattern&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-status-in-resourceslice"
 
 >Alternative 3: Status in ResourceSlice&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-4-client-side-only"
 
 >Alternative 4: Client-side only&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA ResourceSlice Mixins</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5234/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5234/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5234-dra-resourceslice-mixins">KEP-5234: DRA: ResourceSlice Mixins&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resourceslice-resources-will-be-harder-to-understand"
 
 >ResourceSlice resources will be harder to understand&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flatting-of-resourceslices-might-be-needed-by-all-tools-using-the-api"
 
 >Flatting of ResourceSlices might be needed by all tools using the API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mixins-and-more-counters-might-worsen-worst-case-scheduling"
 
 >Mixins and more counters might worsen worst-case scheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limits"
 
 >Limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA Shared Consumable Capacity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5941/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5941/</guid><description>&lt;h1 id="kep-nnnn-dra-shared-consumable-capacities-across-related-devices">KEP-NNNN: DRA Shared Consumable Capacities Across Related Devices&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-sr-iov-bandwidth-as-a-shared-parent-resource"
 
 >Story 1: SR-IOV bandwidth as a shared parent resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-cpumemory-resource-alignment-via-pcie-root-grouping"
 
 >Story 2: CPU/Memory resource alignment via PCIE root grouping&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-additions"
 
 >API additions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allocation-behavior"
 
 >Allocation behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#recommended-rollout"
 
 >Recommended Rollout&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> e2e tests for all Beta API operations (endpoints)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Ensure GA e2e tests meet requirements for &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Minimum two week window for GA e2e tests to prove flake free&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Graduation criteria is in place
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> (R) all GA endpoints must be hit by &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
 within one minor version of promotion to GA&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review approved&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Implementation history section is up to date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation, such as design docs, SIG meeting notes, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Dynamic Resource Allocation (DRA) currently supports:&lt;/p></description></item><item><title>DRA Structured Parameters</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4381/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4381/</guid><description>&lt;h1 id="kep-4381-dynamic-resource-allocation-with-structured-parameters">&lt;a href="https://github.com/kubernetes/enhancements/issues/4381"
 
 target="_blank" rel="noopener">KEP-4381&lt;/a>
: Dynamic Resource Allocation with Structured Parameters&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cluster-add-on-development"
 
 >Cluster add-on development&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-configuration"
 
 >Cluster configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#partial-gpu-allocation"
 
 >Partial GPU allocation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#publishing-node-resources"
 
 >Publishing node resources&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#devices-as-a-named-list"
 
 >Devices as a named list&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#using-structured-parameters"
 
 >Using structured parameters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#communicating-allocation-to-the-dra-driver"
 
 >Communicating allocation to the DRA driver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-not-used"
 
 >Feature not used&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compromised-node"
 
 >Compromised node&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compromised-kubelet-plugin"
 
 >Compromised kubelet plugin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-permissions-and-quotas"
 
 >User permissions and quotas&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#usability"
 
 >Usability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#components"
 
 >Components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#state-and-communication"
 
 >State and communication&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sharing-a-single-resourceclaim"
 
 >Sharing a single ResourceClaim&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ephemeral-vs-persistent-resourceclaims-lifecycle"
 
 >Ephemeral vs. persistent ResourceClaims lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduled-pods-with-unallocated-or-unreserved-claims"
 
 >Scheduled pods with unallocated or unreserved claims&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-non-graceful-node-shutdowns"
 
 >Handling non graceful node shutdowns&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resourcek8sio"
 
 >resource.k8s.io&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resourceslice"
 
 >ResourceSlice&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deviceclass"
 
 >DeviceClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allocation-result"
 
 >Allocation result&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaimtemplate"
 
 >ResourceClaimTemplate&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#core"
 
 >core&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod"
 
 >Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourcequota"
 
 >ResourceQuota&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-controller-manager"
 
 >kube-controller-manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-scheduler"
 
 >kube-scheduler&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#eventstoregister"
 
 >EventsToRegister&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preenqueue"
 
 >PreEnqueue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pre-filter"
 
 >Pre-filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#filter"
 
 >Filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#post-filter"
 
 >Post-filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reserve"
 
 >Reserve&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prebind"
 
 >PreBind&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unreserve"
 
 >Unreserve&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet"
 
 >kubelet&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#communication-between-kubelet-and-kubelet-plugin"
 
 >Communication between kubelet and kubelet plugin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew"
 
 >Version skew&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#managing-resources"
 
 >Managing resources&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#nodeprepareresource"
 
 >NodePrepareResource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodeunprepareresources"
 
 >NodeUnprepareResources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#simulation-with-ca"
 
 >Simulation with CA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#publishing-resource-information-in-node-status"
 
 >Publishing resource information in node status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#injecting-vendor-logic-into-ca"
 
 >Injecting vendor logic into CA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaimtemplate-1"
 
 >ResourceClaimTemplate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reusing-volume-support-as-is"
 
 >Reusing volume support as-is&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extend-volume-support"
 
 >Extend volume support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extend-device-plugins"
 
 >Extend Device Plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourcedriver"
 
 >ResourceDriver&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA: admin-controlled device attributes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5027/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5027/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5027-dra-admin-controlled-device-attributes">&lt;a href="https://github.com/kubernetes/enhancements/issues/5027"
 
 target="_blank" rel="noopener">KEP-5027&lt;/a>
: DRA: admin-controlled device attributes&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#merging-resourceslicepatches-and-resourceslices"
 
 >Merging ResourceSlicePatches and ResourceSlices&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#admin-intent-in-resourceslice"
 
 >Admin-intent in ResourceSlice&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storing-result-of-patching-in-resourceslice"
 
 >Storing result of patching in ResourceSlice&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA: ClusterResourceClaimTemplate</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5978/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5978/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5978-dra-clusterresourceclaimtemplate">KEP-5978: DRA: ClusterResourceClaimTemplate&lt;/h1>
&lt;p>&lt;strong>NOTE:&lt;/strong> This KEP was withdrawn in favor of &lt;a href="#out-of-tree-alternative"
 
 >the Out-of-Tree Synchronization Controller alternative&lt;/a>
.&lt;/p></description></item><item><title>DRA: device taints and tolerations</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5055/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5055/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5055-dra-device-taints-and-tolerations">&lt;a href="https://github.com/kubernetes/enhancements/issues/5055"
 
 target="_blank" rel="noopener">KEP-5055&lt;/a>
: DRA: device taints and tolerations&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#degraded-devices"
 
 >Degraded Devices&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#external-health-monitoring"
 
 >External Health Monitoring&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#safe-pod-eviction"
 
 >Safe Pod Eviction&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#extending-node-taint-controller"
 
 >Extending node taint controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tolerating-taints-in-pods"
 
 >Tolerating taints in pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storing-result-of-patching-in-resourceslice"
 
 >Storing result of patching in ResourceSlice&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA: List Types for Attributes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5491/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5491/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5491-dra-list-types-for-attributes">KEP-5491: DRA: List Types for Attributes&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introduce-typed-list-in-deviceattribute"
 
 >Introduce typed-&lt;code>list&lt;/code> in &lt;code>DeviceAttribute&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introduce-include-function-in-cel"
 
 >Introduce &lt;code>.include&lt;/code> function in CEL&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-hardware-topological-aligned-cpus--gpus--nics"
 
 >Story 1: Hardware Topological Aligned CPUs &amp;amp; GPUs &amp;amp; NICs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#go-type-definitions"
 
 >Go Type Definitions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deviceattribute"
 
 >&lt;code>DeviceAttribute&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-for-evaluating-constraints"
 
 >Implementation (for evaluating constraints)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#just-support-formatted-string-list-instead-of-introducing-list-type"
 
 >Just support formatted string list instead of introducing &lt;code>list&lt;/code> type&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introduce-matchsemanticsdistinctsemantics-field-for-flexibledeclarative-match"
 
 >Introduce &lt;code>matchSemantics/distinctSemantics&lt;/code> field for flexible/declarative match&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#matchsemantics-field"
 
 >&lt;code>matchSemantics&lt;/code> field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#distinctsemantics"
 
 >`distinctSemantics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proscons"
 
 >Pros/Cons&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#unified-semantics-field-instead-of-matchsemanticsdistinctsemantics"
 
 >Unified &lt;code>semantics&lt;/code> field instead of &lt;code>matchSemantics&lt;/code>/&lt;code>distinctSemantics&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA: ResourceClaim Support for Workloads</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5729/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5729/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [X] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [X] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [X] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [X] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [X] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [X] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [X] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5729-dra-resourceclaim-support-for-workloads">KEP-5729: DRA: ResourceClaim Support for Workloads&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sharing-a-resourceclaim-among-many-pods"
 
 >Sharing a ResourceClaim among many Pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#shareable-and-replicable-resourceclaims"
 
 >Shareable and replicable ResourceClaims&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integrating-dra-with-high-level-apis"
 
 >Integrating DRA with high-level APIs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#higher-memory-usage-by-the-device_taint_eviction-controller"
 
 >Higher memory usage by the device_taint_eviction controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-number-of-pods-that-can-share-a-resourceclaim-will-not-be-unlimited"
 
 >The number of Pods that can share a ResourceClaim will not be unlimited&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deallocation"
 
 >Deallocation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#finding-pods-using-a-resourceclaim"
 
 >Finding Pods Using a ResourceClaim&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workload"
 
 >Workload&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podgroup"
 
 >PodGroup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod"
 
 >Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resourceclaim-lifecycle"
 
 >ResourceClaim Lifecycle&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#create"
 
 >Create&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#delete"
 
 >Delete&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allocate"
 
 >Allocate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deallocate"
 
 >Deallocate&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#determining-allowed-pods-for-a-resourceclaim"
 
 >Determining Allowed Pods for a ResourceClaim&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#finding-pods-using-a-resourceclaim-1"
 
 >Finding Pods Using a ResourceClaim&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#increase-the-size-limit-on-the-statusreservedfor-field"
 
 >Increase the size limit on the &lt;code>status.reservedFor&lt;/code> field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-resourceclaims-to-be-reserved-for-any-object"
 
 >Allow ResourceClaims to be reserved for any object&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>DRA: Standard numaNode Device Attribute</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6072/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6072/</guid><description>&lt;h1 id="kep-6072-dra-standard-numanode-device-attribute">KEP-6072: DRA: Standard &lt;code>numaNode&lt;/code> Device Attribute&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#standard-attribute-definition"
 
 >Standard Attribute Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#list-construction-algorithm"
 
 >List Construction Algorithm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#helper-functions"
 
 >Helper Functions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-not-pcieroot-alone"
 
 >Why Not pcieRoot Alone&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#current-driver-attribute-names"
 
 >Current Driver Attribute Names&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-ml-engineer-deploys-inference-pod"
 
 >Story 1: ML Engineer deploys inference pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-platform-admin-partitions-gpu-node"
 
 >Story 2: Platform admin partitions GPU node&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-cross-quadrant-io-co-placement-under-nps4"
 
 >Story 3: Cross-quadrant I/O co-placement under NPS4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#helper-implementation"
 
 >Helper Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#platform-scope"
 
 >Platform scope&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#driver-changes"
 
 >Driver Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#choosing-the-list-or-scalar-form"
 
 >Choosing the list or scalar form&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#consumer-expectations"
 
 >Consumer Expectations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#component-skew-during-a-rolling-upgrade"
 
 >Component skew during a rolling upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#decoupling-from-kep-5491-graduation"
 
 >Decoupling from KEP-5491 graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#do-nothing--use-vendor-specific-names"
 
 >Do nothing — use vendor-specific names&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-dranetnumanode-as-the-informal-convention"
 
 >Use dra.net/numaNode as the informal convention&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#numanode-as-a-scalar-int"
 
 >numaNode as a scalar int&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#separate-numanode-int-and-localnumanodes-list"
 
 >Separate numaNode (int) and localNUMANodes (list)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Dry-run</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/576/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/576/</guid><description>&lt;h1 id="kubernetes-dry-run">Kubernetes Dry-run&lt;/h1>
&lt;p>Dry-run is a new feature that we intend to implement in the api-server. The goal
is to be able to send requests to modifying endpoints, and see if the request
would have succeeded (admission chain, validation, merge conflicts, &amp;hellip;) and/or
what would have happened without having it actually happen. The response body
for the request should be as close as possible to a non dry-run response.&lt;/p>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#removing-a-deprecated-flag"
 
 >Removing a deprecated flag&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#specifying-dry-run"
 
 >Specifying dry-run&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admission-controllers"
 
 >Admission controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generated-values"
 
 >Generated values&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storage"
 
 >Storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl"
 
 >kubectl&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Check these off as they are completed for the Release Team to track. These checklist items &lt;em>must&lt;/em> be updated for the enhancement to be released.&lt;/p></description></item><item><title>DSR and Overlay support in Windows kube-proxy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5100/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5100/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5100-retroactive-dsr-and-overlay-support-in-windows-kube-proxy">KEP-5100: [RETROACTIVE] DSR and Overlay support in Windows kube-proxy&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dsr-enablement"
 
 >DSR Enablement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#overlay-support"
 
 >Overlay support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Dual Stack API Server</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2438/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2438/</guid><description>&lt;h1 id="kep-2438-dual-stack-api-server">KEP-2438: Dual-Stack API Server&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1---external-clients"
 
 >Story 1 - External Clients&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2---apiserver-tooling"
 
 >Story 2 - APIServer Tooling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3---wrong-single-stack-internal-clients"
 
 >Story 3 - Wrong-Single-Stack Internal Clients&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube-apiserver-internals"
 
 >kube-apiserver internals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-apiserver-command-line-arguments"
 
 >kube-apiserver Command-Line Arguments&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#default--automatic-behavior"
 
 >Default / automatic behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#--bind-address"
 
 >&lt;code>&amp;ndash;bind-address&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#--advertise-address"
 
 >&lt;code>&amp;ndash;advertise-address&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-environment--client-go"
 
 >Pod environment / client-go&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#service-and-endpointslice-reconciling"
 
 >Service and EndpointSlice Reconciling&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-behavior"
 
 >Current Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-behavior"
 
 >New behavior&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Dynamic Cardinality Enforcement</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2305/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2305/</guid><description>&lt;h1 id="kep-2305-dynamic-cardinality-enforcement">KEP-2305: Dynamic Cardinality Enforcement&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Dynamic Resize of Memory-Backed Volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6030/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6030/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-6030-dynamic-resize-of-memory-backed-volumes">KEP-6030: Dynamic Resize of Memory-Backed Volumes&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#oom-kills"
 
 >OOM-kills&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-status-fields-and-state-mapping"
 
 >New Status Fields and State Mapping&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-validation-and-restrictions"
 
 >API Validation and Restrictions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resize-restart-policy"
 
 >Resize Restart Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#atomic-resize-principle"
 
 >Atomic Resize Principle&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#component-interaction--design-flow"
 
 >Component Interaction &amp;amp; Design Flow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#1-usercontrol-plane"
 
 >1. User/Control Plane&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-kubelet-pod-workers--allocation"
 
 >2. Kubelet Pod Workers &amp;amp; Allocation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-coordination--actuation-kuberuntimemanager"
 
 >3. Coordination &amp;amp; Actuation (KuberuntimeManager)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-observation--feedback-loop"
 
 >4. Observation &amp;amp; Feedback Loop&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-coordination-volume-and-cgroup-ordering-of-updates"
 
 >Resource Coordination: Volume and Cgroup Ordering of Updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background-the-enforcement-divergence"
 
 >Background: The Enforcement Divergence&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#memory-attribution--cgroup-limits"
 
 >Memory Attribution &amp;amp; cgroup Limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sharing-volumes-between-multiple-containers"
 
 >Sharing Volumes Between Multiple Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#init-container-lifecycles--handoff"
 
 >Init Container Lifecycles &amp;amp; Handoff&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#priority-of-enforcement"
 
 >Priority of Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#order-of-actuation"
 
 >Order of Actuation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#asynchronous-updates-or-opposite-directions"
 
 >Asynchronous Updates or Opposite Directions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#actuation-priority-matrix"
 
 >Actuation Priority Matrix&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#role-of-the-allocation-manager-and-kuberuntime-manager"
 
 >Role of the Allocation Manager and Kuberuntime Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volume-manager-interface"
 
 >Volume Manager interface&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-role-of-the-container-runtime"
 
 >The Role of the Container Runtime&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#shrinkage-safety"
 
 >Shrinkage Safety&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#emptydir-size-limit-monitoring-and-eviction"
 
 >emptyDir Size Limit Monitoring and Eviction&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-ephemeral-storage-resource-accounting-and-eviction"
 
 >Interaction with Ephemeral Storage: Resource Accounting and Eviction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-secrets-projected-volumes-and-downwardapi"
 
 >Interaction with Secrets, Projected Volumes, and DownwardAPI&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configmaps"
 
 >ConfigMaps&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-1"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-1"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-vs-api-server"
 
 >Kubelet vs API Server&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volume-reconciler-detects-changes-async-approach"
 
 >Volume Reconciler detects changes (Async approach)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#moving-emptydir-handling-entirely-to-kuberuntimemanager"
 
 >Moving &lt;code>emptyDir&lt;/code> handling entirely to &lt;code>KuberuntimeManager&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restricting-sizelimit-to-not-exceed-memory-limits"
 
 >Restricting &lt;code>sizeLimit&lt;/code> to not exceed memory limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-atomic-handling-of-volume-and-resource-resizes"
 
 >Non-atomic handling of volume and resource resizes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>dynamic resource allocation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3063/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3063/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.

- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.

- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.

- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.

- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).

- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.

- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3063-dynamic-resource-allocation-with-control-plane-controller">&lt;a href="https://github.com/kubernetes/enhancements/issues/3063"
 
 target="_blank" rel="noopener">KEP-3063&lt;/a>
: Dynamic Resource Allocation with Control Plane Controller&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#network-attached-accelerator"
 
 >Network-attached accelerator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#combined-setup-of-different-hardware-functions"
 
 >Combined setup of different hardware functions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resourceclaim-extension"
 
 >ResourceClaim extension&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resourceclaimstatus-extension"
 
 >ResourceClaimStatus extension&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deviceclass-extensions"
 
 >DeviceClass extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-parameters-and-results"
 
 >Custom parameters and results&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podschedulingcontext"
 
 >PodSchedulingContext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#coordinating-resource-allocation-through-the-scheduler"
 
 >Coordinating resource allocation through the scheduler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-allocation-and-usage-flow"
 
 >Resource allocation and usage flow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduled-pods-with-unallocated-or-unreserved-claims"
 
 >Scheduled pods with unallocated or unreserved claims&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-autoscaler"
 
 >Cluster Autoscaler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementing-a-plugin-for-node-resources"
 
 >Implementing a plugin for node resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementing-optional-resources"
 
 >Implementing optional resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Efficient Node Heartbeat</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/589/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/589/</guid><description>&lt;h1 id="efficient-node-heartbeats">Efficient Node Heartbeats&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-plan"
 
 >Testing Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dedicated-heartbeat-object-instead-of-leader-election-one"
 
 >Dedicated “heartbeat” object instead of “leader election” one&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#events-instead-of-dedicated-heartbeat-object"
 
 >Events instead of dedicated heartbeat object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reuse-the-component-registration-mechanisms"
 
 >Reuse the Component Registration mechanisms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#split-node-object-into-two-parts-at-etcd-level"
 
 >Split Node object into two parts at etcd level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#delta-compression-in-etcd"
 
 >Delta compression in etcd&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#replace-etcd-with-other-database"
 
 >Replace etcd with other database&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Node heartbeats are necessary for correct functioning of Kubernetes cluster.
This proposal makes them significantly cheaper from both scalability and
performance perspective.&lt;/p></description></item><item><title>Efficient watch resumption after kube-apiserver reboot</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1904/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1904/</guid><description>&lt;h1 id="kep-1904-efficient-watch-resumption-after-kube-apiserver-reboot">KEP-1904: Efficient watch resumption after kube-apiserver reboot&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#initialize-watch-cache-from-etcd-history-window"
 
 >Initialize watch cache from etcd history window&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Elastic Indexed Job</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3715/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3715/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3715-elastic-indexed-job">KEP-3715: Elastic Indexed Job&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-statefulsets"
 
 >Use StatefulSets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#make-speccompletions-fully-mutable"
 
 >Make spec.completions fully mutable&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-speccompletionsnil-for-indexed-mode"
 
 >Allow spec.completions=nil for Indexed mode&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Eliminating Internal API Types</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6164/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6164/</guid><description>&lt;h1 id="kep-6164-eliminating-internal-api-types">KEP-6164: Eliminating Internal API Types&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#benchmarks"
 
 >Benchmarks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phasing"
 
 >Phasing&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#commitment"
 
 >Commitment&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-make-the-internal-types-memory-identical-to-the-stable-served-version"
 
 >Phase 1: Make the internal types memory-identical to the stable served version&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#step-1"
 
 >Step 1:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#step-2"
 
 >Step 2:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#phase-2-alias-internal-types"
 
 >Phase 2: Alias internal types&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#step-1-replace-internal-types-with-aliases"
 
 >Step 1: Replace internal types with aliases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#step-2-retire-__internal-registration"
 
 >Step 2: Retire &lt;code>__internal&lt;/code> registration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#potential-future-work-remove-internal-type-aliases-entirely"
 
 >Potential Future Work: Remove internal type aliases entirely&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>EmptyDir Volume Permission Mode</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5502/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5502/</guid><description>&lt;h1 id="kep-5502-emptydir-volume-permission-mode">KEP-5502: EmptyDir Volume Permission Mode&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-restricted-directory-permissions"
 
 >Story 1: Restricted Directory Permissions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-shared-temporary-storage-with-sticky-bit"
 
 >Story 2: Shared Temporary Storage with Sticky Bit&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-behavior"
 
 >Windows Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-target-137"
 
 >Alpha (target 1.37)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-boolean-stickybit-field"
 
 >Alternative 1: Boolean stickyBit field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Enable per-request Read/Write Deadline</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4460/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4460/</guid><description>&lt;h1 id="kep-4460-enable-per-request-readwrite-deadline">KEP-4460: Enable per-request Read/Write Deadline&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#client-hanging-indefinitely"
 
 >Client Hanging Indefinitely:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#request-handler-running-indefinitely-on-the-server"
 
 >Request Handler Running Indefinitely on the Server:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impact-when-an-http1x-connection-is-hijacked"
 
 >Impact When an HTTP/1x Connection is Hijacked:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-we-manage-request-timeout-today"
 
 >How We Manage Request Timeout Today:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enabling-per-request-readwrite-deadline"
 
 >Enabling Per-Request Read/Write Deadline&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#write-deadline"
 
 >Write Deadline&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#read-deadline"
 
 >Read Deadline&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integrate-flusherror"
 
 >Integrate FlushError&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#termination-of-the-request-handler"
 
 >Termination of the Request Handler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#convert-the-asynchronous-timeout-filter-for-mutating-request-to-synchronous"
 
 >Convert the Asynchronous Timeout Filter for Mutating-Request to Synchronous:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#post-timeout-observability"
 
 >Post-Timeout Observability:&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#monitor-post-timeout-activity-using-contextafterfunc"
 
 >Monitor Post-Timeout Activity using context.AfterFunc:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#audit-log"
 
 >Audit Log:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impact-on-the-client"
 
 >Impact on the Client&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Enable Writable Cgroups</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5474/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5474/</guid><description>&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-container-in-container-development"
 
 >Story 1: Container-in-Container Development&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-dynamic-resource-management"
 
 >Story 2: Dynamic Resource Management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cpuset-isolation"
 
 >cpuset Isolation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#verified-behavior"
 
 >Verified Behavior&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#descendant-cgroup-memory-accounting"
 
 >Descendant Cgroup Memory Accounting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-api-types"
 
 >Core API Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-api-changes"
 
 >CRI API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#descendant-and-depth-limits-pod-level-no-cri-changes"
 
 >Descendant and Depth Limits (Pod-level, no CRI changes)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cgroupoptions-implementation-flow"
 
 >CgroupOptions Implementation Flow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-runtime-specific-annotations"
 
 >Alternative 1: Runtime-specific Annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-boolean-field-instead-of-struct"
 
 >Alternative 2: Boolean Field Instead of Struct&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-runtime-auto-detection-implicit-behavior"
 
 >Alternative 3: Runtime Auto-Detection (Implicit Behavior)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>EndpointSlice API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/752/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/752/</guid><description>&lt;h1 id="kep-0752-endpointslices">KEP-0752 EndpointSlices&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#endpointslice-api"
 
 >EndpointSlice API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mapping"
 
 >Mapping&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpoint-port"
 
 >Endpoint Port&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#topology-per-endpoint"
 
 >Topology (Per Endpoint)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#converting-topology-in-endpointslice-ga"
 
 >Converting Topology in EndpointSlice GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#zone-per-endpoint"
 
 >Zone (Per Endpoint)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpointslice-naming"
 
 >EndpointSlice Naming&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#estimation"
 
 >Estimation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-case-1-20000-endpoints-5000-nodes"
 
 >Sample Case 1: 20,000 endpoints, 5,000 nodes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-creationdeletion"
 
 >Service Creation/Deletion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-endpoint-update"
 
 >Single Endpoint Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rolling-update"
 
 >Rolling Update&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#sample-case-2-20-endpoints-10-nodes"
 
 >Sample Case 2: 20 endpoints, 10 nodes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-creationdeletion-1"
 
 >Service Creation/Deletion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-endpoint-update-1"
 
 >Single Endpoint Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rolling-update-1"
 
 >Rolling Update&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#requirements"
 
 >Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpointslice-controller"
 
 >EndpointSlice Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#additional-endpointslice-controllers"
 
 >Additional EndpointSlice Controllers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workflows"
 
 >Workflows&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy"
 
 >Kube-Proxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpoints-controller-classic"
 
 >Endpoints Controller (classic)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpointslicemirroring-controller"
 
 >EndpointSliceMirroring Controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mirroring-details"
 
 >Mirroring Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-endpoints-events"
 
 >Handling Endpoints Events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-start-up"
 
 >Controller Start Up&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#corresponding-bug-fix-for-endpoints-and-endpointslice-controller"
 
 >Corresponding Bug Fix for Endpoints and EndpointSlice Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limitations"
 
 >Limitations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-plan"
 
 >Testing Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#roll-out-plan"
 
 >Roll Out Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#splitting-ip-address-type-for-better-dual-stack-support"
 
 >Splitting IP address type for better dual stack support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#faq"
 
 >FAQ&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP was converted from the &lt;a href="https://docs.google.com/document/d/1sLJfolOeEVzK5oOviRmtHOHmke8qtteljQPaDUEukxY/edit#"
 
 target="_blank" rel="noopener">original proposal doc&lt;/a>
. The
current &lt;a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/#endpoints-v1-core"
 
 target="_blank" rel="noopener">Core/V1 Endpoints API&lt;/a>
 comes with severe
performance/scalability drawbacks affecting multiple components in the
control-plane (apiserver, etcd, endpoints-controller, kube-proxy). This doc
proposes a new EndpointSlice API aiming to replace Core/V1 Endpoints API for
most internal consumers, including kube-proxy. The new EndpointSlice API aims to
address existing problems as well as leaving room for future extension.&lt;/p></description></item><item><title>Enhance HPA Metrics Specificity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/117/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/117/</guid><description>&lt;h1 id="enhance-hpa-metrics-specificity">Enhance HPA Metrics Specificity&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The &lt;code>External&lt;/code> metric source type in the HPA currently supports passing
a metric label selectors, which is passed to the custom metrics API
(custom.metrics.k8s.io) to select a more specific metrics series. This
allows users to more easily make use of existing metrics structure,
without need to manipulate their metrics labeling and ingestion
externally.&lt;/p></description></item><item><title>Enhanced NodeIPAM to support Discontiguous Cluster CIDR</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2593/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2593/</guid><description>&lt;h1 id="kep-2593-enhanced-nodeipam-to-support-discontiguous-cluster-cidr">KEP-2593: Enhanced NodeIPAM to support Discontiguous Cluster CIDR&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-more-pod-ips-to-the-cluster"
 
 >Add more pod IPs to the cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-nodes-with-higher-or-lower-capabilities"
 
 >Add nodes with higher or lower capabilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#provision-discontiguous-ranges"
 
 >Provision discontiguous ranges&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pre-requisites"
 
 >Pre-Requisites&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-resource"
 
 >New Resource&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#expected-behavior"
 
 >Expected Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-allocations"
 
 >Example: Allocations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#controller"
 
 >Controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#data-structures"
 
 >Data Structures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dual-stack-support"
 
 >Dual-Stack Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#startup-options"
 
 >Startup Options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#startup"
 
 >Startup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#processing-queue"
 
 >Processing Queue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#event-watching-loops"
 
 >Event Watching Loops&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#node-added"
 
 >Node Added&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-updated"
 
 >Node Updated&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-deleted"
 
 >Node Deleted&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clustercidr-added"
 
 >ClusterCIDR Added&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clustercidr-updated"
 
 >ClusterCIDR Updated&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clustercidr-deleted"
 
 >ClusterCIDR Deleted&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-controller-manager"
 
 >kube-controller-manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to--ga-graduation"
 
 >Beta to GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#make-the-controller-the-new-default"
 
 >Make the Controller the new default&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mark-the-rangeallocator-as-deprecated"
 
 >Mark the RangeAllocator as deprecated&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrades"
 
 >Upgrades&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrades"
 
 >Downgrades&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#share-resources-with-service-api"
 
 >Share Resources with Service API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros"
 
 >Pros&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons"
 
 >Cons&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#nodes-register-cidr-request"
 
 >Nodes Register CIDR Request&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros-1"
 
 >Pros&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons-1"
 
 >Cons&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>IMPORTANT: THIS KEP HAS BEEN WITHDRAWN AND THIS FEATURE WILL BE DEVELOPED OUT OF TREE
Ref: &lt;a href="https://groups.google.com/g/kubernetes-sig-network/c/nts1xEZ--gQ/m/2aTOUNFFAAAJ"
 
 target="_blank" rel="noopener">https://groups.google.com/g/kubernetes-sig-network/c/nts1xEZ--gQ/m/2aTOUNFFAAAJ&lt;/a>
&lt;/p></description></item><item><title>Ensure Conformance Tests Do Not Require Beta APIs or Features</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1333/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1333/</guid><description>&lt;h1 id="ensure-conformance-tests-do-not-require-beta-rest-apis-or-features">Ensure Conformance Tests Do Not Require Beta REST APIs or Features&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>For enhancements that make changes to code or processes/procedures in core Kubernetes i.e., &lt;a href="https://github.com/kubernetes/kubernetes"
 
 target="_blank" rel="noopener">kubernetes/kubernetes&lt;/a>
, we require the following Release Signoff checklist to be completed.&lt;/p></description></item><item><title>Ensure Secret Pulled Images</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2535/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2535/</guid><description>&lt;h1 id="kep-2535-ensure-secret-pulled-images">KEP-2535: Ensure Secret Pulled Images&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#image-pulling-scenarios"
 
 >Image Pulling Scenarios&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-caching"
 
 >Kubelet Caching&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#credential-verification-policies"
 
 >Credential Verification Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#writing-to-the-cache"
 
 >Writing to the Cache&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cache-writes-upon-successful-credentials-match"
 
 >Cache writes upon successful credentials match:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failure-modes"
 
 >Failure modes:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cache-directory-structure"
 
 >Cache Directory Structure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-cache-housekeeping"
 
 >Kubelet Cache Housekeeping&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Ephemeral Containers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/277/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/277/</guid><description>&lt;h1 id="kep-277-ephemeral-containers">KEP-277: Ephemeral Containers&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#development"
 
 >Development&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operations-and-support"
 
 >Operations and Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#creating-ephemeral-containers"
 
 >Creating Ephemeral Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reattaching-ephemeral-containers"
 
 >Reattaching Ephemeral Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ephemeral-container-lifecycle"
 
 >Ephemeral Container Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#removing-ephemeral-containers"
 
 >Removing Ephemeral Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#configurable-security-policy"
 
 >Configurable Security Policy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#specifying-security-context"
 
 >Specifying Security Context&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compatibility-with-existing-admission-controllers"
 
 >Compatibility with existing Admission Controllers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#operations"
 
 >Operations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#debugging"
 
 >Debugging&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automation"
 
 >Automation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#technical-support"
 
 >Technical Support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#security-considerations"
 
 >Security Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#requiring-a-subresource"
 
 >Requiring a Subresource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#creative-new-uses-of-ephemeral-containers"
 
 >Creative New Uses of Ephemeral Containers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api-changes"
 
 >Kubernetes API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-changes"
 
 >Pod Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-considered-omitting-targetcontainername"
 
 >Alternative Considered: Omitting TargetContainerName&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#updating-a-pod"
 
 >Updating a Pod&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-interface-cri-changes"
 
 >Container Runtime Interface (CRI) changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan-1"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#container-spec-in-podstatus"
 
 >Container Spec in PodStatus&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extend-the-existing-exec-api-exec"
 
 >Extend the Existing Exec API (&amp;quot;exec++&amp;quot;)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ephemeral-container-controller"
 
 >Ephemeral Container Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutable-pod-spec-containers"
 
 >Mutable Pod Spec Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#image-exec"
 
 >Image Exec&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#attaching-container-type-volume"
 
 >Attaching Container Type Volume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-docker-cp-and-exec"
 
 >Using docker cp and exec&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#inactive-container"
 
 >Inactive container&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implicit-empty-volume"
 
 >Implicit Empty Volume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#standalone-pod-in-shared-namespace-debug-pod"
 
 >Standalone Pod in Shared Namespace (&amp;quot;Debug Pod&amp;quot;)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exec-from-node"
 
 >Exec from Node&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Ephemeral Inline CSI Volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/596/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/596/</guid><description>&lt;h1 id="kep-596-ephemeral-inline-csi-volumes">KEP-596: Ephemeral Inline CSI volumes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#security-considerations"
 
 >Security Considerations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volumehandle-generation"
 
 >VolumeHandle generation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-updates"
 
 >API updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-for-inline-csi-volumes"
 
 >Support for inline CSI volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#secret-reference"
 
 >Secret reference&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ephemeral-inline-volume-operations"
 
 >Ephemeral inline volume operations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#read-only-volumes"
 
 >Read-only volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>etcd RangeStream</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5966/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5966/</guid><description>&lt;h1 id="kep-5966-etcd-rangestream">KEP-5966: etcd RangeStream&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stream-message-layout"
 
 >Stream Message Layout&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supported-options"
 
 >Supported Options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#chunk-sizing"
 
 >Chunk Sizing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unsupported-pass-through"
 
 >Unsupported Pass Through&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-changes"
 
 >Implementation Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-api-server-integration"
 
 >Kubernetes API Server Integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>EvictionRequest API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4563/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4563/</guid><description>&lt;h1 id="kep-4563-evictionrequest-api">KEP-4563: EvictionRequest API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#poddisruptionbudget-standing-issues"
 
 >PodDisruptionBudget Standing Issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#evictionrequest-and-eviction-api"
 
 >EvictionRequest and Eviction API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-requester"
 
 >Eviction Requester&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-and-responder"
 
 >Pod and Responder&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-request-controller"
 
 >Eviction Request Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5"
 
 >Story 5&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-6"
 
 >Story 6&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-7"
 
 >Story 7&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#disruptive-eviction"
 
 >Disruptive Eviction&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#evictionrequest"
 
 >EvictionRequest&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-requester-1"
 
 >Eviction Requester&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#responder"
 
 >Responder&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-request-controller-1"
 
 >Eviction Request Controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#registration"
 
 >Registration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-name-prefix-hash123456abc"
 
 >pod-name-prefix-hash123456abc&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-uid-hash123456abc"
 
 >pod-uid-hash123456abc&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#target-type-eviction-counter-target-name-prefix-pod-1-ngingx"
 
 >target-type-eviction-counter-target-name-prefix (pod-1-ngingx)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cancellation-and-default-gc"
 
 >Cancellation and default GC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#label-generation"
 
 >Label Generation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#responder-selection"
 
 >Responder Selection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#condition-synchronization"
 
 >Condition synchronization&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#imperative-eviction-responder-controller"
 
 >Imperative Eviction Responder Controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#eviction"
 
 >Eviction&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-and-evictionrequest-api"
 
 >Pod and EvictionRequest API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#remarks-on-responders"
 
 >Remarks on Responders&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evictionrequest-validation-on-admission"
 
 >EvictionRequest Validation on Admission&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#create"
 
 >CREATE&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#immutability-of-evictionrequest-fields"
 
 >Immutability of EvictionRequest Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-validation-on-admission"
 
 >Eviction Validation on Admission&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#create-1"
 
 >CREATE&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#update"
 
 >UPDATE&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#immutability-of-eviction-fields"
 
 >Immutability of Eviction Fields&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#evictionrequest-process"
 
 >EvictionRequest Process&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#evictionrequest-and-eviction-completion-and-deletion"
 
 >EvictionRequest and Eviction Completion and Deletion&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#evictionrequest-cancellation-examples"
 
 >EvictionRequest Cancellation Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multiple-dynamic-requesters-and-no-evictionrequest-cancellation"
 
 >Multiple Dynamic Requesters and No EvictionRequest Cancellation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-dynamic-requester-and-evictionrequest-cancellation"
 
 >Single Dynamic Requester and EvictionRequest Cancellation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#follow-up-design-details-for-kubernetes-workloads"
 
 >Follow-up Design Details for Kubernetes Workloads&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-surge-example"
 
 >Pod Surge Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-improvements"
 
 >Future Improvements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-targets-types"
 
 >New Targets Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-evictionrequest-types-and-synchronization-of-pod-termination-mechanisms"
 
 >New EvictionRequest Types and Synchronization of Pod Termination Mechanisms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workload-api-support"
 
 >Workload API Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preemption-support"
 
 >Preemption Support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#adoption"
 
 >Adoption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha2"
 
 >Alpha2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#track-evictionrequests-and-eviction-in-a-single-object"
 
 >Track EvictionRequests and Eviction in a single object.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evictionrequest-or-eviction-subresource"
 
 >EvictionRequest or Eviction subresource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-api"
 
 >Pod API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#responder-list-in-pods-annotations"
 
 >Responder list in Pod&amp;rsquo;s annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enhancing-poddisruptionbudgets"
 
 >Enhancing PodDisruptionBudgets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cancellation-of-evictionrequest"
 
 >Cancellation of EvictionRequest&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-name-of-the-evictionrequest-objects"
 
 >The Name of the EvictionRequest Objects&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-uid"
 
 >Pod UID&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-name"
 
 >Pod Name&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-uid-and-pod-name-prefix"
 
 >Pod UID and Pod Name Prefix&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#any-name"
 
 >Any Name&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#changes-to-the-eviction-api"
 
 >Changes to the Eviction API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Exec session identity propagation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6035/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6035/</guid><description>&lt;h1 id="kep-6035-exec-session-identity-propagation">KEP-6035: Exec Session Identity Propagation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-exec-call-chain"
 
 >The Exec Call Chain&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-primitive-execrequestenvs"
 
 >CRI Primitive: ExecRequest.envs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#environment-variable-precedence"
 
 >Environment Variable Precedence&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scope"
 
 >Scope&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hooks-and-probes"
 
 >Hooks and Probes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#audit-id-propagation"
 
 >Audit ID Propagation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#silent-degradation"
 
 >Silent Degradation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-conformance-tests"
 
 >CRI conformance tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#otel-baggage-propagation"
 
 >OTel Baggage Propagation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#keeping-the-cri-primitive-as-a-separate-kep"
 
 >Keeping the CRI Primitive as a Separate KEP&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>ExecutionHook</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/962/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/962/</guid><description>&lt;h1 id="executionhook-api-design">ExecutionHook API Design&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workflow"
 
 >Workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#workarounds"
 
 >Workarounds&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-option-1a"
 
 >Alternative Option 1a&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-option-1b"
 
 >Alternative Option 1b&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-handlings-for-option-1a-and-1b"
 
 >Controller Handlings for Option 1a and 1b&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-option-2"
 
 >Alternative Option 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations-1"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria-1"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history-1"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal is to introduce an API (ExecutionHook) for dynamically executing user’s commands in a pod/container or a group of pods/containers and a controller (ExecutionHookController) to manage the hook lifecycle. ExecutionHook provides a general mechanism for users to trigger hook commands in their containers for their different use cases. Different options have been evaluated to decide how this ExecutionHook should be managed and executed. The preferred option is described in the Proposal section. The other options are discussed in the Alternatives section.&lt;/p></description></item><item><title>Expanded DNS Configuration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2595/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2595/</guid><description>&lt;h1 id="kep-2595-expanded-dns-configuration">KEP-2595: Expanded DNS Configuration&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Allow kubernetes to have expanded DNS(Domain Name System) configuration.&lt;/p></description></item><item><title>Expose Pod Resource Request Metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1748/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1748/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please ensure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "title", "authors", "owning-sig",
 "status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary", and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG that are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as a `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement", for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If there are
new details that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable` or significant changes once
it is marked `implementable` must be approved by each of the KEP approvers.
If any of those approvers is no longer appropriate than changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross cutting KEPs).
-->
&lt;h1 id="kep-1748-expose-pod-resource-request-metrics">KEP-1748: Expose Pod Resource Request Metrics&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#report-a-new-multi-dimension-pod_resources-metric"
 
 >Report a new multi-dimension pod_resources metric&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#describe-the-pod-resource-model"
 
 >Describe the pod resource model&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-kubernetes-resource-model"
 
 >The Kubernetes resource model&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cardinality-growth-of-metrics"
 
 >Cardinality growth of metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#expose-new-metrics"
 
 >Expose new metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-recording-rules-consistent-with-this-metric-to-describe-actual-resource-usage"
 
 >Add recording rules consistent with this metric to describe actual resource usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;!--
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
-->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The current Prometheus metrics exposed by the cluster have gaps that make building accurate capacity alerts, dashboards, and ad-hoc queries more difficult than necessary and complicate the average user’s understanding of the resource model. The Kubernetes resource model is fundamental to capacity planning and error triage. It should be easy to visualize and alert on core usage and capacity through a simple set of metrics. Administrators and integrators should be able to easily graph and calculate the available and consumed resources within the cluster at any time.&lt;/p></description></item><item><title>Expose PSI Metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4205/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4205/</guid><description>&lt;h1 id="kep-4205-expose-psi-metrics">KEP-4205: Expose PSI Metrics&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

- &lt;a href="#cpu"
 
 >CPU&lt;/a>

- &lt;a href="#memory"
 
 >Memory&lt;/a>

- &lt;a href="#io"
 
 >IO&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Extend kubelet pod resource assignment endpoint to return allocatable resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2403/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2403/</guid><description>&lt;h1 id="extend-kubelet-pod-resource-assignment-endpoint-to-return-allocatable-resources">Extend kubelet pod resource assignment endpoint to return allocatable resources&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#node-feature-discovery"
 
 >Node Feature Discovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#topology-aware-scheduling"
 
 >Topology aware scheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-api"
 
 >Proposed API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to G.A Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-a-new-endpoint"
 
 >Add a new endpoint&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Extend Kustomize Patches to Multiple Targets</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2383/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2383/</guid><description>&lt;h1 id="extend-kustomize-patches-to-multiple-targets">Extend Kustomize Patches to Multiple Targets&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#docs"
 
 >Docs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Currently, there are different types of patches supported in Kustomize:
&lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md"
 
 target="_blank" rel="noopener">strategic merge patch&lt;/a>
 and &lt;a href="https://tools.ietf.org/html/rfc6902"
 
 target="_blank" rel="noopener">JSON patch&lt;/a>
.&lt;/p>
&lt;pre tabindex="0">&lt;code>patchesStrategicMerge:
- service_port_8888.yaml
- deployment_increase_replicas.yaml
- deployment_increase_memory.yaml

patchesJson6902:
- target:
 version: v1
 kind: Deployment
 name: my-deployment
 path: add_init_container.yaml
- target:
 version: v1
 kind: Service
 name: my-service
 path: add_service_annotation.yaml
&lt;/code>&lt;/pre>&lt;p>Both types need group, version, kind and name(GVKN) of a Kubernetes resource to find
the unique target to perform the patching. In strategic merge patch, GVKN is included
in the patch itself. In JSON patch, the GVKN is specified in &lt;code>kustomization.yaml&lt;/code>.&lt;/p></description></item><item><title>Extend the PodResources API to include resources allocated by DRA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3695/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3695/</guid><description>&lt;p>KEP-3695: Extend the PodResources API to include resources allocated by DRA&lt;/p>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-api"
 
 >Proposed API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Extend usage of Volume DataSource to allow PVCs for Cloning</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/989/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/989/</guid><description>&lt;h1 id="allow-the-use-of-the-datasource-field-for-clones-existing-pvcs">Allow the use of the dataSource field for clones (existing PVCs)&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes adding support for specifying existing PVCs in the DataSource field to indicate a user would like to Clone a Volume. Note that this KEP also applies ONLY to dynamic provisioner, and ONLY CSI Provisioner&amp;rsquo;s.&lt;/p></description></item><item><title>Extended NodeRestrictions for Pods</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1314/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1314/</guid><description>&lt;h1 id="extended-noderestrictions-for-pods">Extended NodeRestrictions for Pods&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#threat-model"
 
 >Threat Model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#label-restrictions"
 
 >Label Restrictions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podstatus-restrictions"
 
 >PodStatus Restrictions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ownerreferences"
 
 >OwnerReferences&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#breaking-services"
 
 >Breaking Services&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#namespace-annotation-policy"
 
 >Namespace Annotation Policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#munge-mirror-pods"
 
 >Munge Mirror Pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mvp-mitigation-of-known-threats"
 
 >MVP mitigation of known threats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restrict-namespaces"
 
 >Restrict namespaces&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#weaker-label-restrictions"
 
 >Weaker label restrictions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#annotation-restrictions"
 
 >Annotation Restrictions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-label-modifications"
 
 >Alternative Label Modifications&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in
&lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before
&lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>
 of the targeted
release&lt;/strong>.&lt;/p></description></item><item><title>Extended Toleration Operators for Threshold-Based Placement</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5471/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5471/</guid><description>&lt;h1 id="kep-5471-extended-toleration-operators-for-threshold-based-placement">KEP-5471: Extended Toleration Operators for Threshold-Based Placement&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-not-nodeaffinity-alone"
 
 >Why not NodeAffinity alone?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#benefits-for-implementing-this-feature-for-dra-and-ai-workloads"
 
 >Benefits for implementing this feature for DRA and AI Workloads&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1--cluster-operator-using-mixed-on-demand-and-spot-nodes"
 
 >Story 1 — Cluster operator using mixed on-demand and spot nodes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2--ai-inference-service-with-strict-slos"
 
 >Story 2 — AI inference service with strict SLOs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3--ai-training-workload-balancing-cost-and-reliability"
 
 >Story 3 — AI training workload balancing cost and reliability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4--dra-gpu-claim-management"
 
 >Story 4 — DRA GPU claim management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5--dra-device-level-error-budget-management"
 
 >Story 5 — DRA device-level error budget management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scheduler-performance-regression"
 
 >Scheduler Performance Regression&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#edge-cases-in-numeric-parsing"
 
 >Edge Cases in Numeric Parsing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#taint-misconfiguration-detection"
 
 >Taint Misconfiguration Detection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-hot-loop-when-feature-gate-is-disabled"
 
 >Controller Hot-Loop When Feature Gate is Disabled&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cross-sig-impact"
 
 >Cross-SIG Impact&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#semantics"
 
 >Semantics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate-definition"
 
 >Feature Gate Definition&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance-tests"
 
 >Performance tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Extending Apiserver Network Proxy to handle traffic originated from Node network</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2025/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2025/</guid><description>&lt;h1 id="kep-2025-extending-apiserver-network-proxy-to-handle-traffic-originated-from-node-network">KEP-2025: Extending Apiserver Network Proxy to handle traffic originated from Node network&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#definitions"
 
 >Definitions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#traffic-flow"
 
 >Traffic Flow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#agent-additional-flags"
 
 >Agent additional flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-the-traffic-from-the-pods-to-the-agent"
 
 >Handling the Traffic from the pods to the agent&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-the-traffic-from-the-kubelet-to-the-agent"
 
 >Handling the Traffic from the Kubelet to the agent&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deployment-model"
 
 >Deployment Model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#listening-interface-for-konnectivity-agent"
 
 >Listening Interface for Konnectivity agent&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authentication-between-konnectivity-agent-and-server"
 
 >Authentication between Konnectivity agent and server&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#allowed-destination"
 
 >Allowed Destination&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Extending Metrics Stability</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3498/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3498/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3498-extending-metrics-stability">KEP-3498: Extending Metrics Stability&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#semantic-of-stability-levels"
 
 >Semantic of Stability Levels&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#internal-metrics"
 
 >Internal Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-metrics"
 
 >Alpha Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-metrics"
 
 >Beta Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable-metrics"
 
 >Stable Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Extending RequestedToCapacityRatio Priority Function to support Resource Bin Packing of Extended Resources - @sudeshsh</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/964/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/964/</guid><description>&lt;h1 id="extendingrequestedtocapacityratio-priority-function-to-support-resource-bin-packing-of-extended-resources">ExtendingRequestedToCapacityRatio Priority Function to support Resource Bin Packing of Extended Resources&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#argument-input-scenarios"
 
 >Argument Input Scenarios&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-behavior"
 
 >Default Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extender-resource-scheduler-behavior"
 
 >Extender Resource Scheduler Behavior&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Extend RequestedToCapacityRatio Priority Function to allow users to use the best fit polices during scheduling. It will allow users to apply &lt;a href="https://en.wikipedia.org/wiki/Bin_packing_problem"
 
 target="_blank" rel="noopener">bin packing&lt;/a>
 on core resources like CPU, Memory as well as extended resources like accelerators.&lt;/p></description></item><item><title>External credential providers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/541/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/541/</guid><description>&lt;h1 id="kep-541-external-credential-providers">KEP-541: External credential providers&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#provider-configuration"
 
 >Provider configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#provider-input-format"
 
 >Provider input format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#provider-output-format"
 
 >Provider output format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#client-authentication-to-the-binary"
 
 >Client authentication to the binary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#invalid-credentials-before-cache-expiry"
 
 >Invalid credentials before cache expiry&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rpc-vs-exec"
 
 >RPC vs exec&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>External credential providers allow out-of-tree implementation of obtaining
client authentication credentials. These providers handle environment-specific
provisioning of credentials (such as bearer tokens or TLS client certificates)
and expose them to the client.&lt;/p></description></item><item><title>Fallback for HPA on failure to retrieve metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5679/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5679/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5053-fallback-for-hpa-external-metrics-on-retrieval-failure">KEP-5053: Fallback for HPA External Metrics on Retrieval Failure&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-saas-application-scaling-on-queue-depth"
 
 >Story 1: SaaS Application Scaling on Queue Depth&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-e-commerce-site-with-multiple-external-metrics"
 
 >Story 2: E-commerce Site with Multiple External Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Field status.hostIPs added for Pod</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2681/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2681/</guid><description>&lt;h1 id="kep-2681-field-statushostips-added-for-pod">KEP-2681: Field status.hostIPs added for Pod&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#versioned-api-change-podstatus-v1-core"
 
 >Versioned API Change: PodStatus v1 core&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podstatus-internal-representation"
 
 >PodStatus Internal Representation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#maintaining-compatible-interworking-between-old-and-new-clients"
 
 >Maintaining Compatible Interworking between Old and New Clients&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-environment-variables"
 
 >Container Environment Variables&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The proposal aims to improve the Pod&amp;rsquo;s ability to obtain the address of the node&lt;/p></description></item><item><title>Finalizer Protection for Service LoadBalancers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/980/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/980/</guid><description>&lt;h1 id="finalizer-protection-for-service-loadbalancers">Finalizer Protection for Service LoadBalancers&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#n2-upgradedowngrade-is-not-supported"
 
 >n+2 upgrade/downgrade is not supported&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#other-notes"
 
 >Other notes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We will be adding finalizer protection to ensure the Service resource is not
fully deleted until the correlating load balancer resources are deleted. Any
service that has &lt;code>type=LoadBalancer&lt;/code> (both existing and newly created ones)
will be attached a service LoadBalancer finalizer, which should be removed by
service controller upon the cleanup of related load balancer resources. Such
finalizer protection mechanism will be released with phases to ensure downgrades
can happen safely.&lt;/p></description></item><item><title>Fine grained Kubelet API authorization</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2862/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2862/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2862-fine-grained-kubelet-api-authorization">KEP-2862: Fine-grained Kubelet API Authorization&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notes"
 
 >Notes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Fine grained SupplementalGroups control</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3619/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3619/</guid><description>&lt;h1 id="kep-3619-fine-grained-supplementalgroups-control">KEP-3619: Fine-grained SupplementalGroups control&lt;/h1>
&lt;!--
Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-issue"
 
 >The issue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#steps-to-reproduce"
 
 >Steps to reproduce&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api"
 
 >Kubernetes API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#supplementalgroupspolicy-in-podsecuritycontext"
 
 >SupplementalGroupsPolicy in PodSecurityContext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-in-containerstatus"
 
 >User in ContainerStatus&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodefeatures-in-nodestatus-which-contains-supplementalgroupspolicy-field"
 
 >NodeFeatures in NodeStatus which contains SupplementalGroupsPolicy field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cri"
 
 >CRI&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#supplementalgroupspolicy-in-securitycontext"
 
 >SupplementalGroupsPolicy in SecurityContext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-in-containerstatus-1"
 
 >user in ContainerStatus&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#features-in-statusresponse-which-contains-supplemental_groups_policy-field"
 
 >features in StatusResponse which contains supplemental_groups_policy field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-deploy-a-security-policy-to-enforce-supplementalgroupspolicy-field"
 
 >Story 1: Deploy a Security Policy to enforce &lt;code>SupplementalGroupsPolicy&lt;/code> field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api-1"
 
 >Kubernetes API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#supplementalgroupspolicy-in-podsecuritycontext-1"
 
 >SupplementalGroupsPolicy in PodSecurityContext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-in-containerstatus-2"
 
 >User in ContainerStatus&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodefeatures-in-nodestatus-which-contains-supplementalgroupspolicy-field-1"
 
 >NodeFeatures in NodeStatus which contains SupplementalGroupsPolicy field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cri-1"
 
 >CRI&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#supplementalgroupspolicy-in-securitycontext-1"
 
 >SupplementalGroupsPolicy in SecurityContext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-in-containerstatus-3"
 
 >user in ContainerStatus&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#features-in-statusresponse-which-contains-supplemental_groups_policy-field-1"
 
 >features in StatusResponse which contains supplemental_groups_policy field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introducing-runtimeclass"
 
 >Introducing &lt;code>RuntimeClass&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#adjusting-container-image-by-users"
 
 >Adjusting container image by users&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#just-fixing-cri-implementations"
 
 >Just fixing CRI implementations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Forensic Container Checkpointing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2008/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2008/</guid><description>&lt;h1 id="kep-2008-forensic-container-checkpointing">KEP-2008: Forensic Container Checkpointing&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-updates"
 
 >CRI Updates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future-enhancements"
 
 >Future Enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Freezing `k8s.gcr.io` image registry</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3720/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3720/</guid><description>&lt;h1 id="kep-3720-freeze-k8sgcrio-image-registry">KEP-3720: Freeze &lt;code>k8s.gcr.io&lt;/code> image registry&lt;/h1>
&lt;p>The change proposed by this KEP is very unusual as the engineering work will &lt;strong>not&lt;/strong> be done in the k/k repository. However, this is a major change to the project hence the KEP.&lt;/p>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#communication-plan"
 
 >Communication Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Gang Scheduling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4671/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4671/</guid><description>&lt;h1 id="kep-4671-gang-scheduling-using-workload-object">KEP-4671: Gang Scheduling using Workload Object&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-gang-scheduling-of-a-job"
 
 >Story 1: Gang-scheduling of a Job&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-gang-scheduling-of-a-custom-workload"
 
 >Story 2: Gang-scheduling of a custom workload&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-independent-podgroup-lifecycle"
 
 >Story 3: Independent PodGroup Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-podgroup-level-status"
 
 >Story 4: PodGroup-Level Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-controller-scalability"
 
 >Story 5: Controller Scalability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-api-needs-to-be-extended-in-an-unpredictable-way"
 
 >The API needs to be extended in an unpredictable way&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exacerbating-the-race-window-by-proceeding-directly-to-binding"
 
 >Exacerbating the race window by proceeding directly to binding&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#increased-api-call-volume"
 
 >Increased API call volume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consistency-across-multiple-objects"
 
 >Consistency across multiple objects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#race-conditions-during-object-creation"
 
 >Race conditions during object creation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#increased-etcd-object-count"
 
 >Increased etcd object count&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#naming"
 
 >Naming&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podgroup-naming-conventions"
 
 >PodGroup Naming Conventions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#associating-pod-into-podgroups"
 
 >Associating Pod into PodGroups&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podgroup-status-lifecycle"
 
 >PodGroup Status Lifecycle&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#status-transition-rules"
 
 >Status Transition Rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-notes-alpha"
 
 >Implementation Notes (Alpha)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#podgroup-deletion-protection"
 
 >PodGroup Deletion Protection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#schedulingpolicy-reference-vs-copyinline-in-podgroup"
 
 >SchedulingPolicy Reference vs. Copy/Inline in PodGroup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podgroup-creation-ordering"
 
 >PodGroup Creation Ordering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ownership-and-object-relationship"
 
 >Ownership and Object Relationship&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-group-mincount-mutability"
 
 >Pod Group minCount Mutability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workload-controllers-integration"
 
 >Workload Controllers Integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-changes"
 
 >Scheduler Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#north-star-vision"
 
 >North Star Vision&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gangscheduling-plugin"
 
 >GangScheduling Plugin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-plans"
 
 >Future plans&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduler-changes-for-beta"
 
 >Scheduler Changes for Beta&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-workload-scheduling-cycle"
 
 >The Workload Scheduling Cycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#queuing-and-ordering"
 
 >Queuing and Ordering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduling-algorithm"
 
 >Scheduling Algorithm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#algorithm-limitations"
 
 >Algorithm Limitations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-basic-policy"
 
 >Interaction with Basic Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workload-aware-preemption"
 
 >Workload-aware Preemption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failure-handling"
 
 >Failure Handling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#feature-gates-merge-in-v137"
 
 >Feature gates merge in v1.37&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-1"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-group-queueing-in-scheduler"
 
 >Pod group queueing in scheduler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#embedded-podgroups-status-quo"
 
 >Embedded PodGroups (Status Quo)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-both-embedded-and-standalone-podgroup"
 
 >Support both embedded and standalone PodGroup&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>generic ephemeral inline volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1698/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1698/</guid><description>&lt;h1 id="kep-1698-generic-ephemeral-inline-volumes">KEP-1698: generic ephemeral inline volumes&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#persistent-memory-as-dram-replacement-for-memcached"
 
 >Persistent Memory as DRAM replacement for memcached&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#local-lvm-storage-as-scratch-space"
 
 >Local LVM storage as scratch space&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#read-only-access-to-volumes-with-data"
 
 >Read-only access to volumes with data&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pvc-meta-data"
 
 >PVC meta data&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preventing-accidental-collision-with-existing-pvcs"
 
 >Preventing accidental collision with existing PVCs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-events"
 
 >Pod events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modifying-volumes"
 
 >Modifying volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#late-binding"
 
 >Late binding&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#embedded-pvc-with-status"
 
 >Embedded PVC with status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extending-csi-ephemeral-volumes"
 
 >Extending CSI ephemeral volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extending-app-controllers"
 
 >Extending app controllers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>go modules</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/917/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/917/</guid><description>&lt;h1 id="go-modules">go modules&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#manage-vendor-folders-using-go-modules"
 
 >Manage vendor folders using go modules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#publish-staging-component-modules-to-individual-repositories"
 
 >Publish staging component modules to individual repositories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#select-a-versioning-strategy-for-published-modules"
 
 >Select a versioning strategy for published modules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#remove-godeps"
 
 >Remove Godeps&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternatives-to-vendoring-using-go-modules"
 
 >Alternatives to vendoring using go modules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-to-publishing-staging-component-modules"
 
 >Alternatives to publishing staging component modules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-versioning-strategies"
 
 >Alternative versioning strategies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#reference"
 
 >Reference&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Go workspaces for k/k</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4402/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4402/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```
-->
&lt;h1 id="kep-nnnn-go-workspaces-for-kk">KEP-NNNN: Go workspaces for k/k&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#go-and-v2"
 
 >Go and v2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-to-gengov2"
 
 >Alternatives to gengo/v2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Graceful Leader Transition</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5366/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5366/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue **in** kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5366-graceful-leader-transition">KEP-5366: Graceful Leader Transition&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-controller-sanitation-pre-alpha"
 
 >Phase 1: Controller Sanitation (Pre-Alpha)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-fast-lease-release"
 
 >Phase 2: Fast Lease Release&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-implementation"
 
 >Phase 1 Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-implementation"
 
 >Phase 2 Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work-stories"
 
 >Future Work (Stories)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graceful-leader-transition"
 
 >Graceful Leader Transition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Graceful Node Shutdown</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2000/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2000/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2000-graceful-node-shutdown">KEP-2000: Graceful Node Shutdown&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background-on-linux-shutdown"
 
 >Background on Linux Shutdown&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#background-on-inhibitors"
 
 >Background on Inhibitors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-graduation"
 
 >Alpha Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Graduate Admission Webhooks to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/492/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/492/</guid><description>&lt;h1 id="admission-webhooks-to-ga">Admission Webhooks to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#object-selector"
 
 >Object selector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scope"
 
 >Scope&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#timeout-configuration"
 
 >timeout configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#port-configuration"
 
 >Port configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plumbing-existing-objects-to-delete-admission"
 
 >Plumbing existing objects to delete admission&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutating-plugin-ordering"
 
 >Mutating Plugin ordering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#passing-operationoption-to-webhook"
 
 >Passing {Operation}Option to Webhook&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#connection-options"
 
 >Connection Options&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#admissionreview-v1"
 
 >AdmissionReview v1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#convert-to-webhook-requested-version"
 
 >Convert to webhook-requested version&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#v1-api"
 
 >V1 API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v1beta1-changes"
 
 >V1beta1 changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validations"
 
 >Validations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#post-ga-tasks"
 
 >Post-GA tasks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Admission webhook is a way to extend kubernetes by putting hook on object creation/modification/deletion.
Admission webhooks can mutate or validate the object. This feature has been Beta since Kubernetes 1.9.
This document outline required steps to graduate it to GA.&lt;/p></description></item><item><title>Graduate CoreDNS to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/427/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/427/</guid><description>&lt;h1 id="graduate-coredns-to-ga">Graduate CoreDNS to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configuring-coredns"
 
 >Configuring CoreDNS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubeadm"
 
 >Kubeadm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-up"
 
 >Kube-up&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#minikube"
 
 >Minikube&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>CoreDNS is sister CNCF project and is the successor to SkyDNS, on which kube-dns is based. It is a flexible, extensible
authoritative DNS server and directly integrates with the Kubernetes API. It can serve as cluster DNS,
complying with the &lt;a href="https://git.k8s.io/dns/docs/specification.md"
 
 target="_blank" rel="noopener">dns spec&lt;/a>
. As an independent project,
it is more actively developed than kube-dns and offers performance and functionality beyond what kube-dns has. For more details, see the &lt;a href="https://docs.google.com/presentation/d/1v6Coq1JRlqZ8rQ6bv0Tg0usSictmnN9U80g8WKxiOjQ/edit#slide=id.g249092e088_0_181"
 
 target="_blank" rel="noopener">introductory presentation&lt;/a>
, or &lt;a href="https://coredns.io"
 
 target="_blank" rel="noopener">coredns.io&lt;/a>
, or the &lt;a href="https://youtu.be/dz9S7R8r5gw"
 
 target="_blank" rel="noopener">CNCF webinar&lt;/a>
.&lt;/p></description></item><item><title>Graduate CustomResourceDefinitions to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/95/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/95/</guid><description>&lt;h1 id="graduate-customresourcedefinitions-to-ga">Graduate CustomResourceDefinitions to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#defaulting-and-pruning-for-custom-resources-is-implemented"
 
 >Defaulting and pruning for custom resources is implemented&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#crd-v1-schemas-are-restricted-to-a-subset-of-the-openapi-specification"
 
 >CRD v1 schemas are restricted to a subset of the OpenAPI specification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generator-exists-for-crd-validation-schema-v3-kubebuilder"
 
 >Generator exists for CRD Validation Schema v3 (Kubebuilder)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#customresourcewebhookconversion-api-is-ga-ready"
 
 >CustomResourceWebhookConversion API is GA ready&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#customresourcesubresources-api-is-ga-ready"
 
 >CustomResourceSubresources API is GA ready&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v1-api"
 
 >v1 API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#integration-tests-for-ga"
 
 >Integration tests for GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests-for-ga"
 
 >e2e tests for GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conformance-tests-for-ga"
 
 >Conformance tests for GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scale-targets-for-ga"
 
 >Scale Targets for GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#post-ga-tasks"
 
 >Post-GA tasks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>CustomResourceDefinitions (CRDs) are the way to extend the Kubernetes API to
include custom resource types that behave like the native resource types. CRDs
have been in Beta since Kubernetes 1.7. This document outlines the required
steps to graduate CRDs to general availability (GA).&lt;/p></description></item><item><title>Graduate HPA v2beta2 API to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2702/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2702/</guid><description>&lt;h1 id="graduate-v2beta2-autoscaling-api-to-ga">Graduate v2beta2 Autoscaling API to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#renames"
 
 >Renames&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-strategy"
 
 >Upgrade/Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#requirements-for-migration"
 
 >Requirements for migration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document outlines required steps to graduate autoscaling v2beta2 API to GA.&lt;/p></description></item><item><title>Graduate Ingress API to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1453/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1453/</guid><description>&lt;h1 id="kep-1453-graduate-ingress-api-to-ga">KEP-1453: Graduate Ingress API to GA&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#summary-of-the-proposed-changes"
 
 >Summary of the proposed changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#potential-features-for-post-v1"
 
 >Potential features for post V1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#path-as-a-prefix"
 
 >Path as a prefix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#paths-proposal"
 
 >Paths proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#defaults"
 
 >Defaults&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#path-matching-semantics"
 
 >Path matching semantics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exact-match"
 
 >&lt;code>Exact&lt;/code> match&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prefix-match"
 
 >&lt;code>Prefix&lt;/code> match&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementationspecific-match"
 
 >&lt;code>ImplementationSpecific&lt;/code> match&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#backend-to-defaultbackend"
 
 >&lt;code>backend&lt;/code> to &lt;code>defaultBackend&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hostname-wildcards"
 
 >Hostname wildcards&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#hostname-proposal"
 
 >Hostname proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#hostname-match-examples"
 
 >Hostname match examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#status"
 
 >Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ingress-class"
 
 >Ingress class&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ingress-class-field"
 
 >Ingress class field&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#interoperability-with-previous-annotation"
 
 >Interoperability with previous annotation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ingressclass-resource"
 
 >IngressClass Resource&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#default-ingressclass"
 
 >Default IngressClass&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternative-backend-types"
 
 >Alternative backend types&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backend-types-proposal"
 
 >Backend types proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backend-types-examples"
 
 >Backend types examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supporting-custom-backends-non-normative"
 
 >Supporting custom backends (non-normative)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-group-move-to-networkingk8siov1beta1"
 
 >API group move to &lt;code>networking.k8s.io/v1beta1&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#115"
 
 >1.15&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#118"
 
 >1.18&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#119"
 
 >1.19&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#120"
 
 >1.20&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#122"
 
 >1.22&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix"
 
 >Appendix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#design-discussions"
 
 >Design discussions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-options"
 
 >Non-options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-design-healthchecks"
 
 >Future design: Healthchecks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#healthchecks-proposal"
 
 >Healthchecks proposal&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#potential-pre-ga-work"
 
 >Potential pre-GA work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rejected-designs"
 
 >Rejected designs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#portable-regex-for-path"
 
 >Portable regex for Path&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;ul>
&lt;li>Move the Ingress resource from the current API group
(extensions.v1beta1) to networking.v1beta1.&lt;/li>
&lt;li>Graduate the Ingress API with bug fixes to GA.&lt;/li>
&lt;/ul>
&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>The &lt;code>extensions&lt;/code> API group is considered deprecated. Ingress is the
last non-deprecated API in that group. All other types have been
migrated to other permanent API groups. Such an API group migration
takes three minor version cycles (~9 months) to ensure
compatibility. This means any API group movement should be started
sooner rather than later.&lt;/p></description></item><item><title>Graduate Ingress to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/758/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/758/</guid><description>&lt;h1 id="graduate-ingress-to-ga">Graduate Ingress to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design"
 
 >Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#summary-of-the-proposed-changes"
 
 >Summary of the proposed changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#potential-features-for-post-v1"
 
 >Potential features for post V1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#path-as-a-prefix"
 
 >Path as a prefix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#paths-proposal"
 
 >Paths proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#defaults"
 
 >Defaults&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#path-matching-semantics"
 
 >Path matching semantics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exact-match"
 
 >&lt;code>Exact&lt;/code> match&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prefix-match"
 
 >&lt;code>Prefix&lt;/code> match&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementationspecific-match"
 
 >&lt;code>ImplementationSpecific&lt;/code> match&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#backend-to-defaultbackend"
 
 >&lt;code>backend&lt;/code> to &lt;code>defaultBackend&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hostname-wildcards"
 
 >Hostname wildcards&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#hostname-proposal"
 
 >Hostname proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#hostname-match-examples"
 
 >Hostname match examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#status"
 
 >Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ingress-class"
 
 >Ingress class&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ingress-class-field"
 
 >Ingress class field&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#interoperability-with-previous-annotation"
 
 >Interoperability with previous annotation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ingressclass-resource"
 
 >IngressClass Resource&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#default-ingressclass"
 
 >Default IngressClass&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternative-backend-types"
 
 >Alternative backend types&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backend-types-proposal"
 
 >Backend types proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backend-types-examples"
 
 >Backend types examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supporting-custom-backends-non-normative"
 
 >Supporting custom backends (non-normative)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposed-roadmap"
 
 >Proposed roadmap&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#114"
 
 >1.14&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#115"
 
 >1.15&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#116"
 
 >1.16&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#117"
 
 >1.17&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#118"
 
 >1.18&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-group-move-to-networkingk8siov1beta1"
 
 >API group move to &lt;code>networking.k8s.io/v1beta1&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix"
 
 >Appendix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#design-discussions"
 
 >Design discussions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-options"
 
 >Non-options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-design-healthchecks"
 
 >Future design: Healthchecks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#healthchecks-proposal"
 
 >Healthchecks proposal&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#potential-pre-ga-work"
 
 >Potential pre-GA work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rejected-designs"
 
 >Rejected designs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#portable-regex-for-path"
 
 >Portable regex for Path&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;ul>
&lt;li>Move the Ingress resource from the current API group
(extensions.v1beta1) to networking.v1beta1.&lt;/li>
&lt;li>Graduate the Ingress API with bug fixes to GA.&lt;/li>
&lt;/ul>
&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>The &lt;code>extensions&lt;/code> API group is considered deprecated. Ingress is the
last non-deprecated API in that group. All other types have been
migrated to other permanent API groups. Such an API group migration
takes three minor version cycles (~9 months) to ensure
compatibility. This means any API group movement should be started
sooner rather than later.&lt;/p></description></item><item><title>Graduate IPv6 to beta</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1138/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1138/</guid><description>&lt;h1 id="graduate-ipv6-to-beta">Graduate IPv6 to beta&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design"
 
 >Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Support for IPv6-only clusters was added in Kubernetes 1.9 as an alpha feature, allowing full Kubernetes capabilities using IPv6 networking instead of IPv4 networking. It also included support for Kubernetes IPv6 cluster deployments using kubeadm and support for the iptables kube-proxy backend using ip6tables. With version 1.13 the Kubernetes default DNS server changed to CoreDNS which has full IPv6 support.&lt;/p></description></item><item><title>Graduate ScheduleDaemonSetPods to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/548/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/548/</guid><description>&lt;h1 id="graduate-scheduledaemonsetpods-to-ga">Graduate ScheduleDaemonSetPods to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-tests"
 
 >Existing Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>ScheduleDaemonSetPods has been created in the past to schedule DaemonSet Pods by the default scheduler. We wish to graduate ScheduleDaemonSetPods feature to make scheduling decisions only in the scheduler and remove the scheduling related code in the DaemonSetController.&lt;/p></description></item><item><title>Graduate Server-side Get and Partial Objects to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2334/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2334/</guid><description>&lt;h1 id="graduate-server-side-get-and-partial-objects-to-ga">Graduate Server-side Get and Partial Objects to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#115"
 
 >1.15&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#116"
 
 >1.16&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#119"
 
 >1.19&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Server-side columnar formatting and partial object metadata has been in beta since Kube 1.10 and as of 1.15 is consistently implemented and in wide use as part of &lt;code>kubectl&lt;/code> and other web interfaces. This document outline required steps to graduate it to GA.&lt;/p></description></item><item><title>Graduate TaintNodeByCondition to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/382/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/382/</guid><description>&lt;h1 id="graduate-taintnodebycondition-to-ga">Graduate TaintNodeByCondition to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-tests"
 
 >Existing Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>TaintNodeByCondition has been created in the past to taint node by their conditions. We wish to graduate TaintNodeByCondition feature to make scheduling decisions based on taints instead of node conditions in the scheduler.&lt;/p></description></item><item><title>Growing Persistent Volume size</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/284/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/284/</guid><description>&lt;h1 id="growing-persistent-volume-size">Growing Persistent Volume size&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volume-plugin-matrix"
 
 >Volume Plugin Matrix&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-design"
 
 >Implementation Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite"
 
 >Prerequisite&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admission-control-and-validations"
 
 >Admission Control and Validations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-manager-resize"
 
 >Controller Manager resize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#file-system-resize-on-kubelet"
 
 >File system resize on kubelet&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-of-file-system-resize"
 
 >Prerequisite of File system resize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#steps-for-resizing-file-system-available-on-volume"
 
 >Steps for resizing file system available on Volume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reduce-coupling-between-resize-operation-and-file-system-type"
 
 >Reduce coupling between resize operation and file system type&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-and-ui-design"
 
 >API and UI Design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pvc-api-change"
 
 >PVC API Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storageclass-api-change"
 
 >StorageClass API change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-api-changes"
 
 >Other API changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="goals">Goals&lt;/h2>
&lt;p>Enable users to increase size of PVs that their pods are using. The user will update PVC for requesting a new size. Underneath we expect that - a controller will apply the change to PV which is bound to the PVC.&lt;/p></description></item><item><title>Guarantee PodDisruptionBudget When Preemption Happens</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3280/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3280/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3280-guarantee-poddisruptionbudget-when-preemption-happens">KEP-3280: Guarantee PodDisruptionBudget When Preemption Happens&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#preemptionpolicy-vs-allowdisruptionbyprioritygreaterthanorequal"
 
 >PreemptionPolicy vs AllowDisruptionByPriorityGreaterThanOrEqual&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases) 
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Handling undecryptable resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3926/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3926/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3926-handling-undecryptable-resources">KEP-3926: Handling undecryptable resources&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-solution"
 
 >Proposed Solution&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-error-status-for-read-failures"
 
 >New Error Status for Read Failures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-delete-option-for-corrupt-objects"
 
 >New Delete Option for Corrupt Objects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admission-control-for-unconditional-deletion"
 
 >Admission Control for Unconditional Deletion&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-considerations"
 
 >Implementation Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#watch-event-propagation-and-client-recovery"
 
 >Watch Event Propagation and Client Recovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-principles"
 
 >Design Principles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-approaches-considered"
 
 >Alternative Approaches Considered&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Harden Default RBAC Discovery ClusterRole(Binding)s</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/789/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/789/</guid><description>&lt;h1 id="harden-default-rbac-discovery-clusterrolebindings">Harden Default RBAC Discovery ClusterRole(Binding)s&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-customization-of-systemdiscovery"
 
 >Existing customization of &lt;code>system:discovery&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependence-on-existing-unauthenticated-behavior"
 
 >Dependence on existing unauthenticated behavior&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#testing"
 
 >Testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation"
 
 >Documentation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The aim of this change is to remove the &lt;code>system:unauthenticated&lt;/code> subjects from the &lt;code>system:discovery&lt;/code> and &lt;code>system:basic-user&lt;/code> ClusterRoleBindings, while preserving unauthenticated access to a genuinely non-sensitive subset of the current APIs (e.g. &lt;code>GET /healthz&lt;/code>, &lt;code>GET /version&lt;/code>). This will improve the default privacy and security posture for new clusters.&lt;/p></description></item><item><title>Harden Kubelet Serving Certificate Validation in Kube-API server</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4872/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4872/</guid><description>&lt;h1 id="kep-4872-harden-kubelet-serving-certificate-validation-in-kube-api-server">KEP-4872: Harden Kubelet Serving Certificate Validation in Kube-API server&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#impact-of-node-impersonation"
 
 >Impact of node impersonation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enabling-the-feature"
 
 >Enabling the feature&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tls-insecure"
 
 >TLS insecure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Hardening exec endpoints against SSRF</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1898/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1898/</guid><description>&lt;h1 id="kep-1898-hardening-exec-endpoints-against-ssrf">KEP-1898: Hardening exec endpoints against SSRF&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-api"
 
 >Kubelet API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-remove-the-run-endpoint"
 
 >1. Remove the &lt;code>/run&lt;/code> endpoint&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-require-a-post-request-to-the-streaming-endpoints"
 
 >2. Require a &lt;code>POST&lt;/code> request to the streaming endpoints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-remove-the-uid-versions-of-the-endpoints"
 
 >3. Remove the &lt;code>UID&lt;/code> versions of the endpoints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-require-the-request-options-to-be-provided-in-the-request-body"
 
 >4. Require the request options to be provided in the request body&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-server-changes"
 
 >API Server Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-require-options-to-be-included-in-the-post-request-body-for-exec-requests"
 
 >1. Require options to be included in the POST request body for exec requests.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-match-new-kubelet-request-requirements"
 
 >2. Match new Kubelet request requirements.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-require-the-websocket-protocol-for-get-requests"
 
 >3. Require the websocket protocol for GET requests.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#client-changes"
 
 >Client Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-criteria"
 
 >Alpha Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Hierarchical Namespace Controller As A Subproject</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1687/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1687/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please ensure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "title", "authors", "owning-sig",
 "status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary", and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG that are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as a `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement", for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If there are
new details that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable` or significant changes once
it is marked `implementable` must be approved by each of the KEP approvers.
If any of those approvers is no longer appropriate than changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross cutting KEPs).
-->
&lt;h1 id="kep-1687-hierarchical-namespaces-as-a-subproject">KEP-1687: Hierarchical Namespaces As A Subproject&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#intake"
 
 >Intake&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#absorb-hierarchical-namespace-controller-into-another-project"
 
 >Absorb Hierarchical Namespace Controller Into Another Project&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hierarchical-namespace-controller-continues-as-a-non-sig-project"
 
 >Hierarchical Namespace Controller Continues As A Non-Sig Project&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#abandon-hierarchical-namespace-controller"
 
 >Abandon Hierarchical Namespace Controller&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;a href="https://github.com/kubernetes-sigs/multi-tenancy/tree/master/incubator/hnc"
 
 target="_blank" rel="noopener">Hierarchical Namespace Controller&lt;/a>

makes it easier for you to create and manage namespaces in your cluster.
For example, you can create a hierarchical namespace under your team&amp;rsquo;s namespace,
even if you don&amp;rsquo;t have cluster-level permission to create namespaces, and easily
apply policies like RBAC and Network Policies across all namespaces in your
team (e.g. a set of related microservices).&lt;/p></description></item><item><title>Honor Persistent Volume Reclaim Policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2644/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2644/</guid><description>&lt;h1 id="kep-2644-honor-persistent-volume-reclaim-policy">KEP-2644: Honor Persistent Volume Reclaim Policy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csi-driver-volumes"
 
 >CSI Driver volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#in-tree-plugin-volumes"
 
 >In-Tree Plugin volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Host Network Support for Windows Pods</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3503/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3503/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3503-host-network-support-for-windows-pods">KEP-3503: Host Network Support for Windows Pods&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri--kubelet-updates"
 
 >CRI / Kubelet Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-support"
 
 >Container Runtime Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>HPA supports scaling to/from zero pods for object/external metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2021/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2021/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2021-hpa-supports-scaling-tofrom-zero-pods-for-objectexternal-metrics">KEP-2021: HPA supports scaling to/from zero pods for object/external metrics&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-scale-a-heavy-queue-consumer-on-demand"
 
 >Story 1: Scale a heavy queue consumer on-demand&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>HTTP/2 cleartext (h2c) container probes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5999/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5999/</guid><description>&lt;h1 id="kep-5999-http2-cleartext-h2c-container-probes">KEP-5999: HTTP/2 cleartext (h2c) container probes&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-optional"
 
 >Story 1 (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-optional"
 
 >Story 2 (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-design"
 
 >API Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-probe-execution"
 
 >Kubelet Probe Execution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#http2-cleartext-transport"
 
 >HTTP/2 Cleartext Transport&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#option-b-add-a-dedicated-h2cget-probe-handler"
 
 >Option B: Add a dedicated &lt;code>h2cGet&lt;/code> probe handler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-c-extend-httpget-with-an-http2cleartext-boolean"
 
 >Option C: Extend &lt;code>httpGet&lt;/code> with an &lt;code>http2Cleartext&lt;/code> boolean&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-d-add-http2_cleartext-as-a-new-httpgetscheme-value"
 
 >Option D: Add &lt;code>HTTP2_CLEARTEXT&lt;/code> as a new &lt;code>httpGet.scheme&lt;/code> value&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>HTTP3</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3156/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3156/</guid><description>&lt;h1 id="kep-3156-http3">KEP-3156: HTTP3&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube-apiserver"
 
 >kube-apiserver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-go"
 
 >client-go&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>HugePages</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1539/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1539/</guid><description>&lt;h1 id="hugepages">HugePages&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-specification"
 
 >Node Specification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-specification"
 
 >Pod Specification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-updates"
 
 >CRI Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cgroup-enforcement"
 
 >Cgroup Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limits-and-quota"
 
 >Limits and Quota&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-changes"
 
 >Scheduler changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cadvisor-changes"
 
 >cAdvisor changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#huge-pages-as-shared-memory"
 
 >Huge pages as shared memory&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#numa"
 
 >NUMA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria-for-hugepagestoragemediumsize"
 
 >Graduation Criteria for HugePageStorageMediumSize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan-for-hugepagestoragemediumsize"
 
 >Test Plan for HugePageStorageMediumSize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire-for-hugepagestoragemediumsize"
 
 >Production Readiness Review Questionnaire for HugePageStorageMediumSize&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-18"
 
 >Version 1.8&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-19"
 
 >Version 1.9&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-114"
 
 >Version 1.14&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-118"
 
 >Version 1.18&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-119"
 
 >Version 1.19&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-122"
 
 >Version 1.22&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>A proposal to enable applications running in a Kubernetes cluster to use huge
pages.&lt;/p></description></item><item><title>Identify Pod's OS during API Server admission</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2802/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2802/</guid><description>&lt;h1 id="kep-2802-identify-pods-os-during-api-server-admission">KEP-2802: Identify Pod&amp;rsquo;s OS during API Server admission&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-kube-apiserver"
 
 >Changes to kube-apiserver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-podsecurity-standards"
 
 >Changes to PodSecurity Standards&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-kubelet"
 
 >Changes to Kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#potential-future-changes-to-scheduler"
 
 >Potential future changes to Scheduler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Image Promoter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1734/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1734/</guid><description>&lt;h1 id="image-promoter">Image Promoter&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#staging-container-registry"
 
 >Staging Container Registry&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-container-registry"
 
 >Production Container Registry&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#promotion-process"
 
 >Promotion Process&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>For security reasons, we cannot allow everyone to publish container images into the official kubernetes container registry. This is why we need a process that allows us to review who built an image and who approved it to be shown in the official channels.&lt;/p></description></item><item><title>Image pull per runtime class</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4216/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4216/</guid><description>&lt;h1 id="kep">KEP&lt;/h1>
&lt;h1 id="kep-4216-image-pull-per-runtime-class">KEP-4216: Image pull per runtime class&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#crikubelet-changes"
 
 >CRI/kubelet changes:&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#imagespec"
 
 >ImageSpec&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet-changes"
 
 >Kubelet changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tooling-changes"
 
 >Tooling changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#crictl-changes"
 
 >CRICTL changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>ImageMaximumGCAge in Kubelet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4210/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4210/</guid><description>&lt;h1 id="kep-4210-imagemaximumgcage-in-kubelet">KEP-4210: ImageMaximumGCAge in Kubelet&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>ImageVolume with an image digest</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5365/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5365/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5365-imagevolume-with-an-image-digest">KEP-5365: ImageVolume with an image digest&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Immutable label selectors for all namespaces</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2161/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2161/</guid><description>&lt;h1 id="kep-2161--immutable-label-selectors-for-all-namespaces">KEP-2161 : Immutable label selectors for all namespaces&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#avoid-labels-misuse"
 
 >Avoid labels misuse&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lack-of-permissions"
 
 >Lack of permissions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#simplicity"
 
 >Simplicity&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-we-are-directly-enabling-this-feature-in-beta"
 
 >Why we are directly enabling this feature in beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-new-select-by-name-capabilities-to-policy-apis"
 
 >Add new select-by-name capabilities to policy APIs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-machinery-modifications-and-workarounds"
 
 >API Machinery modifications and workarounds&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-modifications-at-the-networkpolicy-level"
 
 >API modifications at the NetworkPolicy level&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#improve-networkpolicy-api-and-deprecate-old-fields"
 
 >Improve NetworkPolicy API and deprecate old fields&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Immutable Secrets and ConfigMaps</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1412/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1412/</guid><description>&lt;h1 id="immutable-ephemeral-volumes">Immutable ephemeral volumes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#define-immutability-at-volumesource-level"
 
 >Define immutability at VolumeSource level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#optimize-watches"
 
 >Optimize watches&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Implement maxUnavailable for StatefulSets</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/961/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/961/</guid><description>&lt;h1 id="kep-961-implement-maxunavailable-in-statefulset">KEP-961: Implement maxUnavailable in StatefulSet&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#table-of-contents"
 
 >Table of Contents&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Improve kubectl plugin resolution for non-shadowing subcommands</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3638/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3638/</guid><description>&lt;h1 id="kep-3638-improve-kubectl-plugin-resolution-for-non-shadowing-subcommands">KEP-3638: Improve kubectl plugin resolution for non-shadowing subcommands&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Improve pod selection accuracy across workload types</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5325/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5325/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5625-hpa---improve-pod-selection-accuracy-across-workload-types">KEP-5625: HPA - Improve pod selection accuracy across workload types&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pluggable-pod-filtering"
 
 >Pluggable Pod Filtering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-enhancements"
 
 >Controller Enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scope-of-support"
 
 >Scope of Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Improved multi-numa alignment in Topology Manager</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3545/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3545/</guid><description>&lt;h1 id="kep-3545-improved-multi-numa-alignment-in-topology-manager">KEP-3545: Improved multi-numa alignment in Topology Manager&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-change"
 
 >Proposed Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-strategy"
 
 >Implementation strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#calculating-average-distance"
 
 >Calculating average distance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to G.A Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria-of-options"
 
 >Graduation Criteria of Options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-of-options-to-beta-quality-non-hidden"
 
 >Graduation of Options to &lt;code>Beta-quality&lt;/code> (non-hidden)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-of-options-from-beta-quality-to-ga-quality"
 
 >Graduation of Options from &lt;code>Beta-quality&lt;/code> to &lt;code>G.A-quality&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>In-Place Pod-Level Resources Resize</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5419/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5419/</guid><description>&lt;h1 id="kep-5419-in-place-pod-level-resources-resize">KEP-5419: In-Place Pod-Level Resources Resize&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#design-principles"
 
 >Design Principles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#componentsfeatures-changes"
 
 >Components/Features changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podstatus-api-changes"
 
 >PodStatus API changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resize-restart-policy"
 
 >Resize Restart Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#surfacing-pod-resource-requirements"
 
 >Surfacing Pod Resource Requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-challenge-of-determining-effective-pod-resource-requirements"
 
 >The Challenge of Determining Effective Pod Resource Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals-of-surfacing-pod-resource-requirements"
 
 >Goals of surfacing Pod Resource Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details-1"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notes-for-implementation"
 
 >Notes for implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-alpha-target-135-done"
 
 >Phase 1: Alpha (target 1.35) [DONE]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2--beta-target-136"
 
 >Phase 2: Beta (target 1.36)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-stable"
 
 >GA (stable)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>In-place Update of Pod Resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1287/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1287/</guid><description>&lt;h1 id="in-place-update-of-pod-resources">In-place Update of Pod Resources&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#allocated-resources"
 
 >Allocated Resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#subresource"
 
 >Subresource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-resize-policy"
 
 >Container Resize Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resize-status"
 
 >Resize Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-changes"
 
 >CRI Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resource-states"
 
 >Resource States&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#priority-of-resize-requests"
 
 >Priority of Resize Requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-triggered-eviction"
 
 >Kubelet-triggered eviction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-and-api-server-interaction"
 
 >Kubelet and API Server Interaction&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-restart-tolerance"
 
 >Kubelet Restart Tolerance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduler-and-api-server-interaction"
 
 >Scheduler and API Server Interaction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flow-control"
 
 >Flow Control&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#container-resource-limit-update-ordering"
 
 >Container resource limit update ordering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-resource-limit-update-failure-handling"
 
 >Container resource limit update failure handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-changes-flow"
 
 >CRI Changes Flow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-restart-analysis"
 
 >Kubelet Restart Analysis&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notes"
 
 >Notes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#lifecycle-nuances"
 
 >Lifecycle Nuances&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#atomic-resizes"
 
 >Atomic Resizes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#actuating-resizes"
 
 >Actuating Resizes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-limit-decreases"
 
 >Memory Limit Decreases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#swap"
 
 >Swap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sidecars"
 
 >Sidecars&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#qos-class"
 
 >QOS Class&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-quota"
 
 >Resource Quota&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#affected-components"
 
 >Affected Components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#instrumentation"
 
 >Instrumentation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet_container_requested_resizes_total"
 
 >&lt;code>kubelet_container_requested_resizes_total&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet_pod_resize_duration_seconds"
 
 >&lt;code>kubelet_pod_resize_duration_seconds&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet_pod_infeasible_resizes_total"
 
 >&lt;code>kubelet_pod_infeasible_resizes_total&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet_pod_pending_resizes"
 
 >&lt;code>kubelet_pod_pending_resizes&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet_pod_in_progress_resizes"
 
 >&lt;code>kubelet_pod_in_progress_resizes&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet_pod_deferred_resize_accepted_total"
 
 >&lt;code>kubelet_pod_deferred_resize_accepted_total&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#static-cpu--memory-policy"
 
 >Static CPU &amp;amp; Memory Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-enhancements"
 
 >Future Enhancements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mutable-qos-class-shape"
 
 >Mutable QOS Class &amp;quot;Shape&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-sketch-workload-resource-resize"
 
 >Design Sketch: Workload resource resize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-sketch-explicit-qos-class"
 
 >Design Sketch: Explicit QOS Class&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-sktech-pod-level-resources"
 
 >Design Sktech: Pod-level Resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#allocation-manager"
 
 >Allocation Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kuberuntime-manager"
 
 >Kuberuntime Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-uunit-tests"
 
 >CRI uunit tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-resize-e2e-tests"
 
 >Pod Resize E2E Tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-the-tests-perform-verification"
 
 >How the tests perform verification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#success-test-cases-for-guaranteed-pods-with-one-container"
 
 >Success test cases for Guaranteed Pods with one container&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#success-test-cases-for-guaranteed-pods-with-multiple-containers"
 
 >Success test cases for Guaranteed Pods with multiple containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#success-test-cases-for-burstable-pods-with-one-container"
 
 >Success test cases for Burstable Pods with one container&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-success-test-cases-for-burstable-pods"
 
 >Other success test cases for Burstable Pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-limit-decrease"
 
 >Memory limit decrease&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#patch-error-tests"
 
 >Patch error tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-logic-tests"
 
 >Scheduler logic tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#retry-of-deferred-resizes"
 
 >Retry of deferred resizes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-quota-tests"
 
 >Resource Quota tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limit-ranger-tests"
 
 >Limit Ranger tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#coverage-of-the-read-and-replace-endpoints"
 
 >Coverage of the READ and REPLACE endpoints&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#backward-compatibility-and-negative-tests"
 
 >Backward Compatibility and Negative Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#allocated-resource-limits"
 
 >Allocated Resource Limits&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>In-place Update Pod Resources alognside Static CPU Manager Policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5554/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5554/</guid><description>&lt;h1 id="kep-5554-in-place-update-pod-resources-alongside-static-cpu-manager-policy">KEP-5554: In-place Update Pod Resources alongside Static CPU Manager Policy&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt; !-- toc --&amp;rt; &amp;lt; !-- /toc --&amp;rt; &lt;/code>
tags, and then generate with `hack/update-toc.sh` .
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feasible-cpu-static-policy-options-combination-matrix"
 
 >Feasible CPU Static Policy Options Combination matrix&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-cpu-reservation"
 
 >Kubelet CPU reservation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-interaction-with-topology-manager"
 
 >Kubelet interaction with Topology Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-admission-topology-manager-interactions"
 
 >Pod Admission Topology Manager interactions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#current-behavior"
 
 >Current behavior&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#handling-cpu-limit-increase"
 
 >Handling CPU Limit Increase&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-cpu-limit-decrease"
 
 >Handling CPU Limit Decrease&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-cases-for-cpu-resize"
 
 >Use Cases for CPU Resize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-happens-on-cpu-resize-failures"
 
 >What happens on CPU Resize failures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#checkpoint-file-example-during-resize"
 
 >Checkpoint file example during resize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supported-cpu-static-policy-options-combination-matrix"
 
 >Supported CPU Static Policy Options Combination matrix&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#containercpus-checkpoint"
 
 >ContainerCPUs checkpoint&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-enhancements"
 
 >Future enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#option-1-new-field-mustkeepcpus-in-api"
 
 >Option 1: New field mustKeepCPUs in API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-2-use-a-lifo-cpuset-solution"
 
 >Option 2: Use a LIFO cpuset solution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-3-use-nri-solution"
 
 >Option 3: Use NRI solution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/625/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/625/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration-design-doc">In-tree Storage Plugin to CSI Migration Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#glossary"
 
 >Glossary&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integratione2e-tests"
 
 >Integration/e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#per-driver-migration-testing"
 
 >Per-driver migration testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngradeskew-testing"
 
 >Upgrade/Downgrade/Skew Testing&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document presents a detailed design for migrating in-tree storage plugins
to CSI. This will be an opt-in feature turned on at cluster start time that
will redirect in-tree plugin operations to a corresponding CSI Driver.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - AWS</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1487/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1487/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---aws-ebs-design-doc">In-tree Storage Plugin to CSI Migration - AWS EBS Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - Azuredisk</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1490/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1490/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---azuredisk-design-doc">In-tree Storage Plugin to CSI Migration - AzureDisk Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - Azurefile</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1885/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1885/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---azure-file-design-doc">In-tree Storage Plugin to CSI Migration - Azure File Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - Ceph Cephfs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2924/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2924/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---ceph-cephfs-design-doc">In-tree Storage Plugin to CSI Migration - Ceph Cephfs Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - Ceph RBD</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2923/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2923/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---ceph-rbd-design-doc">In-tree Storage Plugin to CSI Migration - Ceph RBD Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - Cinder</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1489/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1489/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---openstack-cinder-design-doc">In-tree Storage Plugin to CSI Migration - OpenStack Cinder Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - GCE PD</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1488/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1488/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---gce-design-doc">In-tree Storage Plugin to CSI Migration - GCE Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - Portworx</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2589/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2589/</guid><description>&lt;h1 id="kep-2589-in-tree-storage-plugin-to-csi-migration---portworx-design-doc">KEP-2589: In-tree Storage Plugin to CSI Migration - Portworx Design Doc&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>In-tree Storage Plugin to CSI Migration - vSphere</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1491/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1491/</guid><description>&lt;h1 id="in-tree-storage-plugin-to-csi-migration---vsphere-design-doc">In-tree Storage Plugin to CSI Migration - vSphere Design Doc&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-feature-gates"
 
 >New Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document present as a vendor specific KEP for the parent KEP
&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration"
 
 target="_blank" rel="noopener">CSI Migration&lt;/a>
&lt;/p>
&lt;p>This inherits all the contents from its parent KEP. It will introduce two new feature gates to be
used as as described in its parent KEP. For all other contents, please refer to the parent KEP.&lt;/p></description></item><item><title>Indexed Job</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2214/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2214/</guid><description>&lt;h1 id="kep-2214-indexed-job">KEP-2214: Indexed Job&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#jobspec-api"
 
 >JobSpec API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-detail"
 
 >Pod detail&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-completion-and-restart-policy"
 
 >Job completion and restart policy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#track-completed-indexes-in-job-status"
 
 >Track completed indexes in Job status&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#job-parallelism"
 
 >Job parallelism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>IngressClass Namespaced Params</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2365/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2365/</guid><description>&lt;h1 id="kep-2365-ingressclass-namespaced-params">KEP-2365: IngressClass Namespaced Params&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-release"
 
 >Alpha release&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes adding new Scope and Namespace fields to the IngressClass
ParametersRef field.&lt;/p></description></item><item><title>Insecure Backend Proxy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1295/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1295/</guid><description>&lt;h1 id="kep-1295-insecure-backend-proxy">KEP-1295: Insecure Backend Proxy&lt;/h1>
&lt;p>When trying to get logs for a pod, it is possible for a kubelet to have an expired serving certificate.
If a client chooses, it should be possible to bypass the default behavior of the kube-apiserver and allow the kube-apiserver
to skip TLS verification of the kubelet to allow gathering logs. This is especially important for debugging
misbehaving self-hosted clusters.&lt;/p>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Integrate CSI Volume attach limits with cluster autoscaler</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5030/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5030/</guid><description>&lt;h1 id="kep-5030-integrate-volume-attach-limit-into-cluster-autoscaler">KEP-5030: Integrate Volume Attach limit into cluster autoscaler&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-autoscaler-changes"
 
 >Cluster Autoscaler changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scaling-a-node-group-that-already-has-one-or-more-nodes"
 
 >Scaling a node-group that already has one or more nodes.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scaling-from-zero"
 
 >Scaling from zero&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-scheduler-change"
 
 >Kubernetes Scheduler change&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#handling-node-readiness"
 
 >Handling Node Readiness&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-it-is-safe-to-prevent-pod-placement"
 
 >When it is safe to Prevent pod placement?&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-happens-if-cluster-admin-opts-in-to-prevent-pod-scheduling-but-autoscaler-does-not-have-csi-attach-limit-awareness"
 
 >What happens if cluster-admin opts-in to prevent pod scheduling but autoscaler does not have CSI attach limit awareness?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Integrate Workload APIs with Job Controller</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5547/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5547/</guid><description>&lt;h1 id="kep-5547-integrate-workload-apis-with-job-controller">KEP-5547: Integrate Workload APIs with Job Controller&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#job-integration---api-usage-examples"
 
 >Job Integration - API Usage Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-1-gang-scheduling-with-zone-topology-and-atomic-disruption"
 
 >Example 1: Gang scheduling with zone topology and atomic disruption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-2-backward-compatibility-and-defaulting-implicit-opt-out"
 
 >Example 2: Backward Compatibility and Defaulting (Implicit Opt-Out)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-3-cronjob-with-gang-scheduling"
 
 >Example 3: CronJob with Gang Scheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ml-training-job-with-gang-scheduling"
 
 >ML Training Job with Gang Scheduling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backward-compatible-standard-batch-job"
 
 >Backward-Compatible Standard Batch Job&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-constraints"
 
 >Alpha Constraints&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-principles--assumptions"
 
 >Core Principles &amp;amp; Assumptions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-api-changes"
 
 >Job API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#go-package-placement--graduation"
 
 >Go Package Placement &amp;amp; Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#integration-with-the-workloadbuilder-library"
 
 >Integration with the workloadbuilder Library&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#library-dependency-and-packaging"
 
 >Library Dependency and Packaging&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#building-the-logical-tree-and-compiling-the-workload"
 
 >Building the Logical Tree and Compiling the &lt;code>Workload&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-validation-via-the-workloadbuilder-library"
 
 >API Validation via the &lt;code>workloadbuilder&lt;/code> Library&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#instantiating-the-runtime-podgroup"
 
 >Instantiating the runtime &lt;code>PodGroup&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reconcile-integration-and-error-handling"
 
 >Reconcile Integration and Error Handling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#job-controller-changes"
 
 >Job Controller Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workload-and-podgroup-discovery"
 
 >Workload and PodGroup Discovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-workflow"
 
 >Controller Workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ownerreferences-relationship"
 
 >OwnerReferences Relationship&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defaulting-rules"
 
 >Defaulting Rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#object-creation-order"
 
 >Object Creation Order&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-updates-and-mutability"
 
 >Handling Updates and Mutability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reconciliation-flow-upon-updates"
 
 >Reconciliation Flow upon Updates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-byo-workloadpodgroup"
 
 >Interaction with BYO Workload/PodGroup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#naming-conventions"
 
 >Naming Conventions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deletion-and-garbage-collection"
 
 >Deletion and Garbage Collection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v136"
 
 >Alpha (v1.36)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-v137"
 
 >Alpha (v1.37)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Interactive(-i) flag to kubectl delete for user confirmation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3895/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3895/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3895-interactive-i-flag-to-kubectl-delete-for-user-confirmation">KEP-3895: Interactive(-i) flag to kubectl delete for user confirmation&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsdesign"
 
 >Implementation Details/Design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#confirming-per-resource-yesno"
 
 >Confirming Per Resource (yes/no)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#confirming-per-resource-with-yes-to-all-optionyesnoyes-to-all"
 
 >Confirming Per Resource with Yes to All Option(yes/no/yes to all)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Introduce kuberc</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3104/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3104/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3104-introduce-kuberc">KEP-3104: Introduce kuberc&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5"
 
 >Story 5&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#open-questions"
 
 >Open Questions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubectl-kuberc-management-command-kubectl-kuberc"
 
 >Kubectl Kuberc Management Command (kubectl kuberc)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-kuberc-view"
 
 >kubectl kuberc view&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-kuberc-set---section-defaults"
 
 >kubectl kuberc set &amp;ndash;section defaults&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#command"
 
 >command&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option"
 
 >option&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#overwrite"
 
 >overwrite&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubectl-kuberc-set---section-aliases"
 
 >kubectl kuberc set &amp;ndash;section aliases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#name"
 
 >name&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#command-1"
 
 >command&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-1"
 
 >option&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prependarg"
 
 >prependarg&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendarg"
 
 >appendarg&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubectl-kuberc-set---section-credentialplugin"
 
 >kubectl kuberc set &amp;ndash;section credentialplugin&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policy"
 
 >policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allowlist-entry"
 
 >allowlist-entry&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#allowlist-design-details"
 
 >Allowlist Design Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Introduce MatchLabelKeys and MismatchLabelKeys to PodAffinity and PodAntiAffinity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3633/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3633/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3633-introduce-matchlabelkeys-and-mismatchlabelkeys-to-podaffinity-and-podantiaffinity">KEP-3633: Introduce MatchLabelKeys and MismatchLabelKeys to PodAffinity and PodAntiAffinity&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implement-as-a-new-enum-in-labelselector"
 
 >implement as a new enum in LabelSelector&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>IP/CIDR Validation Improvements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4858/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4858/</guid><description>&lt;h1 id="kep-4858-ipcidr-validation-improvements">KEP-4858: IP/CIDR Validation Improvements&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#updated-ipcidr-validity-criteria"
 
 >Updated IP/CIDR validity criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#affected-fields"
 
 >Affected Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#canonicalization-of-kubernetes-controlled-values"
 
 >Canonicalization of Kubernetes-controlled values&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-warnings"
 
 >API Warnings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#updated-validation"
 
 >Updated Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ratcheting-validation-for-pre-existing-objects"
 
 >Ratcheting validation for pre-existing objects&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ratcheting-validation-for-immutable-fields"
 
 >Ratcheting validation for immutable fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fixing-pre-existing-invalid-values"
 
 >Fixing pre-existing invalid values&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>IPVS Load Balancing Mode in Kubernetes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/265/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/265/</guid><description>&lt;h1 id="ipvs-load-balancing-mode-in-kubernetes">IPVS Load Balancing Mode in Kubernetes&lt;/h1>
&lt;p>&lt;strong>Note: This is a retroactive KEP. Credit goes to @m1093782566, @haibinxie, and @quinton-hoole for all information &amp;amp; design in this KEP.&lt;/strong>&lt;/p>
&lt;p>&lt;strong>Important References: &lt;a href="https://github.com/kubernetes/community/pull/692/files"
 
 target="_blank" rel="noopener">https://github.com/kubernetes/community/pull/692/files&lt;/a>
&lt;/strong>&lt;/p>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#challenges-and-open-questions-optional"
 
 >Challenges and Open Questions [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube-proxy-parameter-changes"
 
 >Kube-Proxy Parameter Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#build-changes"
 
 >Build Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deployment-changes"
 
 >Deployment Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-considerations"
 
 >Design Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ipvs-service-network-topology"
 
 >IPVS service network topology&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#port-remapping"
 
 >Port remapping&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#falling-back-to-iptables"
 
 >Falling back to iptables&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supporting-nodeport-service"
 
 >Supporting NodePort service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supporting-clusterip-service"
 
 >Supporting ClusterIP service&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#support-loadbalancer-service"
 
 >Support LoadBalancer service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-only-nodelocal-endpoints"
 
 >Support Only NodeLocal Endpoints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#session-affinity"
 
 >Session affinity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cleaning-up-inactive-rules"
 
 >Cleaning up inactive rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sync-loop-pseudo-code"
 
 >Sync loop pseudo code&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga---future"
 
 >GA -&amp;gt; Future&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We are building a new implementation of kube proxy built on top of IPVS (IP Virtual Server).&lt;/p></description></item><item><title>Issue Triage Workflow and Automation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1553/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1553/</guid><description>&lt;h1 id="kep-1553-issue-triage-workflow-and-automation">KEP-1553: Issue Triage Workflow and Automation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-workflow"
 
 >New Workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#re-categorize-the-triagesupport-label"
 
 >Re-categorize the triage/support label&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#group-leads"
 
 >Group Leads&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reviewers-and-approvers"
 
 >Reviewers and Approvers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#contributors"
 
 >Contributors&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#needs-triage-and-triageaccepted-labels"
 
 >needs-triage and triage/accepted labels&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rename-the-triagesupport-label"
 
 >Rename the triage/support label&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://github.com/kubernetes/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Contributor documentation has been created in &lt;a href="https://git.k8s.io/community"
 
 target="_blank" rel="noopener">kubernetes/community&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>To ease the burden of SIG/area reviewers/approvers, we would like to prescribe
a triage workflow and supporting automation.&lt;/p></description></item><item><title>Job API managed-by label</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4368/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4368/</guid><description>&lt;h1 id="kep-4368-support-managedby-field-for-jobs">KEP-4368: Support managedBy field for Jobs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prior-work"
 
 >Prior work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-the-field-be-mutable"
 
 >Can the field be mutable?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-for-multikueue"
 
 >Use for MultiKueue&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ecosystem-fragmentation-due-to-forks"
 
 >Ecosystem fragmentation due to forks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#two-controllers-running-when-feature-is-disabled"
 
 >Two controllers running when feature is disabled&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#debuggability"
 
 >Debuggability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-controllers-not-compatible-with-api-assumptions-by-cronjob"
 
 >Custom controllers not compatible with API assumptions by CronJob&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cronjob-delaying-start-of-a-new-job-in-forbid-mode"
 
 >CronJob delaying start of a new Job in Forbid mode&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-overview"
 
 >Implementation overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-status-validation"
 
 >Job status validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#terminating-pods-and-terminal-job-conditions"
 
 >Terminating pods and terminal Job conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutability"
 
 >Mutability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ecosystem-assessment"
 
 >Ecosystem Assessment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#follow-up-work"
 
 >Follow-up Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#skip-reconciliation-in-the-event-handler"
 
 >Skip reconciliation in the event handler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reserved-controller-name-value"
 
 >Reserved controller name value&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defaulting-of-the-for-newly-created-jobs"
 
 >Defaulting of the for newly created jobs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-names-for-field"
 
 >Alternative names for field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#managed-by-label"
 
 >Managed-by label&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-names-for-label-scopes"
 
 >Alternative names for label (scopes)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#generic-kubernetesiomanaged-by"
 
 >Generic kubernetes.io/managed-by&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-prefixed-jobkubernetesiomanaged-by"
 
 >Job-prefixed job.kubernetes.io/managed-by&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternative-mechanisms-to-mirror-the-job-status"
 
 >Alternative mechanisms to mirror the Job status&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mirrored-by-label"
 
 >mirrored-by label&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#class-based-approach"
 
 >Class-based approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#annotation"
 
 >Annotation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#custom-wrapping-crd"
 
 >Custom wrapping CRD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-the-specsuspend-field"
 
 >Use the spec.suspend field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-field-selectors"
 
 >Using field selectors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-ideas-to-improve-debuggability"
 
 >Alternative ideas to improve debuggability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#condition-to-indicate-job-is-skipped"
 
 >Condition to indicate Job is skipped&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#event-indicating-the-job-is-skipped"
 
 >Event indicating the Job is skipped&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Job success/completion policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3998/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3998/</guid><description>&lt;h1 id="kep-3998-job-successcompletion-policy">KEP-3998: Job success/completion policy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#no-support-jobsuccesspolicy-for-the-nonindexed-job"
 
 >No support JobSuccessPolicy for the NonIndexed Job&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#difference-between-complete-and-successcriteriamet"
 
 >Difference between &amp;quot;Complete&amp;quot; and &amp;quot;SuccessCriteriaMet&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-cronjob-concurrentpolicy-is-not-affected-by-jobsuccesspolicy"
 
 >The CronJob concurrentPolicy is not affected by JobSuccessPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-never-switches-from-successcriteriamet-to-failed"
 
 >Status never switches from &amp;quot;SuccessCriteriaMet&amp;quot; to &amp;quot;Failed&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-scope-of-the-successcriteriamet-condition"
 
 >The scope of the SuccessCriteriaMet condition&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#job-api"
 
 >Job API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evaluation"
 
 >Evaluation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#transition-of-statusconditions"
 
 >Transition of &amp;quot;status.conditions&amp;quot;&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-situations-where-successpolicy-conflicts-other-terminating-policies"
 
 >The situations where successPolicy conflicts other terminating policies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#relax-a-validation-for-the-completions-of-the-indexed-job"
 
 >Relax a validation for the &amp;quot;completions&amp;quot; of the indexed job&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-api-name-criteria"
 
 >Alternative API Name, &amp;quot;Criteria&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hold-succeededindexes-as-int-typed-in-successpolicy"
 
 >Hold succeededIndexes as []int typed in successPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#acceptable-percentage-of-total-succeeded-indexes-in-the-succeededcount-field"
 
 >Acceptable percentage of total succeeded indexes in the succeededCount field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#match-succeededindexes-using-cel"
 
 >Match succeededIndexes using CEL&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-jobset-instead-of-indexed-job"
 
 >Use JobSet instead of Indexed Job&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possibility-for-the-lingering-pods-to-continue-running-after-the-job-meets-the-successpolicy"
 
 >Possibility for the lingering pods to continue running after the job meets the successPolicy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#additional-story"
 
 >Additional Story&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-api-1"
 
 >Job API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evaluation-1"
 
 >Evaluation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#transition-of-statusconditions-1"
 
 >Transition of &amp;quot;status.conditions&amp;quot;&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#possibility-for-introducing-a-new-cronjob-concurrentpolicy-forbiduntiljobsuccessful"
 
 >Possibility for introducing a new CronJob concurrentPolicy, &amp;quot;ForbidUntilJobSuccessful&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possibility-for-the-configurable-reason-for-the-successcriteriamet-condition"
 
 >Possibility for the configurable reason for the &amp;quot;SuccessCriteriaMet&amp;quot; condition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#additional-story-1"
 
 >Additional Story&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-api-2"
 
 >Job API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#set-the-entire-reason"
 
 >Set the entire reason&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#set-the-suffix-of-the-reason"
 
 >Set the suffix of the reason&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Job tracking without lingering Pods</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2307/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2307/</guid><description>&lt;h1 id="kep-2307-job-tracking-without-lingering-pods">KEP-2307: Job tracking without lingering Pods&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-api-calls"
 
 >New API calls&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bigger-job-status"
 
 >Bigger Job status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unprotected-job-status-endpoint"
 
 >Unprotected Job status endpoint&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#jobs-with-legacy-tracking"
 
 >Jobs with legacy tracking&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#algorithm"
 
 >Algorithm&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#simplified-algorithm-for-indexed-jobs"
 
 >Simplified algorithm for Indexed Jobs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#deleted-pods"
 
 >Deleted Pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deleted-jobs"
 
 >Deleted Jobs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-adoption"
 
 >Pod adoption&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#monitoring-pods-with-finalizers"
 
 >Monitoring Pods with finalizers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-test"
 
 >E2E test:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#load-test"
 
 >Load test:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-this-feature-be-enabled--disabled-in-a-live-cluster"
 
 >How can this feature be enabled / disabled in a live cluster?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#does-enabling-the-feature-change-any-default-behavior"
 
 >Does enabling the feature change any default behavior?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-the-feature-be-disabled-once-it-has-been-enabled-ie-can-we-roll-back-the-enablement"
 
 >Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-happens-if-we-reenable-the-feature-if-it-was-previously-rolled-back"
 
 >What happens if we reenable the feature if it was previously rolled back?**&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-tests-for-feature-enablementdisablement"
 
 >Are there any tests for feature enablement/disablement?**&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-a-rollout-fail-can-it-impact-already-running-workloads"
 
 >How can a rollout fail? Can it impact already running workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-specific-metrics-should-inform-a-rollback"
 
 >What specific metrics should inform a rollback?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#were-upgrade-and-rollback-tested-was-the-upgrade-downgrade-upgrade-path-tested"
 
 >Were upgrade and rollback tested? Was the upgrade-&amp;gt;downgrade-&amp;gt;upgrade path tested?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#is-the-rollout-accompanied-by-any-deprecations-andor-removals-of-features-apis-fields-of-api-types-flags-etc"
 
 >Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-an-operator-determine-if-the-feature-is-in-use-by-workloads"
 
 >How can an operator determine if the feature is in use by workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-reasonable-slos-service-level-objectives-for-the-enhancement"
 
 >What are the reasonable SLOs (Service Level Objectives) for the enhancement?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-slis-service-level-indicators-an-operator-can-use-to-determine-the-health-of-the-service"
 
 >What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-missing-metrics-that-would-be-useful-to-have-to-improve-observability-of-this-feature"
 
 >Are there any missing metrics that would be useful to have to improve observability of this feature?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#does-this-feature-depend-on-any-specific-services-running-in-the-cluster"
 
 >Does this feature depend on any specific services running in the cluster?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-api-calls"
 
 >Will enabling / using this feature result in any new API calls?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-introducing-new-api-types"
 
 >Will enabling / using this feature result in introducing new API types?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-calls-to-the-cloud-provider"
 
 >Will enabling / using this feature result in any new calls to the cloud provider?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-size-or-count-of-the-existing-api-objects"
 
 >Will enabling / using this feature result in increasing size or count of the existing API objects?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-time-taken-by-any-operations-covered-by-existing-slisslos"
 
 >Will enabling / using this feature result in increasing time taken by any operations covered by &lt;a href="https://git.k8s.io/community/sig-scalability/slos/slos.md#kubernetes-slisslos">existing SLIs/SLOs&lt;/a>?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-non-negligible-increase-of-resource-usage-cpu-ram-disk-io--in-any-components"
 
 >Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, &amp;hellip;) in any components?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-does-this-feature-react-if-the-api-server-andor-etcd-is-unavailable"
 
 >How does this feature react if the API server and/or etcd is unavailable?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-other-known-failure-modes"
 
 >What are other known failure modes?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-steps-should-be-taken-if-slos-are-not-being-met-to-determine-the-problem"
 
 >What steps should be taken if SLOs are not being met to determine the problem?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>k8s.io Group Protection</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2337/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2337/</guid><description>&lt;h1 id="k8sio-group-protection">k8s.io Group Protection&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#behavior-of-new-clusters"
 
 >Behavior of new clusters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#behavior-of-old-clusters"
 
 >Behavior of old clusters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-to-do-if-you-accidentally-put-an-unapproved-api-in-a-protected-group"
 
 >What to do if you accidentally put an unapproved API in a protected group&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives considered&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>API groups are organized by namespace, similar to java packages. &lt;code>authorization.k8s.io&lt;/code> is one example. When users create
CRDs, they get to specify an API group and their type will be injected into that group by the kube-apiserver.&lt;/p></description></item><item><title>KEP Template</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2763/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2763/</guid><description>&lt;h1 id="kep-2763-support-ambient-capabilities-in-kubernetes">KEP-2763: Support Ambient Capabilities in Kubernetes.&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-kubernetes-api-httpspkggodevk8sioapicorev1"
 
 >Changes to kubernetes API (&lt;a href="https://pkg.go.dev/k8s.io/api/core/v1">https://pkg.go.dev/k8s.io/api/core/v1&lt;/a>)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#restricted-ambient-capabilities"
 
 >Restricted ambient capabilities.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#changes-to-runtime-api-httpspkggodevk8siocri-apipkgapisruntimev1alpha2"
 
 >Changes to runtime API (&lt;a href="https://pkg.go.dev/k8s.io/cri-api/pkg/apis/runtime/v1alpha2">https://pkg.go.dev/k8s.io/cri-api/pkg/apis/runtime/v1alpha2&lt;/a>)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-containerdcontainerd-httpsgithubcomcontainerdcontainerd"
 
 >Changes to containerd/containerd (&lt;a href="https://github.com/containerd/containerd">https://github.com/containerd/containerd&lt;/a>)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#order-of-changes"
 
 >Order of changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>KEP Template</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3314/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3314/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3314-csi-changed-block-tracking">KEP-3314: CSI Changed Block Tracking&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#full-snapshot-backup"
 
 >Full snapshot backup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#incremental-snapshot-backup"
 
 >Incremental snapshot backup&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-csi-snapshotmetadata-service-api"
 
 >The CSI SnapshotMetadata Service API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#metadata-format"
 
 >Metadata Format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#getmetadataallocated-rpc"
 
 >GetMetadataAllocated RPC&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#getmetadataallocated-errors"
 
 >GetMetadataAllocated Errors&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#getmetadatadelta-rpc"
 
 >GetMetadataDelta RPC&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#getmetadatadelta-errors"
 
 >GetMetadataDelta Errors&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-components"
 
 >Kubernetes Components&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-kubernetes-snapshotmetadata-service-api"
 
 >The Kubernetes SnapshotMetadata Service API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#snapshot-metadata-service-custom-resource"
 
 >Snapshot Metadata Service Custom Resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-sp-snapshot-metadata-service"
 
 >The SP Snapshot Metadata Service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-external-snapshot-metadata-sidecar"
 
 >The External Snapshot Metadata Sidecar&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>KEP Template</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3659/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3659/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3659-applyset-kubectl-apply-prune-redesign-and-graduation-strategy">KEP-3659: ApplySet: kubectl apply &amp;ndash;prune redesign and graduation strategy&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#definitions"
 
 >Definitions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case"
 
 >Use case&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-history"
 
 >Feature history&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#current-implementation"
 
 >Current implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#problems-with-the-current-implementation"
 
 >Problems with the current implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#correctness-object-leakage"
 
 >Correctness: object leakage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ux-flag-changes-affect-correctness"
 
 >UX: flag changes affect correctness&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ux-easy-to-trigger-inadvertent-over-selection"
 
 >UX: easy to trigger inadvertent over-selection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ux-difficult-to-use-with-custom-resources"
 
 >UX: difficult to use with custom resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sustainability-incompatibility-with-server-side-apply"
 
 >Sustainability: incompatibility with server-side apply&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#related-solutions-in-the-ecosystem"
 
 >Related solutions in the ecosystem&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#helm"
 
 >Helm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#carvel-kapp"
 
 >Carvel kapp&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kpt"
 
 >kpt&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#google-configsync"
 
 >Google ConfigSync&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details-applyset-specification"
 
 >Design Details: ApplySet Specification&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#applyset-identification"
 
 >ApplySet Identification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#applyset-member-objects"
 
 >ApplySet Member Objects&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#labels"
 
 >Labels&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#applyset-parent-objects"
 
 >ApplySet Parent Objects&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#labels-and-annotations"
 
 >Labels and annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#optional-hint-annotations"
 
 >Optional &amp;quot;hint&amp;quot; annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#parent-object-management"
 
 >Parent object management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#applyset-scopes"
 
 >ApplySet scopes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tooling-interoperability"
 
 >Tooling Interoperability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#objects-with-owner-references"
 
 >Objects with owner references&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#versioning"
 
 >Versioning&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details-kubectl-pruning"
 
 >Design Details: Kubectl Pruning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#supported-applyset-parent-kinds"
 
 >Supported ApplySet Parent Kinds&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#efficient-listing-of-applyset-contents"
 
 >Efficient Listing of ApplySet Contents&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-commands-and-flags"
 
 >Kubectl Commands and Flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security-considerations"
 
 >Security Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability-1"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ownerrefs"
 
 >OwnerRefs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#managedfields"
 
 >ManagedFields&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>KEP Template</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4940/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4940/</guid><description>&lt;h1 id="kep-4940-add-pod-security-admission-psa-to-block-setting-host-field-from-probehandler-and-lifecyclehandler">KEP-4940: Add Pod Security Admission (PSA) to block setting &lt;code>.host&lt;/code> field from ProbeHandler and LifecycleHandler&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>KEP Template</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5468/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5468/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5468-invariant-testing">KEP-5468: Invariant Testing&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implement-outside-of-test-framework"
 
 >Implement outside of test framework&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#collect-data-and-scan-for-it-externally"
 
 >Collect data, and scan for it externally&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>KEP Template</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/85/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/85/</guid><description>&lt;h1 id="kep-85-graduate-poddisruptionbudget-to-stable">KEP-85: Graduate PodDisruptionBudget to stable&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#promote-eviction-to-policyv1-without-breaking-podseviction-support-for-policyv1beta1"
 
 >Promote Eviction to policy/v1 without breaking pods/eviction support for policy/v1beta1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutable-pdbs"
 
 >Mutable PDBs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-of-non-ready-pods"
 
 >Eviction of non-ready pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#make-the-disruption-controller-more-lenient-for-pods-belonging-to-non-scale-controllers"
 
 >Make the disruption controller more lenient for pods belonging to non-scale controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#address-scalability-issues-with-the-disruption-controller"
 
 >Address scalability issues with the disruption controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fix-handling-of-empty-selector-in-disruption-controller"
 
 >Fix handling of empty selector in disruption controller&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#poddisruptionbudget-v1-api"
 
 >PodDisruptionBudget v1 API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-tests"
 
 >Existing Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conformance-tests"
 
 >Conformance tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>KMS Observability</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3130/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3130/</guid><description>&lt;h1 id="kep-3130-kms-observability">KEP-3130: KMS Observability&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>KMS v2 Improvements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3299/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3299/</guid><description>&lt;h1 id="kep-3299-kms-v2-improvements">KEP-3299: KMS v2 Improvements&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v2-api"
 
 >v2 API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dek-re-use-in-api-server"
 
 >DEK re-use in API server&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#key_id-and-rotation"
 
 >key_id and rotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-api"
 
 >Status API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#observability"
 
 >Observability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#sequence-diagram"
 
 >Sequence Diagram&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#encrypt-request"
 
 >Encrypt Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#decrypt-request"
 
 >Decrypt Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-request"
 
 >Status Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generate-data-encryption-key-dek-seed"
 
 >Generate Data Encryption Key (DEK) Seed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cryptography-details"
 
 >Cryptography Details&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#benchmarks"
 
 >Benchmarks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comparing-metrics"
 
 >Comparing Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kube Proxy component configuration updates and graduation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/784/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/784/</guid><description>&lt;h1 id="kep-784-kube-proxy-component-configuration-graduation">KEP-784: Kube Proxy component configuration graduation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#following-sections-will-be-added"
 
 >Following sections will be added&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#following-fields-will-be-moved-without-any-change-in-name-data-type-and-default-values"
 
 >Following fields will be moved (without any change in name, data-type and default values)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#following-fields-will-be-changed"
 
 >Following fields will be changed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#following-fields-will-be-added"
 
 >Following fields will be added&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#following-fields-will-have-different-default-values"
 
 >Following fields will have different default values&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#following-fields-will-be-dropped"
 
 >Following fields will be dropped&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>kube-apiserver identity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1965/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1965/</guid><description>&lt;h1 id="kep-1965-kube-apiserver-identity">KEP-1965: kube-apiserver identity&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#caveats"
 
 >Caveats&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-new-api--storage-ttl"
 
 >Alternative 1: new API + storage TTL&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-using-storage-interface-directly"
 
 >Alternative 2: using storage interface directly&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-storage-interface--lease-api"
 
 >Alternative 3: storage interface + Lease API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-4-storage-interface--new-api"
 
 >Alternative 4: storage interface + new API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kube-proxy improved ingress connectivity reliability</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3836/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3836/</guid><description>&lt;h1 id="kep-3836-kube-proxy-improved-ingress-connectivity-reliability">KEP-3836: Kube-proxy improved ingress connectivity reliability&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk"
 
 >Risk&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigations"
 
 >Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The service controller in the Kubernetes cloud controller manager (KCCM)
configures the load balancer and its corresponding health check (HC) following
service related events. The configured health check is then used by the load
balancer as to determine which instances are candidates for traffic load
balancing. For certain cloud providers (GCP): the KCCM configures the HC to
target the Kubernetes service proxy for this information. In this KEP we will
focus on Kube-proxy, since it&amp;rsquo;s the only service proxy under the responsibility
of the Kubernetes project.&lt;/p></description></item><item><title>kubeadm component config management</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1381/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1381/</guid><description/></item><item><title>Kubeadm config file graduation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/970/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/970/</guid><description/></item><item><title>kubeadm customization with patches</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1739/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1739/</guid><description/></item><item><title>kubeadm join --control-plane workflow</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2500/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2500/</guid><description/></item><item><title>kubeadm phases to beta</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2501/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2501/</guid><description/></item><item><title>kubeadm-for-windows</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/995/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/995/</guid><description/></item><item><title>kubeadm-machine-output</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2504/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2504/</guid><description/></item><item><title>Kubectl Commands In Headers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/859/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/859/</guid><description>&lt;h1 id="kep-859-kubectl-commands-in-headers">KEP-859: kubectl commands in headers&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#anti-goals"
 
 >Anti-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubectl-command-header"
 
 >Kubectl-Command Header&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-session-header"
 
 >Kubectl-Session Header&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>kubectl debug</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1441/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1441/</guid><description>&lt;h1 id="kep-1441-kubectl-debug">KEP-1441: kubectl debug&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#distroless-containers"
 
 >Distroless Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-system-images"
 
 >Kubernetes System Images&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operations-and-support"
 
 >Operations and Support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-troubleshooting-with-ephemeral-debug-container"
 
 >Pod Troubleshooting with Ephemeral Debug Container&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#debug-container-naming"
 
 >Debug Container Naming&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-namespace-targeting"
 
 >Container Namespace Targeting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interactive-troubleshooting-and-automatic-attaching"
 
 >Interactive Troubleshooting and Automatic Attaching&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-troubleshooting-by-copy"
 
 >Pod Troubleshooting by Copy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#creating-a-debug-container-by-copy"
 
 >Creating a Debug Container by copy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modify-application-image-by-copy"
 
 >Modify Application Image by Copy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#node-troubleshooting-with-privileged-containers"
 
 >Node Troubleshooting with Privileged Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#debugging-profiles"
 
 >Debugging Profiles&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#profile-general"
 
 >Profile: general&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#profile-baseline"
 
 >Profile: baseline&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#profile-restricted"
 
 >Profile: restricted&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#profile-sysadmin"
 
 >Profile: sysadmin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#profile-netadmin"
 
 >Profile: netadmin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-profile"
 
 >Default Profile&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-improvements"
 
 >Future Improvements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#operations"
 
 >Operations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#debugging"
 
 >Debugging&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automation"
 
 >Automation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#technical-support"
 
 >Technical Support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#full-kubectl-debug-arguments"
 
 >Full &lt;code>kubectl debug&lt;/code> Arguments&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-milestones"
 
 >Alpha milestones&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-milestones"
 
 >Beta milestones&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-milestones"
 
 >GA milestones&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>kubectl default container</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2227/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2227/</guid><description>&lt;h1 id="kep-2227-default-container-behavior">KEP-2227: default container behavior&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-cli-behaviors"
 
 >Current CLI Behaviors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-details"
 
 >Proposal Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#testing-strategy"
 
 >Testing Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubectl events</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1440/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1440/</guid><description>&lt;h1 id="kep-1440-kubectl-events">KEP-1440: kubectl events&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#limitations-of-the-existing-design"
 
 >Limitations of the Existing Design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubectl Explain OpenAPIv3</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3515/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3515/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3515-openapi-v3-for-kubectl-explain">KEP-3515: OpenAPI v3 for kubectl explain&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#openapi-v3-is-a-richer-api-description-than-openapi-v2"
 
 >OpenAPI v3 is a richer API description than OpenAPI v2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#crd-schemas-expressed-as-openapi-v2-are-lossy"
 
 >CRD schemas expressed as OpenAPI v2 are lossy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#basic-usage"
 
 >Basic Usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#built-in-template-options"
 
 >Built-in Template Options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#plaintext"
 
 >Plaintext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#openapiv3-raw-json"
 
 >OpenAPIV3 (raw json)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#openapi-v3-not-available"
 
 >OpenAPI V3 Not Available&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk"
 
 >Risk&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation"
 
 >Mitigation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-high-level-approach"
 
 >Current High-level Approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-high-level-approach"
 
 >Proposed High-level Approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#template-rendering"
 
 >Template rendering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-1"
 
 >Alpha 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implement-protomodels-for-openapi-v3-data"
 
 >Implement proto.Models for OpenAPI V3 data&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-user-templates"
 
 >Custom User Templates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#other-template-outputs"
 
 >Other template outputs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#html"
 
 >HTML&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#markdown"
 
 >Markdown&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubectl Plugins</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2379/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2379/</guid><description>&lt;h1 id="kubectl-plugins">Kubectl Plugins&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#limitations-of-the-existing-design"
 
 >Limitations of the Existing Design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scenarios"
 
 >Scenarios&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsdesign"
 
 >Implementation Details/Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#naming-conventions"
 
 >Naming Conventions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#shell-completion-support"
 
 >Shell Completion Support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-notesconstraints"
 
 >Implementation Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-improvementsconsiderations"
 
 >Future Improvements/Considerations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal introduces the main design for a plugin mechanism in &lt;code>kubectl&lt;/code>.
The mechanism is a git-style system, that looks for executables on a user&amp;rsquo;s &lt;code>$PATH&lt;/code> whose name begins with &lt;code>kubectl-&lt;/code>.
This allows plugin binaries to override existing command paths and add custom commands and subcommands to &lt;code>kubectl&lt;/code>.&lt;/p></description></item><item><title>kubectl return code normalization</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2551/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2551/</guid><description>&lt;h1 id="kep-2551-kubectl-exit-code-standardization">KEP-2551: kubectl exit code standardization&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gating"
 
 >Feature Gating&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#error-codes"
 
 >Error Codes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changing-error-checker-functions"
 
 >Changing error checker functions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#creating-new-error-parser-functions"
 
 >Creating new error parser functions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hybrid-approach"
 
 >Hybrid approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubectl Server-Side Apply by default</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3805/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3805/</guid><description>&lt;h1 id="kep-3805-server-side-apply-default-in-kubectl">KEP-3805: Server-Side Apply default in Kubectl&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubectl Subresource Support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2590/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2590/</guid><description>&lt;h1 id="kep-2590-kubectl-subresource-support">KEP-2590: Kubectl Subresource Support&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#subresource-support"
 
 >Subresource support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#table-printer"
 
 >Table printer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>kubectl-diff</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/491/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/491/</guid><description>&lt;h1 id="kubectl-diff">kubectl-diff&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://github.com/kubernetes/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;code>kubectl diff&lt;/code> is a feature that has been available in Kubernetes for a
few releases now (since v1.13) and is planning to go GA in 1.18. It
provides a very simple UX to display how the changes to a configuration
will affect the state of the cluster.&lt;/p></description></item><item><title>Kubelet client certificate bootstrap and rotation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/266/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/266/</guid><description>&lt;h1 id="kep-266-kubelet-client-certificate-bootstrap-and-rotation">KEP-266: Kubelet client certificate bootstrap and rotation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#during-kubelet-boot-sequence"
 
 >During Kubelet Boot Sequence&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#as-expiration-approaches"
 
 >As Expiration Approaches&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-notes"
 
 >Implementation notes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#certificate-approval"
 
 >Certificate Approval&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created at &lt;a href="https://kubernetes.io/docs/tasks/tls/certificate-rotation/"
 
 target="_blank" rel="noopener">https://kubernetes.io/docs/tasks/tls/certificate-rotation/&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Currently, a kubelet has a certificate/key pair that authenticates the kubelet to the kube-apiserver.
The certificate is supplied to the kubelet when it is first booted, via an out of cluster mechanism.
This proposal covers a process for obtaining the initial cert/key pair and rotating it as expiration
of the certificate approaches.&lt;/p></description></item><item><title>Kubelet Credential Providers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2133/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2133/</guid><description>&lt;h1 id="kep-2133-kubelet-credential-providers">KEP-2133: Kubelet Credential Providers&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#credential-provider-configuration"
 
 >Credential Provider Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#credential-provider-request-api"
 
 >Credential Provider Request API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#credential-provider-response-api"
 
 >Credential Provider Response API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#caching-credentials"
 
 >Caching Credentials&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet CRI support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2040/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2040/</guid><description>&lt;h1 id="kubelet-cri-support">Kubelet CRI support&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#identified-work-items"
 
 >Identified Work Items&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-from-v1alpha2-to-v1beta1"
 
 >Changes from v1alpha2 to v1beta1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clean-up"
 
 >Clean Up&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pinned-images"
 
 >Pinned Images&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet endpoint for device assignment observation details</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/606/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/606/</guid><description>&lt;h1 id="kubelet-endpoint-for-device-assignment-observation-details">Kubelet endpoint for device assignment observation details&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-cluster-administators-easier-monitoring"
 
 >Story 1: Cluster administators: easier monitoring&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-device-vendors-decouple-monitoring-from-device-lifecycle-management"
 
 >Story 2: Device Vendors: decouple monitoring from device lifecycle management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-api"
 
 >Proposed API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to G.A Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-v1alpha1-kubelet-grpc-service-at-varlibkubeletpod-resourceskubeletsock-which-returns-a-list-of-createcontainerrequests-used-to-create-containers"
 
 >Add v1alpha1 Kubelet GRPC service, at &lt;code>/var/lib/kubelet/pod-resources/kubelet.sock&lt;/code>, which returns a list of &lt;a href="https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto#L734">CreateContainerRequest&lt;/a>s used to create containers.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-a-field-to-pod-status"
 
 >Add a field to Pod Status.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-the-kubelet-device-manager-checkpoint-file"
 
 >Use the Kubelet Device Manager Checkpoint file&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-a-field-to-the-pod-spec"
 
 >Add a field to the Pod Spec:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet endpoint for pod resource assignment</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1884/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1884/</guid><description>&lt;h1 id="kubelet-endpoint-for-pod-resource-assignment">Kubelet endpoint for pod resource assignment&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#device-aware-cni-plugin"
 
 >Device aware CNI plugin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#topology-aware-scheduling"
 
 >Topology aware scheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-api"
 
 >Proposed API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to G.A Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-v1alpha1-kubelet-grpc-service-at-varlibkubeletpod-resourceskubeletsock-which-returns-a-list-of-createcontainerrequests-used-to-create-containers"
 
 >Add v1alpha1 Kubelet GRPC service, at &lt;code>/var/lib/kubelet/pod-resources/kubelet.sock&lt;/code>, which returns a list of &lt;a href="https://github.com/kubernetes/kubernetes/blob/master/pkg/kubelet/apis/cri/runtime/v1alpha2/api.proto#L734">CreateContainerRequest&lt;/a>s used to create containers.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-a-field-to-pod-status"
 
 >Add a field to Pod Status.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-the-kubelet-device-manager-checkpoint-file"
 
 >Use the Kubelet Device Manager Checkpoint file&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-a-field-to-the-pod-spec"
 
 >Add a field to the Pod Spec:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet Evented PLEG for Better Performance</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3386/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3386/</guid><description>&lt;h1 id="kep-3386-kubelet-evented-pleg-for-better-performance">KEP-3386: Kubelet Evented PLEG for Better Performance&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#acknowledgements"
 
 >Acknowledgements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#timestamp-of-the-pod-status"
 
 >Timestamp of the Pod Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-service-changes"
 
 >Runtime Service Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-status-update-in-the-cache"
 
 >Pod Status Update in the Cache&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compatibility-check"
 
 >Compatibility Check&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#stress-test"
 
 >Stress Test&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#recovery-test"
 
 >Recovery Test&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#retries-with-backoff-logic"
 
 >Retries with Backoff Logic&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generic-pleg-continuous-validation"
 
 >Generic PLEG Continuous Validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet Exec Probe Timeouts</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1972/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1972/</guid><description>&lt;h1 id="kep-1972-kubelet-exec-probe-timeouts">KEP-1972: Kubelet Exec Probe Timeouts&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet limit of Parallel Image Pulls</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3673/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3673/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3673-kubelet-limit-of-parallel-image-pulls">KEP-3673: Kubelet limit of Parallel Image Pulls&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#qpsburst-limits-on-kubelet-are-confusing"
 
 >QPS/burst limits on kubelet are confusing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#no-way-to-limit-the-number-of-inflight-image-pulls"
 
 >No way to limit the number of inflight image pulls&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-1"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-1"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-1"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet OpenTelemetry Tracing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2831/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2831/</guid><description>&lt;h1 id="kep-2831-kubelet-tracing">KEP-2831: Kubelet Tracing&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#definitions"
 
 >Definitions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#continuous-trace-collection"
 
 >Continuous trace collection&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-scenarios"
 
 >Example scenarios&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tracing-requests-and-exporting-spans"
 
 >Tracing Requests and Exporting Spans&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#connected-traces-with-nested-spans"
 
 >Connected Traces with Nested Spans&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#running-the-opentelemetry-collector"
 
 >Running the OpenTelemetry Collector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-configuration"
 
 >Kubelet Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-requirements"
 
 >Graduation Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#does-enabling-the-feature-change-any-default-behavior"
 
 >Does enabling the feature change any default behavior?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-the-feature-be-disabled-once-it-has-been-enabled-ie-can-we-roll-back-the-enablement"
 
 >Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-tests-for-feature-enablementdisablement"
 
 >Are there any tests for feature enablement/disablement?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-are-the-slis-service-level-indicators-an-operator-can-use-to-determine-the-health-of-the-service"
 
 >What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-missing-metrics-that-would-be-useful-to-have-to-improve-observability"
 
 >Are there any missing metrics that would be useful to have to improve observability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#other-opentelemetry-exporters"
 
 >Other OpenTelemetry Exporters&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubelet Resource Metrics Endpoint</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/727/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/727/</guid><description>&lt;h1 id="kubelet-resource-metrics-endpoint">Kubelet Resource Metrics Endpoint&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-improvements"
 
 >Future Improvements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#benchmarking"
 
 >Benchmarking&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#round-1"
 
 >Round 1&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#methods"
 
 >Methods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#results"
 
 >Results&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#round-2"
 
 >Round 2&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#methods-1"
 
 >Methods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#results-1"
 
 >Results&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#grpc-api"
 
 >gRPC API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubernetes Bootstrap Checkpointing Proposal</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/378/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/378/</guid><description/></item><item><title>Kubernetes Component Health SLIs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3466/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3466/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3466-kubernetes-component-slis">KEP-3466: Kubernetes Component SLIs&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubernetes CSI release and CI process</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2264/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2264/</guid><description>&lt;h1 id="kubernetes-csi-release-process">kubernetes-csi-release-process&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#versionioning"
 
 >Versionioning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#release-artifacts"
 
 >Release artifacts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#release-process"
 
 >Release process&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The Kubernetes &lt;a href="https://github.com/kubernetes/community/tree/master/sig-storage"
 
 target="_blank" rel="noopener">Storage
SIG&lt;/a>

maintains a set of components under the
&lt;a href="https://github.com/kubernetes-csi"
 
 target="_blank" rel="noopener">kubernetes-csi&lt;/a>
 GitHub
organization. Those components are intentionally not part of core
Kubernetes even though they are maintained by the Kubernetes project.&lt;/p></description></item><item><title>Kubernetes Dual-stack Support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/563/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/563/</guid><description>&lt;h1 id="ipv4ipv6-dual-stack">IPv4/IPv6 Dual-stack&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-plan"
 
 >Implementation Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#awareness-of-multiple-ips-per-pod"
 
 >Awareness of Multiple IPs per Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#required-changes-to-container-runtime-interface-cri"
 
 >Required changes to Container Runtime Interface (CRI)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#versioned-api-change-podstatus-v1-core"
 
 >Versioned API Change: PodStatus v1 core&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#default-pod-ip-selection"
 
 >Default Pod IP Selection&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#podstatus-internal-representation"
 
 >PodStatus Internal Representation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#maintaining-compatible-interworking-between-old-and-new-clients"
 
 >Maintaining Compatible Interworking between Old and New Clients&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v1-to-core-internal-conversion"
 
 >V1 to Core (Internal) Conversion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#core-internal-to-v1-conversion"
 
 >Core (Internal) to V1 Conversion&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#awareness-of-multiple-nodecidrs-per-node"
 
 >Awareness of Multiple NodeCIDRs per Node&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-startup-configuration-for-dual-stack-pod-cidrs"
 
 >kubelet Startup Configuration for Dual-Stack Pod CIDRs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy-startup-configuration-for-dual-stack-pod-cidrs"
 
 >kube-proxy Startup Configuration for Dual-Stack Pod CIDRs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-get-pods--o-wide-command-display-for-dual-stack-pod-addresses"
 
 >&amp;lsquo;kubectl get pods -o wide&amp;rsquo; Command Display for Dual-Stack Pod Addresses&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-describe-pod--command-display-for-dual-stack-pod-addresses"
 
 >&amp;lsquo;kubectl describe pod &amp;hellip;&amp;rsquo; Command Display for Dual-Stack Pod Addresses&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#container-networking-interface-cni-plugin-considerations"
 
 >Container Networking Interface (CNI) Plugin Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#services"
 
 >Services&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#type-nodeport-loadbalancer-clusterip"
 
 >Type NodePort, LoadBalancer, ClusterIP&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-object-mutability-rules"
 
 >Service Object Mutability Rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impact-on-pre-existing-services"
 
 >Impact on pre-existing Services&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#creating-a-new-single-stack-service"
 
 >Creating a New Single-Stack Service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#creating-a-new-dual-stack-service"
 
 >Creating a New Dual-Stack Service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodeport-allocations"
 
 >NodePort Allocations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#type-headless-services"
 
 >Type Headless services&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#type-externalname"
 
 >Type ExternalName&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#endpoints"
 
 >Endpoints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy-operation"
 
 >kube-proxy Operation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube-proxy-startup-configuration-changes"
 
 >kube-proxy Startup Configuration Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multiple-cluster-cidrs-configuration"
 
 >Multiple cluster CIDRs configuration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#coredns-operation"
 
 >CoreDNS Operation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ingress-controller-operation"
 
 >Ingress Controller Operation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#gce-ingress-controller-out-of-scope-testing-deferred-for-now"
 
 >GCE Ingress Controller: Out-of-Scope, Testing Deferred For Now&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nginx-ingress-controller---dual-stack-support-for-bare-metal-clusters"
 
 >NGINX Ingress Controller - Dual-Stack Support for Bare Metal Clusters&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#load-balancer-operation"
 
 >Load Balancer Operation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cloud-provider-plugins-considerations"
 
 >Cloud Provider Plugins Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multiple-cluster-cidrs-configuration-1"
 
 >Multiple cluster CIDRs configuration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#container-environment-variables"
 
 >Container Environment Variables&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubeadm-support"
 
 >Kubeadm Support&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubeadm-configuration-options"
 
 >Kubeadm Configuration Options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubeadm-generated-manifests"
 
 >Kubeadm-Generated Manifests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#vendorgithubcomspf13pflag"
 
 >vendor/github.com/spf13/pflag&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#end-to-end-test-support"
 
 >End-to-End Test Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dual-stack-at-the-edge"
 
 >Dual-stack at the Edge&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#variation-single-stack-service-cidrs"
 
 >Variation: Single-Stack Service CIDRs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-required"
 
 >Changes Required&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal adds IPv4/IPv6 dual-stack functionality to Kubernetes clusters.
This includes the following concepts:&lt;/p></description></item><item><title>Kubernetes Metrics Overhaul</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1206/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1206/</guid><description>&lt;h1 id="kubernetes-metrics-overhaul">Kubernetes Metrics Overhaul&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cadvisor-instrumentation-changes"
 
 >cAdvisor instrumentation changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#consistent-labeling"
 
 >Consistent labeling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#changing-api-latency-histogram-buckets"
 
 >Changing API latency histogram buckets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-metric-changes"
 
 >Kubelet metric changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#make-metrics-aggregatable"
 
 >Make metrics aggregatable&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prober-metrics"
 
 >Prober metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-scheduler-metric-changes"
 
 >Kube-scheduler metric changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy-metric-changes"
 
 >Kube-proxy metric changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#change-proxy-metrics-to-conform-metrics-guidelines"
 
 >Change proxy metrics to conform metrics guidelines&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clean-the-deprecated-metrics-which-introduced-in-v114"
 
 >Clean the deprecated metrics which introduced in v1.14&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-apiserver-metric-changes"
 
 >Kube-apiserver metric changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#apiserver-and-etcd-metrics"
 
 >Apiserver and etcd metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fix-admission-metrics-in-true-units"
 
 >Fix admission metrics in true units&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#remove-the-deprecated-admission-metrics"
 
 >Remove the deprecated admission metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#client-go-metric-changes"
 
 >Client-go metric changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workqueue-metrics"
 
 >Workqueue metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#convert-latencylatencies-in-metrics-name-to-duration"
 
 >Convert latency/latencies in metrics name to duration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation-plan"
 
 >Deprecation Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#114"
 
 >1.14&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#115"
 
 >1.15&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#116"
 
 >1.16&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#117"
 
 >1.17&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#not-attached-to-a-release-milestone"
 
 >Not attached to a release milestone&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This Kubernetes Enhancement Proposal (KEP) outlines the changes planned in the scope of an overhaul of all metrics instrumented in the main kubernetes/kubernetes repository. This is a living document and as existing metrics, that are planned to change are added to the scope, they will be added to this document. As this initiative is going to affect all current users of Kubernetes metrics, this document will also be a source for migration documentation coming out of this effort.&lt;/p></description></item><item><title>Kubernetes VolumeAttributesClass and ModifyVolume</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3751/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3751/</guid><description>&lt;h1 id="kep-3751-kubernetes-volume-provisioned-io">KEP-3751: Kubernetes Volume Provisioned IO&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api"
 
 >Kubernetes API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#quota"
 
 >Quota&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#csi-api"
 
 >CSI API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#default-volumeattributesclass"
 
 >Default VolumeAttributesClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pre-provisioned-volume"
 
 >Pre-provisioned Volume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#provisioned-create"
 
 >Provisioned Create&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volume-attributes-updates"
 
 >Volume Attributes Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#administrator-quota-restrictions"
 
 >Administrator Quota Restrictions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposed-changes"
 
 >Proposed Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-add-createdelete-volumeattributesclass-support-in-kubernetes-including-vac_admission_controller-and-vac_protection_controller-for-deletion-protection"
 
 >1. Add Create/Delete VolumeAttributesClass support in Kubernetes including vac_admission_controller and vac_protection_controller for deletion protection.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-update-quota-code-to-include-and-validate-volumeattributesclass-usage-of-pvcs"
 
 >2. Update quota code to include and validate VolumeAttributesClass usage of PVCs.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-add-new-statuses-in-pvc-api-to-indicate-changes-of-volumeattributesclass-and-the-status-of-the-modifyvolume-operation"
 
 >3. Add new statuses in PVC API to indicate changes of VolumeAttributesClass and the status of the ModifyVolume operation.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-add-new-csi-api-controllermodifyvolume-when-there-is-a-change-of-volumeattributesclass-in-pvc-external-resizer-triggers-a-controllermodifyvolume-operation-against-a-csi-endpoint-a-controller-plugin-must-implement-this-rpc-call-if-it-has-modify_volume-capability"
 
 >4. Add new CSI API ControllerModifyVolume, when there is a change of VolumeAttributesClass in PVC, external-resizer triggers a ControllerModifyVolume operation against a CSI endpoint. A Controller Plugin MUST implement this RPC call if it has MODIFY_VOLUME capability.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#5-add-new-operation-metrics-for-modifyvolume-operations"
 
 >5. Add new operation metrics for ModifyVolume operations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#binding-of-pv-and-pvc"
 
 >Binding of PV and PVC&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#find-a-pv-matching-the-pvc"
 
 >Find a PV matching the PVC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#perform-the-binding"
 
 >Perform the binding&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#volumeattributesclass-deletion-protection"
 
 >VolumeAttributesClass Deletion Protection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#create-volumeattributesclass"
 
 >Create VolumeAttributesClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#delete-volumeattributesclass"
 
 >Delete VolumeAttributesClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#create-pvc-and-create-volume"
 
 >Create PVC and Create Volume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#delete-pvc"
 
 >Delete PVC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modify-pvc"
 
 >Modify PVC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation--handling-failure"
 
 >Implementation &amp;amp; Handling Failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stress-tests"
 
 >Stress tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-flag-combinations"
 
 >Feature Flag Combinations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#other-solutions"
 
 >Other Solutions:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-1-first-class-only-iops-and-throughput"
 
 >Option 1: First class only Iops and throughput&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api-1"
 
 >Kubernetes API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csi-api-1"
 
 >CSI API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pros"
 
 >Pros:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons"
 
 >Cons:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#option-2-opaque-map-in-createvolume-and-modifyvolume-requests-by-end-users"
 
 >Option 2: Opaque map in CreateVolume and ModifyVolume requests by end users&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros-1"
 
 >Pros:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons-1"
 
 >Cons:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#option-3-a-cluster-administrator-modifies-the-volumeattributesclass-parameters-which-will-cause-all-pvcs-using-that-performance-class-to-be-updated"
 
 >Option 3: A cluster administrator modifies the VolumeAttributesClass parameters which will cause all PVCs using that performance class to be updated.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#createvolume"
 
 >CreateVolume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modifyvolume"
 
 >ModifyVolume&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros-2"
 
 >Pros:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons-2"
 
 >Cons:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#appendix---current-sps-case-study"
 
 >Appendix - Current SPs Case Study&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kubernetes Yearly Support Period</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1498/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1498/</guid><description>&lt;h1 id="kubernetes-yearly-support-period">Kubernetes Yearly Support Period&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#component-changes"
 
 >Component changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#additional-version-test-coverage"
 
 >Additional Version Test Coverage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#additional-testrelease-process-changes"
 
 >Additional test/release process changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation"
 
 >Documentation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#clarify-support-policy-in-community-documentation"
 
 >Clarify “Support Policy” in community documentation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#document-impact-on-external-dependencies-support-windows"
 
 >Document impact on external dependencies support windows&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#maturity-levels-alpha-beta-stable"
 
 >Maturity levels (alpha, beta, stable)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation-policy"
 
 >Deprecation policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Kubetest2 CI Migration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2464/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2464/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2464-kubetest2-ci-migration">KEP-2464: Kubetest2 CI migration&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ci-jobs"
 
 >CI Jobs:&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scenarios"
 
 >Scenarios:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#managing-kubetest2-dependency"
 
 >Managing kubetest2 dependency&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kui Graphical Terminal Enhancements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2257/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2257/</guid><description>&lt;h1 id="kep-2257-kui-kubectl-graphical-plugins">KEP-2257 Kui: Kubectl Graphical Plugins&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This enhancement offers a kubectl plugin framework that allows
&lt;code>kubectl&lt;/code> and &lt;code>kubectl&lt;/code> plugins the ability to have graphical popups
in response to normal CLI commands. To provide a popup-from-terminal
experience, this project leverages the Kui project.&lt;/p></description></item><item><title>Kustomize</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2377/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2377/</guid><description>&lt;h1 id="kustomize">Kustomize&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#long-standing-issues"
 
 >Long standing issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#exposing-every-imperative-kubectl-command-in-a-declarative-fashion"
 
 >Exposing every imperative kubectl command in a declarative fashion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#providing-a-simpler-facade-on-top-of-the-kubernetes-apis"
 
 >Providing a simpler facade on top of the Kubernetes APIs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#capabilities"
 
 >Capabilities&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kustomizationyaml-will-allow-users-to-reference-config-files"
 
 >&lt;em>kustomization.yaml&lt;/em> will allow users to reference config files&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kustomizationyaml-will-allow-users-to-generate-configs-from-files"
 
 >&lt;em>kustomization.yaml&lt;/em> will allow users to generate configs from files&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kustomizationyaml-will-allow-users-to-apply-transformations-to-configs"
 
 >&lt;em>kustomization.yaml&lt;/em> will allow users to apply transformations to configs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ux"
 
 >UX&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#edit"
 
 >Edit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#diff"
 
 >Diff&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-of-not-having-a-solution"
 
 >Risks of Not Having a Solution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#faqs"
 
 >FAQs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Declarative specification of Kubernetes objects is the recommended way to manage Kubernetes
production workloads, however gaps in the kubectl tooling force users to write their own scripting and
tooling to augment the declarative tools with preprocessing transformations.
While most of these transformations already exist as imperative kubectl commands, they are not natively accessible
from a declarative workflow.&lt;/p></description></item><item><title>Kustomize Components</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1802/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1802/</guid><description>&lt;h1 id="kustomize-components">Kustomize Components&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-story"
 
 >User Story&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-introduce-a-new-components-field"
 
 >Why introduce a new &lt;code>components&lt;/code> field?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-introduce-a-new-component-kind"
 
 >Why introduce a new &lt;code>Component&lt;/code> kind?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kustomize Exec Secret Generator</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2382/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2382/</guid><description>&lt;h1 id="kustomize-exec-secret-generator">Kustomize Exec Secret Generator&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-flags"
 
 >New Flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#default-path"
 
 >Default Path&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flag-defined-absolute-path"
 
 >Flag Defined Absolute Path&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flag-defined-relative-path"
 
 >Flag Defined Relative Path&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#not-enabled"
 
 >Not Enabled&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#git-style-plugins"
 
 >Git Style Plugins&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enable-plugins-with-environment-variables"
 
 >Enable Plugins with Environment Variables&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-to-ga"
 
 >Graduation to GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#audit-command"
 
 >Audit Command&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#more-os-specific-install-locations"
 
 >More OS Specific install locations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#testing-and-documentation"
 
 >Testing and documentation.&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#testing"
 
 >Testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation"
 
 >Documentation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The ability to generate Secrets using &lt;code>exec&lt;/code> was removed in kustomize v2 because of security concerns
about users kustomizing malicious &lt;code>kustomization.yaml&lt;/code>s and thereby providing a path for &lt;code>kustomization.yaml&lt;/code>&amp;rsquo;s
publishers to execute arbitrary commands on the machines of any user who applies the &lt;code>kustomization.yaml&lt;/code>.&lt;/p></description></item><item><title>Kustomize File Processing Integration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2384/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2384/</guid><description>&lt;h1 id="kustomize-file-processing-integration">Kustomize File Processing Integration&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#specifics"
 
 >Specifics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#evaluate-and-decide"
 
 >Evaluate and decide&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implement"
 
 >Implement&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#docs"
 
 >Docs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-skew-tests"
 
 >Version Skew Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This is a follow up to &lt;a href="https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/sig-cli/2386-kustomize-subcommand-integration/"
 
 target="_blank" rel="noopener">KEP Kustomize Subcommand Integration&lt;/a>
&lt;/p>
&lt;p>&lt;a href="https://github.com/kubernetes-sigs/kustomize"
 
 target="_blank" rel="noopener">Kustomize&lt;/a>
 was introduced as
subcommand of kubectl to allow users to build their kustomizations directly.
However users need to pipe the kustomize output to other commands in order
to use the kustomizations.&lt;/p></description></item><item><title>Kustomize Function Catalog</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2906/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2906/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2906-kustomize-function-catalog">KEP-2906: Kustomize Function Catalog&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#key-terminology"
 
 >Key terminology&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5"
 
 >Story 5&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-6"
 
 >Story 6&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-7"
 
 >Story 7&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#function-metadata-schema"
 
 >Function Metadata Schema&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#determining-the-function-to-execute"
 
 >Determining the Function to Execute&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-of-oci-artifacts"
 
 >Use of OCI Artifacts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#oci-artifacts"
 
 >OCI Artifacts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kustomize Generators and Transformers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/993/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/993/</guid><description>&lt;h1 id="kustomize-generators-and-transformers">Kustomize Generators and Transformers&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#terms"
 
 >Terms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugins"
 
 >Plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugins-generate"
 
 >Plugins: Generate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugins-transform"
 
 >Plugins: Transform&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#restrictions"
 
 >Restrictions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#phases"
 
 >Phases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declarativeecosystem-solution-plugins"
 
 >DeclarativeEcosystem Solution Plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bespoke-abstractions-for-organizations"
 
 >Bespoke Abstractions for Organizations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bespoke-configuration-for-organizations"
 
 >Bespoke Configuration for Organizations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://github.com/kubernetes/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Enable users to extend Kustomize &lt;em>Transformers&lt;/em> and &lt;em>Generators&lt;/em> through &lt;code>exec&lt;/code> plugins. Kustomize
provides Resource Config to plugins through STDIN, and plugins emit Resource Config back to Kustomize
through STDOUT.&lt;/p></description></item><item><title>Kustomize Plugin Composition API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2299/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2299/</guid><description>&lt;h1 id="kep-2299-kustomize-plugin-composition-api">KEP-2299: Kustomize Plugin Composition API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#integration-with-kustomization"
 
 >Integration with Kustomization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-kubectl-kustomize"
 
 >Integration with Kubectl Kustomize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugin-execution-flags"
 
 >Plugin execution flags&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#key-terminology"
 
 >Key terminology&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-schema"
 
 >API schema&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#built-in-transformers"
 
 >Built-in transformers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#composition-evaluation"
 
 >Composition evaluation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kustomize Plugin Graduation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2953/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2953/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2953-kustomize-plugin-graduation">KEP-2953: Kustomize plugin graduation&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#key-terminology"
 
 >Key terminology&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#legacy-plugins"
 
 >Legacy plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#krm-function-plugins"
 
 >KRM Function plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#plugin-execution-restriction"
 
 >Plugin execution restriction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supported-runtimes"
 
 >Supported runtimes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugin-developer-sdk"
 
 >Plugin developer SDK&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugin-configuration"
 
 >Plugin configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#legacy-plugin-migration"
 
 >Legacy plugin migration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5"
 
 >Story 5&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-plan"
 
 >Rollout Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix"
 
 >Appendix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-plugin-compatibility-grid"
 
 >Current Plugin Compatibility Grid&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Kustomize Secret Generator Plugins</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2385/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2385/</guid><description>&lt;h1 id="kustomize-secret-kv-generator-plugins">Kustomize Secret K:V Generator Plugins&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#several-people-want-an-exec-style-plugin"
 
 >Several people want an &lt;em>exec-style&lt;/em> plugin&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation"
 
 >mitigation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goplugin-limitations"
 
 >goplugin limitations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#not-shareable-as-object-code"
 
 >Not shareable as object code&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-1"
 
 >mitigation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#no-current-support-for-windows"
 
 >No current support for Windows&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-2"
 
 >mitigation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#general-symbol-execution-from-the-plugin"
 
 >General symbol execution from the plugin&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-3"
 
 >mitigation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#two-means-to-specify-legacy-kv-generation"
 
 >Two means to specify legacy KV generation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-4"
 
 >mitigation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria-of-plugin-framework"
 
 >Graduation Criteria of plugin framework&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-status"
 
 >Alpha status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-to-beta"
 
 >Graduation to beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Kustomize users want to generate Kubernetes Secret
objects from general key:value (KV) pairs where the
value is supposed to be a secret. Users want to
generate these pairs through integration with secret
management tools (e.g. see comments on
[692][execRemoval]).&lt;/p></description></item><item><title>Kustomize Subcommand Integration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2386/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2386/</guid><description>&lt;h1 id="kustomize-subcommand-integration">Kustomize Subcommand Integration&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-this-should-be-part-of-kubectl"
 
 >Why this should be part of kubectl&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#justification-for-this-approach"
 
 >Justification for this approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#justification-for-follow-up"
 
 >Justification for follow up&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kustomize-example"
 
 >Kustomize Example&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#copy-kustomize-code-into-staging"
 
 >Copy kustomize code into staging&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#leave-kustomize-functionality-separate-from-kubectl"
 
 >Leave kustomize functionality separate from kubectl&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#build-a-separate-tools-targeted-at-kubernetes-declarative-workflows"
 
 >Build a separate tools targeted at Kubernetes declarative workflows.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;a href="https://github.com/kubernetes-sigs/kustomize"
 
 target="_blank" rel="noopener">Kustomize&lt;/a>

was developed as a subproject of sig-cli by kubectl maintainers to address
a collection of &lt;a href="#motivation"
 
 >issues&lt;/a>
) creating friction for declarative workflows in kubectl
(e.g. &lt;code>kubectl apply&lt;/code>). The
goal of the kustomize subproject was to bring this functionality back to kubectl to better complement
&lt;code>kubectl apply&lt;/code> and other declarative workflow commands.&lt;/p></description></item><item><title>KYAML</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5295/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5295/</guid><description>&lt;!--
- [X] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [X] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [X] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [X] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [X] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [X] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.
-->
&lt;h1 id="kep-5295-introducing-kyaml-a-safer-less-ambiguous-yaml-subset--encoding">KEP-5295: Introducing KYAML, a safer, less ambiguous YAML subset / encoding&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-compatibility"
 
 >Future compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#packaging"
 
 >Packaging&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#components"
 
 >Components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tooling"
 
 >Tooling&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how"
 
 >How?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#comments"
 
 >Comments&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#disambiguation-from-json"
 
 >Disambiguation from JSON&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#per-type-rendering"
 
 >Per-type rendering&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scalars"
 
 >Scalars&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mappings-structs-and-maps"
 
 >Mappings (structs and maps)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#structs"
 
 >Structs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#maps"
 
 >Maps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lists"
 
 >Lists&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pointers"
 
 >Pointers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#self-marshalers"
 
 >Self marshalers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interfaces"
 
 >Interfaces&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#anything-else"
 
 >Anything else&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#multi-line-strings"
 
 >Multi-line strings&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#commas"
 
 >Commas&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#brackets"
 
 >Brackets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#indents"
 
 >Indents&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#short-lists-maps-and-structs"
 
 >Short lists, maps, and structs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alignment"
 
 >Alignment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consistency-of-quoted-keys"
 
 >Consistency of quoted keys&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Less object serializations</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1152/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1152/</guid><description>&lt;h1 id="less-object-serializations">Less object serializations&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#bake-in-caching-objects-into-apimachinery"
 
 >Bake-in caching objects into apimachinery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lru-cache"
 
 >LRU cache&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#smart-objects"
 
 >Smart objects&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Liveness Probe Grace Period</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2238/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2238/</guid><description>&lt;h1 id="kep-2238-liveness-probe-grace-periods">KEP-2238: Liveness Probe Grace Periods&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configuration-example"
 
 >Configuration example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-121"
 
 >Alpha (1.21)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-122"
 
 >Beta (1.22)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-127"
 
 >GA (1.27)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#removal-of-feature-flag-129"
 
 >Removal of feature flag (1.29)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Local Ephemeral Storage Capacity Isolation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/361/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/361/</guid><description>&lt;h1 id="local-ephemeral-storage-capacity-isolation">Local Ephemeral Storage Capacity Isolation&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ephemeral-storage-resource"
 
 >Ephemeral Storage Resource:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-policy-and-scheduler-predicates"
 
 >Eviction Policy and Scheduler Predicates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-alpha-18"
 
 >Phase 1: Alpha (1.8)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-beta"
 
 >Phase 2: Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3-ga-125"
 
 >Phase 3: GA (1.25)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-18"
 
 >Version 1.8&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-110"
 
 >Version 1.10&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-125"
 
 >Version 1.25&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Local Persistent Volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/121/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/121/</guid><description>&lt;h1 id="local-persistent-volumes">Local Persistent Volumes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#distributed-filesystems-and-databases"
 
 >Distributed filesystems and databases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#caching"
 
 >Caching&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#environments"
 
 >Environments&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#baremetal"
 
 >Baremetal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gcegke"
 
 >GCE/GKE&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ec2"
 
 >EC2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#limitations-of-current-volumes"
 
 >Limitations of current volumes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pvc-users"
 
 >PVC Users&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-administrator"
 
 >Cluster Administrator&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#local-volume-plugin"
 
 >Local Volume Plugin&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#persistentvolume-node-affinity"
 
 >PersistentVolume Node Affinity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#local-volume-initial-configuration"
 
 >Local volume initial configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#local-volume-management"
 
 >Local volume management&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#packaging"
 
 >Packaging&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#block-devices-and-raw-partitions"
 
 >Block devices and raw partitions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#discovery"
 
 >Discovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cleanup-after-release"
 
 >Cleanup after Release&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-unit-tests"
 
 >API unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pv-node-affinity-unit-tests"
 
 >PV node affinity unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#local-volume-plugin-unit-tests"
 
 >Local volume plugin unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#local-volume-provisioner-unit-tests"
 
 >Local volume provisioner unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stress-tests"
 
 >Stress tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#k8s-17-alpha"
 
 >K8s 1.7: Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-19-alpha"
 
 >K8s 1.9: Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-110-beta"
 
 >K8s 1.10: Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-112-beta"
 
 >K8s 1.12: Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-114-ga"
 
 >K8s 1.14: GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document presents a detailed design for supporting persistent local storage,
as outlined in &lt;a href="https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/sig-storage/121-local-persistent-volumes/local-storage-overview.md"
 
 target="_blank" rel="noopener">Local Storage Overview&lt;/a>
.&lt;/p></description></item><item><title>Mailing List Guidelines</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/mailing-lists/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/mailing-lists/</guid><description>&lt;p>The Kubernetes mailing list or Google Groups functions as the primary means of
asynchronous communication for the project&amp;rsquo;s
&lt;a href="https://github.com/kubernetes/community/blob/main/sig-list.md"
 
 target="_blank" rel="noopener">Special Interest Groups (SIG)&lt;/a>
, &lt;a href="https://github.com/kubernetes/community/blob/main/sig-list.md"
 
 target="_blank" rel="noopener">Working Groups (WG)&lt;/a>
, and
large subprojects.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#code-of-conduct"
 
 >Code of conduct&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admins"
 
 >Admins&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mailing-list-owners"
 
 >Mailing list owners&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#moderation"
 
 >Moderation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#moderator-expectations-and-guidelines"
 
 >Moderator expectations and guidelines&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-user-posting-queue"
 
 >New user posting queue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#annual-permissions-review"
 
 >Annual permissions review&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#mailing-list-creation"
 
 >Mailing list creation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisites-for-creating-a-mailing-list"
 
 >Prerequisites for creating a mailing list&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#create-the-leads-and-members-mailing-lists"
 
 >Create the leads and members mailing lists&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#set-up-shared-calendars-and-meeting-with-a-mailing-list"
 
 >Set up shared calendars and meeting with a mailing list&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisites-for-sharing-a-calendar-and-meeting-notes"
 
 >Prerequisites for sharing a calendar and meeting notes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sharing-the-calendar-with-the-google-group"
 
 >Sharing the calendar with the Google Group&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sharing-the-meeting-notes-with-the-google-group"
 
 >Sharing the meeting notes with the Google Group&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#archive-a-mailing-list"
 
 >Archive a mailing list&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h2 id="code-of-conduct">Code of conduct&lt;/h2>
&lt;p>The Kubernetes project adheres to the community &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct"
 
 >Code of Conduct&lt;/a>
 throughout all
platforms and includes all communication mediums.&lt;/p></description></item><item><title>Make a control-plane's kubelet point to the local API Server on kubeadm join</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4471/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4471/</guid><description/></item><item><title>Make kube-proxy service abstraction optional</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2447/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2447/</guid><description>&lt;h1 id="make-kube-proxy-service-abstraction-optional">Make kube-proxy service abstraction optional&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design"
 
 >Design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing"
 
 >Testing&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>In a cluster that has a service mesh a lot of the work being done by kube-proxy is redundant and wasted.
Specifically, services that are only reached via other services in the mesh will never use the service abstraction implemented by kube-proxy in iptables (or ipvs).
By informing the kube-proxy of this, we can lighten the work it is doing and the burden on its proxy backend.&lt;/p></description></item><item><title>Make Kubernetes aware of the load balancer behaviour</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1860/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1860/</guid><description>&lt;h1 id="kep-1860-make-kubernetes-aware-of-the-loadbalancer-behaviour">KEP-1860 Make Kubernetes aware of the LoadBalancer behaviour&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#betaga"
 
 >Beta/GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The different kube-proxy implementations (at least ipvs and iptables), as of today, are binding the External IPs of the LoadBalancer Service to each node. (iptables are creating some rules to redirect packets directly to the service and ipvs is binding the IP to one interface on the node). This feature exists because:&lt;/p></description></item><item><title>Make nftables the default kube-proxy backend</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5343/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5343/</guid><description>&lt;h1 id="kep-5343-make-nftables-the-default-kube-proxy-backend">KEP-5343: Make nftables the default kube-proxy backend&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kernel-support"
 
 >Kernel support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stability-and-performance"
 
 >Stability and performance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-compatibility"
 
 >Feature compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#transitioning-the-default-proxy-mode-in-existing-clusters"
 
 >Transitioning the default proxy &lt;code>mode&lt;/code> in existing clusters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-137"
 
 >Alpha (1.37)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-139"
 
 >Beta (1.39)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-140"
 
 >GA (1.40)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Manifest Based Admission Control Config</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5793/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5793/</guid><description>&lt;h1 id="kep-5793-manifest-based-admission-control-config">KEP-5793: Manifest Based Admission Control Config&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#supported-resource-types"
 
 >Supported Resource Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-platform-invariants"
 
 >Story 1: Platform Invariants&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-self-protection-of-critical-admission-policies"
 
 >Story 2: Self-Protection of Critical Admission Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-bootstrapping-cluster-security"
 
 >Story 3: Bootstrapping Cluster Security&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unifying-excluded-virtual-resources-for-webhook-admission"
 
 >Unifying Excluded Virtual Resources for Webhook Admission&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-admissionconfiguration-schema"
 
 >New AdmissionConfiguration Schema&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#manifest-file-format"
 
 >Manifest File Format&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#naming-and-conflict-resolution"
 
 >Naming and Conflict Resolution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#file-watching-and-dynamic-reloading"
 
 >File Watching and Dynamic Reloading&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#decoding-defaulting-and-validation"
 
 >Decoding, Defaulting, and Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics-and-audit-annotations"
 
 >Metrics and Audit Annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#webhook-virtual-resource-exclusion-implementation"
 
 >Webhook Virtual Resource Exclusion Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecation-warnings-for-affected-webhook-configurations"
 
 >Deprecation Warnings for Affected Webhook Configurations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deny-policies-in-rbac"
 
 >Deny policies in RBAC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#static-admission-plugins"
 
 >Static admission plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#external-configuration-management"
 
 >External configuration management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Memory Manager</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1769/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1769/</guid><description>&lt;h1 id="kep-1769-memory-manager">KEP-1769: Memory Manager&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1--high-performance-packet-processing-with-dpdk"
 
 >Story 1 : High-performance packet processing with DPDK&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2--databases"
 
 >Story 2 : Databases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3--kubevirt-provided-by-rmohr"
 
 >Story 3 : KubeVirt (provided by @rmohr)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ux"
 
 >UX&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-to-enable-the-guaranteed-memory-allocation-over-many-numa-nodes"
 
 >How to enable the guaranteed memory allocation over many NUMA nodes?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-concept-of-node-map-and-memory-maps"
 
 >The Concept of Node Map and Memory Maps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-map"
 
 >Memory Map&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#memory-maps-at-start-up-with-examples"
 
 >Memory Maps at start-up (with examples)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-maps-at-runtime-with-examples"
 
 >Memory Maps at runtime (with examples)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#simulation---how-the-memory-manager-works-by-examples"
 
 >Simulation - how the Memory Manager works? (by examples)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#slide-reject-pod2"
 
 >Slide &amp;quot;Reject Pod2&amp;quot;&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#hints-generation-for-topology-manager"
 
 >Hints Generation for Topology Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-flags-and-configuration-of-the-memory-manager"
 
 >New Flags and Configuration of the Memory Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate-flag"
 
 >Feature Gate Flag&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-manager-policy-flag"
 
 >Memory Manager Policy Flag&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reserved-memory-flag"
 
 >Reserved Memory Flag&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#new-interfaces"
 
 >New Interfaces&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-this-proposal-affects-the-kubelet-ecosystem"
 
 >How this proposal affects the kubelet ecosystem?&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#container-manager"
 
 >Container Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#topology-manager"
 
 >Topology Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#internal-container-lifecycle"
 
 >Internal Container Lifecycle&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#single-numa-systems-tests"
 
 >Single-NUMA Systems Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multi-numa-system-tests"
 
 >Multi-NUMA System Tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-alpha-target-v121"
 
 >Phase 1: Alpha (target v1.21)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-beta-target-v122"
 
 >Phase 2: Beta (target v1.22)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-stable"
 
 >GA (stable)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix"
 
 >Appendix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#related-features"
 
 >Related Features&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#related-issues"
 
 >Related issues&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-nodes-memory-management-mechanisms-and-their-relation-to-the-memory-manager"
 
 >Kubernetes Node&amp;rsquo;s Memory Management Mechanisms and their relation to the Memory Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mechanism-i-pod-eviction-by-kubelet"
 
 >Mechanism I (pod eviction by kubelet)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mechanism-ii-out-of-memory-oom-killer-by-kernelos"
 
 >Mechanism II (Out-of-Memory (OOM) killer by kernel/OS)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mechanism-iii-obey-cgroup-limit-by-oom-killer"
 
 >Mechanism III (obey cgroup limit, by OOM killer)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Memory QoS</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2570/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2570/</guid><description>&lt;h1 id="kep-2570-support-memory-qos-with-cgroups-v2">KEP-2570: Support Memory QoS with cgroups v2&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#latest-update"
 
 >Latest Update&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#previous-status-v136"
 
 >Previous Status (v1.36)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#previous-status-v128"
 
 >Previous Status (v1.28)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v122"
 
 >Alpha v1.22&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-v127"
 
 >Alpha v1.27&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v128---cancelled"
 
 >Beta v1.28 - Cancelled&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-v136"
 
 >Alpha v1.36&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v137"
 
 >Beta v1.37&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#memory-sensitive-workload"
 
 >Memory Sensitive Workload&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-availability"
 
 >Node Availability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#comparison-with-memory-manager"
 
 >Comparison with Memory Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memorylow-vs-memorymin"
 
 >memory.low vs memory.min&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite"
 
 >Prerequisite&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mapping-rules"
 
 >Mapping Rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#containerpod"
 
 >Container/Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node"
 
 >Node&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#interactive"
 
 >Interactive&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workflow"
 
 >Workflow&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#container"
 
 >Container&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod"
 
 >Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#qos"
 
 >QoS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-1"
 
 >Node&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cgroup-hierarchy"
 
 >Cgroup Hierarchy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cgroup-v2-support"
 
 >Cgroup v2 Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-interface-cri-changes"
 
 >Container Runtime Interface (CRI) Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-graduation-v136---alpha-v3"
 
 >Alpha Graduation (v1.36 - Alpha v3)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-graduation"
 
 >Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-graduation"
 
 >GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="latest-update">Latest Update&lt;/h2>
&lt;p>Targeting Beta in v1.37. Rollback cleanup is now fully implemented. Cgroup v2 memory knobs (&lt;code>memory.min&lt;/code>, &lt;code>memory.low&lt;/code>, &lt;code>memory.high&lt;/code>) are properly cleared when the MemoryQoS feature gate is disabled. Node e2e tests cover memory protection, throttling, and rollback cleanup. Benchmark testing validates memory.high throttle behavior, tiered memory protection, and rollback safety. See &lt;a href="#beta-v137"
 
 >Beta v1.37&lt;/a>
 for details.&lt;/p></description></item><item><title>Metrics Stability Framework</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1209/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1209/</guid><description>&lt;h1 id="kep-1209-metrics-stability-framework">KEP-1209: Metrics Stability Framework&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#net-new---alpha-graduation"
 
 >Net New -&amp;gt; Alpha Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-this-feature-be-enabled--disabled-in-a-live-cluster"
 
 >How can this feature be enabled / disabled in a live cluster?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-specific-metrics-should-inform-a-rollback"
 
 >What specific metrics should inform a rollback?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-an-operator-determine-if-the-feature-is-in-use-by-workloads"
 
 >How can an operator determine if the feature is in use by workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-slis-service-level-indicators-an-operator-can-use-to-determine-the-health-of-the-service"
 
 >What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#does-this-feature-depend-on-any-specific-services-running-in-the-cluster"
 
 >Does this feature depend on any specific services running in the cluster?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#for-ga-this-section-is-required-approvers-should-be-able-to-confirm-the-previous-answers-based-on-experience-in-the-field"
 
 >For GA, this section is required: approvers should be able to confirm the previous answers based on experience in the field.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-api-calls-describe-them-providing"
 
 >Will enabling / using this feature result in any new API calls? Describe them, providing:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-does-this-feature-react-if-the-api-server-andor-etcd-is-unavailable"
 
 >How does this feature react if the API server and/or etcd is unavailable?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-other-known-failure-modes"
 
 >What are other known failure modes?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-list-of-stable-metrics"
 
 >Current list of stable metrics:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>metrics.k8s.io API definition</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5207/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5207/</guid><description>&lt;h1 id="kep-5207-metricsk8sio-api-definition">KEP-5207: metrics.k8s.io API definition&lt;/h1>
&lt;!-- TOC -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /TOC -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Migrate Gateway API to k8s.io Group</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2829/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2829/</guid><description>&lt;h1 id="kep-2829-migrate-gateway-api-to-k8sio-group">KEP-2829: Migrate Gateway API to k8s.io Group&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;em>Note: This KEP is primarily for tracking purposes. The code for this feature is
all out-of-tree, but the using the k8s.io API group requires API review. Most
sections of this KEP will be marked as not applicable.&lt;/em>&lt;/p></description></item><item><title>Migrate kubernetes-mixin from kubernetes-monitoring to kubernetes-sigs organization</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5905/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5905/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5905-migrate-kubernetes-mixin-from-kubernetes-monitoring-to-kubernetes-sigs-organization">KEP-5905: Migrate &lt;code>kubernetes-mixin&lt;/code> from &lt;code>kubernetes-monitoring&lt;/code> to &lt;code>kubernetes-sigs&lt;/code> organization&lt;/h1>
&lt;p>&lt;strong>Please note that quite a few sections from the template were dropped in this
KEP, as they are not applicable to the nature of the proposal.&lt;/strong>&lt;/p></description></item><item><title>Migrating API objects to latest storage version</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2330/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2330/</guid><description>&lt;h1 id="migrating-api-objects-to-latest-storage-version">Migrating API objects to latest storage version&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-workflow"
 
 >Alpha workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-api"
 
 >Alpha API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failure-recovery"
 
 >Failure recovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-workflow---automation"
 
 >Beta workflow - Automation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#beta-graduation-criteria"
 
 >Beta Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#update-storage-objectssh"
 
 >update-storage-objects.sh&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We propose a solution to migrate the stored API objects in Kubernetes clusters.
In 2018 Q4, we will deliver a tool of alpha quality. The tool extends and
improves based on the &lt;a href="https://www.mankier.com/1/oc-adm-migrate-storage"
 
 target="_blank" rel="noopener">oc adm migrate storage&lt;/a>
 command.&lt;/p></description></item><item><title>Minimize iptables-restore input size</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3453/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3453/</guid><description>&lt;h1 id="kep-3453-minimizing-iptables-restore-input-size">KEP-3453: Minimizing iptables-restore input size&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#general-plan"
 
 >General Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#catastrophic-failure"
 
 >Catastrophic Failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#subtle-optimization-failure"
 
 >Subtle Optimization Failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#subtle-synchronization-delays"
 
 >Subtle Synchronization Delays&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The performance of kube-proxy&amp;rsquo;s iptables mode in large clusters could
be greatly increased by optimizing its calls to &lt;code>iptables-restore&lt;/code>.
Although this is a small change in terms of code size, it has a large
effect on kube-proxy operation, and could potentially completely break
clusters (if the code was buggy), so we have decided to treat it as a
KEP-able feature.&lt;/p></description></item><item><title>minReadySeconds for StatefulSets</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2599/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2599/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2599-minreadyseconds-for-statefulsets">KEP-2599: minReadySeconds for StatefulSets&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#statefulset"
 
 >StatefulSet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Moderation Rules and Responsibilities</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderation/</guid><description>&lt;p>This page describes the rules and best practices for people chosen to moderate
Kubernetes communications channels. This includes Github, Slack, forums, mailing
lists, YouTube, Zoom, and any property listed in the SIG Contributor Experience
&lt;a href="https://github.com/kubernetes/community/blob/main/sig-contributor-experience/charter.md#code-binaries-and-services"
 
 target="_blank" rel="noopener">charter&lt;/a>
.&lt;/p>
&lt;ul>
&lt;li>Check the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderators"
 
 >centralized list of administrators&lt;/a>
 for contact
information.&lt;/li>
&lt;li>Some Kubernetes properties, like the Twitter account, are managed by the CNCF.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;ul>
&lt;li>&lt;a href="#selection-of-moderators"
 
 >Selection of Moderators&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#moderators-pro-tempore"
 
 >Moderators Pro Tempore&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rotation-of-moderators"
 
 >Rotation of Moderators&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#roles-and-responsibilities"
 
 >Roles and Responsibilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#violations"
 
 >Violations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#escalation-procedures"
 
 >Escalation Procedures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#platform-specific-guidelines"
 
 >Platform Specific Guidelines&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#discuss"
 
 >Discuss&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mailing-list"
 
 >Mailing List&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#slack"
 
 >Slack&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#youtube"
 
 >YouTube&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#zoom"
 
 >Zoom&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#process-for-adding-a-moderator"
 
 >Process for Adding a Moderator&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references-and-resources"
 
 >References and Resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="selection-of-moderators">Selection of Moderators&lt;/h2>
&lt;p>Each Kubernetes property has a certain set of &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderators"
 
 >moderators&lt;/a>
 who
are responsible for keeping it safe and a fun place to participate.&lt;/p></description></item><item><title>Moderator list</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderators/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderators/</guid><description>&lt;p>The following people are responsible for moderating/administrating Kubernetes
communication channels and their home time zone. See our
&lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderation"
 
 >moderation guidelines&lt;/a>
 for policies and recommendations.&lt;/p>
&lt;ul>
&lt;li>&lt;a href="#mailing-lists"
 
 >Mailing Lists&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-dev"
 
 >kubernetes-dev&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#administrators"
 
 >Administrators&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#primary-moderators"
 
 >Primary Moderators&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#moderators-pro-tempore"
 
 >Moderators Pro Tempore&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#github"
 
 >GitHub&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#discuss"
 
 >Discuss&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#administrators-1"
 
 >Administrators&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#regional-category-moderators"
 
 >Regional Category Moderators&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#youtube-channel"
 
 >YouTube Channel&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#owners"
 
 >Owners&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#primary-moderators-1"
 
 >Primary Moderators&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backup-moderators"
 
 >Backup Moderators&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#slack"
 
 >Slack&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#owner"
 
 >Owner&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#moderators"
 
 >Moderators&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#moderators-pro-tempore-1"
 
 >Moderators Pro Tempore&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#zoom"
 
 >Zoom&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h2 id="mailing-lists">Mailing Lists&lt;/h2>
&lt;h3 id="kubernetes-dev">kubernetes-dev&lt;/h3>
&lt;h4 id="administrators">Administrators&lt;/h4>
&lt;ul>
&lt;li>&lt;a href="https://git.k8s.io/community/sig-contributor-experience/README.md#leadership"
 
 target="_blank" rel="noopener">SIG Contributor Experience Leads&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h4 id="primary-moderators">Primary Moderators&lt;/h4>
&lt;p>Primary moderators seats: 6&lt;/p></description></item><item><title>More granular Job failure reasons for PodFailurePolicy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4443/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4443/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4443-more-granular-job-failure-reasons-for-podfailurepolicyrule">KEP-4443: More granular Job failure reasons for PodFailurePolicyRule&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#defaulting"
 
 >Defaulting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#business-logic"
 
 >Business logic&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Move cgroup v1 in maintenance mode</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4569/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4569/</guid><description>&lt;h1 id="kep-4569-moving-cgroup-v1-support-into-maintenance-mode">KEP-4569: Moving cgroup v1 support into maintenance mode&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introduction-of-cgroup-version-metric"
 
 >Introduction of cgroup version metric&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementing-a-warning-log-and-an-event-for-cgroup-v1-usage"
 
 >Implementing a warning log and an event for cgroup v1 usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introduce-a-kubelet-flag-to-disable-cgroup-v1-support"
 
 >Introduce a kubelet flag to disable cgroup v1 support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#code-modifications-for-default-cgroup-assumptions"
 
 >Code modifications for default cgroup assumptions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#separation-of-cgroup-v1-and-cgroup-v2-code-paths"
 
 >Separation of cgroup v1 and cgroup v2 Code Paths&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Move EndpointSlice Reconciler into Staging</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3685/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3685/</guid><description>&lt;h1 id="kep-3685-move-endpointslice-reconciler-into-staging">KEP-3685: Move EndpointSlice Reconciler into Staging&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Move the EndpointSlice reconciler and it’s dependencies to staging so that the
reconciler logic be reused by out-of-tree EndpointSlice controllers.&lt;/p>
&lt;p>Some changes are needed in &lt;code>pkg/controller/endpointslice&lt;/code> to move the reconciler
code to &lt;code>staging/src/k8s.io/endpointslice&lt;/code> and then import it as Go module.
These changes include making private methods public and updating the import
paths.&lt;/p></description></item><item><title>Move ExternalDNS out of Kubernetes incubator</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2449/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2449/</guid><description>&lt;h1 id="move-externaldns-out-of-kubernetes-incubator">Move ExternalDNS out of Kubernetes incubator&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#details"
 
 >Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#maintainers"
 
 >Maintainers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#release-process-artifacts"
 
 >Release process, artifacts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;a href="https://github.com/kubernetes-incubator/external-dns"
 
 target="_blank" rel="noopener">ExternalDNS&lt;/a>
 is a project that synchronizes Kubernetes’ Services, Ingresses and other Kubernetes resources to DNS backends for several DNS providers.&lt;/p>
&lt;p>The projects was started as a Kubernetes Incubator project in February 2017 and being the Kubernetes incubation initiative officially over, the maintainers want to propose the project to be moved to the kubernetes GitHub organization or to kubernetes-sigs, under the sponsorship of sig-network.&lt;/p></description></item><item><title>Move Kubectl Code into Staging</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1020/</guid><description>&lt;h1 id="kep-1020-move-kubectl-code-into-staging">KEP-1020: Move Kubectl Code into Staging&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adding-the-staging-repository-in-kuberneteskubernetes"
 
 >Adding the staging repository in kubernetes/kubernetes:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modify-and-set-up-the-existing-receiving-kuberneteskubectl-repository"
 
 >Modify and Set-up the existing receiving kubernetes/kubectl repository&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#move-pkgkubectl-code"
 
 >Move &lt;code>pkg/kubectl&lt;/code> Code&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#time-frame"
 
 >Time frame&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing"
 
 >Testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Move mount library to staging</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2261/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2261/</guid><description>&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>[NA] Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>[NA] Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>[NA] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>[NA] Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The mount library in k8s/utils/mount is shared by both in-tree volume plugins and external CSI drivers. We propose moving this library from k8s/utils to a separate k/k staging repo in order to leverage existing k/k e2e tests and infrastructure, and make it easier to backport fixes to the mount library to Kubernetes&lt;/p></description></item><item><title>Move ReferenceGrant to sig-auth API Group</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3766/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3766/</guid><description>&lt;h1 id="kep-3766-move-referencegrant-to-sig-auth-api-group">KEP-3766: Move ReferenceGrant to SIG Auth API Group&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#no-default-implementation"
 
 >No Default Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#potential-for-variations-among-implementations"
 
 >Potential for Variations Among Implementations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cross-namespace-references-may-weaken-namespace-boundaries"
 
 >Cross-Namespace References may Weaken Namespace Boundaries&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#general-notes"
 
 >General Notes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#referencegrant-is-half-of-a-handshake"
 
 >&lt;code>ReferenceGrant&lt;/code> is half of a handshake&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#referencegrant-authors-must-have-sufficient-access"
 
 >ReferenceGrant authors must have sufficient access&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-vs-kind"
 
 >&lt;code>Resource&lt;/code> vs &lt;code>Kind&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#revocation-behavior"
 
 >Revocation behavior&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#example-usage"
 
 >Example Usage&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#gateway-api-gateway-referencing-secret"
 
 >Gateway API Gateway Referencing Secret&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gateway-api-httproute-referencing-service"
 
 >Gateway API HTTPRoute Referencing Service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#persistentvolumeclaim-using-cross-namespace-data-source"
 
 >PersistentVolumeClaim using cross namespace data source&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#api-spec"
 
 >API Spec&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#outstanding-questions-and-clarifications"
 
 >Outstanding questions and clarifications&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#open-questions"
 
 >Open Questions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#do-we-need-verbs"
 
 >Do We Need Verbs?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#do-we-need-any-or-wildcard-selectors"
 
 >Do We Need Any or Wildcard Selectors?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#do-we-need-label-selectors"
 
 >Do We Need Label Selectors?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Move Storage Version Migrator in-tree</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4192/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4192/</guid><description>&lt;h1 id="kep-4192-move-storage-version-migrator-in-tree">KEP-4192: Move Storage Version Migrator in-tree&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#apis-to-move"
 
 >APIs to move&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-while-we-move-above-apis-in-tree"
 
 >Changes while we move above APIs in-tree:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#former-out-of-tree-implementation"
 
 >Former, out-of-tree implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-kcm-based-controller"
 
 >New KCM-based controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#garbage-collection-cache"
 
 >Garbage Collection Cache&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#crd-storage-version-status-update"
 
 >CRD Storage Version Status Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rbac-for-svm"
 
 >RBAC for SVM&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#streaming-list-considered-rejected"
 
 >Streaming List (considered, rejected)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Moving ComponentConfig API types to staging repos</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/115/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/115/</guid><description/></item><item><title>Multi Scheduling Profiles</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1451/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1451/</guid><description>&lt;h1 id="multi-scheduling-profiles">Multi Scheduling Profiles&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#component-config-api"
 
 >Component Config API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#conversion-between-api-versions"
 
 >Conversion between API versions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defaults"
 
 >Defaults&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cli-flags-binding"
 
 >CLI flags binding&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-scheduler-implementation"
 
 >Kube-Scheduler implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v118"
 
 >Alpha (v1.18):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v119"
 
 >Beta (v1.19):&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>As workloads in clusters become more heterogeneous, it is natural that they have
different scheduling needs.&lt;/p></description></item><item><title>Multi-Cluster Services API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1645/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1645/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please ensure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "title", "authors", "owning-sig",
 "status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary", and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG that are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as a `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement", for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If there are
new details that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable` or significant changes once
it is marked `implementable` must be approved by each of the KEP approvers.
If any of those approvers is no longer appropriate than changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross cutting KEPs).
-->
&lt;h1 id="kep-1645-multi-cluster-services-api">KEP-1645: Multi-Cluster Services API&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#terminology"
 
 >Terminology&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#different-clusterip-services-each-deployed-to-separate-cluster"
 
 >Different ClusterIP Services Each Deployed to Separate Cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-service-deployed-to-multiple-clusters"
 
 >Single Service Deployed to Multiple Clusters&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#constraints"
 
 >Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#exporting-services"
 
 >Exporting Services&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#restricting-exports"
 
 >Restricting Exports&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#importing-services"
 
 >Importing Services&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clusterset-service-behavior-expectations"
 
 >ClusterSet Service Behavior Expectations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-types"
 
 >Service Types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clustersetip"
 
 >ClusterSetIP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dns"
 
 >DNS&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#no-ptr-records-necessary-for-multicluster-dns"
 
 >No PTR records necessary for multicluster DNS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#not-allowing-cluster-specific-targeting-via-dns"
 
 >Not allowing cluster-specific targeting via DNS&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#tracking-endpoints"
 
 >Tracking Endpoints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#using-endpointslice-objects-to-track-endpoints"
 
 >Using &lt;code>EndpointSlice&lt;/code> objects to track endpoints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpoint-ttl"
 
 >Endpoint TTL&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#constraints-and-conflict-resolution"
 
 >Constraints and Conflict Resolution&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#global-properties"
 
 >Global Properties&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-port"
 
 >Service Port&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#headlessness"
 
 >Headlessness&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#session-affinity"
 
 >Session Affinity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#internal-traffic-policy"
 
 >Internal Traffic Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#traffic-distribution"
 
 >Traffic Distribution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#labels-and-annotations"
 
 >Labels and Annotations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#objectreference-in-serviceexportspec-to-directly-map-to-a-service"
 
 >&lt;code>ObjectReference&lt;/code> in &lt;code>ServiceExport.Spec&lt;/code> to directly map to a Service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#export-services-via-label-selector"
 
 >Export services via label selector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#export-via-annotation"
 
 >Export via annotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-conflict-resolution-algorithms"
 
 >Other conflict resolution algorithms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exporting-labelsannotations-from-the-serviceserviceexport-objects"
 
 >Exporting labels/annotations from the Service/ServiceExport objects&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in
&lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG
Testing input&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for
publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to
mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;!--
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
-->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;!--
This section is incredibly important for producing high quality user-focused
documentation such as release notes or a development roadmap. It should be
possible to collect this information before implementation begins in order to
avoid requiring implementors to split their attention between writing release
notes and implementing the feature itself. KEP editors, SIG Docs, and SIG PM
should help to ensure that the tone and content of the `Summary` section is
useful for a wide audience.

A good summary is probably at least a paragraph in length.
-->
&lt;p>There is currently no standard way to connect or even think about Kubernetes
services beyond the cluster boundary, but we increasingly see users deploy
applications across multiple clusters designed to work in concert. This KEP
proposes a new API to extend the service concept across multiple clusters. It
aims for minimal additional configuration, making multi-cluster services as easy
to use as in-cluster services, and leaves room for multiple implementations.&lt;/p></description></item><item><title>Multiple Service CIDRs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1880/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1880/</guid><description>&lt;h1 id="kep-1880-multiple-service-cidrs">KEP-1880: Multiple Service CIDRs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-implementation-details"
 
 >Current implementation details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-allocation-model"
 
 >New allocation model&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-kube-apiserver-bootstrap-process-and-the-service-cidr-flags"
 
 >The kube-apiserver bootstrap process and the service-cidr flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-special-default-servicecidr"
 
 >The special &amp;quot;default&amp;quot; ServiceCIDR&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#service-ip-allocation"
 
 >Service IP Allocation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#service-ip-reservation"
 
 >Service IP Reservation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#edge-cases"
 
 >Edge cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resizing-service-ip-ranges"
 
 >Resizing Service IP Ranges&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allocator"
 
 >Allocator&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade--version-skew-strategy"
 
 >Upgrade / Downgrade / Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1"
 
 >Alternative 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2"
 
 >Alternative 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3"
 
 >Alternative 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-4"
 
 >Alternative 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Allow to dynamically expand the number of IPs available for Services.&lt;/p></description></item><item><title>Mutable CSINode Allocatable Property</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4876/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4876/</guid><description>&lt;h1 id="kep-4876-mutable-csinode-allocatable-property">KEP-4876: Mutable CSINode Allocatable Property&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csinode"
 
 >CSINode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csidriver"
 
 >CSIDriver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumeerror"
 
 >VolumeError&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-changes"
 
 >Validation Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-node-updater"
 
 >CSI Node Updater&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation details&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#update-behavior"
 
 >Update behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#error-handling"
 
 >Error handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodeinfomanager-interface-extension"
 
 >NodeInfoManager Interface Extension&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csinode-update-behavior"
 
 >CSINode Update Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-construction-changes"
 
 >Pod Construction Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-enhancements"
 
 >Scheduler Enhancements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Mutable Node Scheduling Directives for Jobs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2926/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2926/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2926-allow-updating-scheduling-directives-of-jobs">KEP-2926: Allow updating scheduling directives of jobs&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#update-related-to-kep-5440"
 
 >Update related to KEP-5440&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-2-allow-updating-jobs-with-no-restrictions"
 
 >Alternative 2: allow updating jobs with no restrictions.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-updating-all-suspended-jobs"
 
 >Allow updating all suspended jobs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Mutable PersistentVolume Node Affinity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5381/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5381/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5381-mutable-persistentvolume-node-affinity">KEP-5381: Mutable PersistentVolume Node Affinity&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#handling-race-condition"
 
 >Handling race condition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#integrate-with-the-csi-spec-and-volumeattributesclass"
 
 >Integrate with the CSI spec and VolumeAttributesClass&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Mutable Pod Resources for Suspended Jobs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5440/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5440/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5440-allow-updating-pod-template-resources-cpu-memory-gpu-extended-resources-of-suspended-jobs">KEP-5440: Allow updating pod template resources (CPU, memory, GPU, extended resources) of suspended jobs&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dra-support"
 
 >DRA Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resuming-on-running-workloads"
 
 >Resuming on running workloads&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#related-changes"
 
 >Related changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutablepodresourcesforsuspendedjobs"
 
 >MutablePodResourcesForSuspendedJobs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutableschedulingdirectivesforsuspendedjobs"
 
 >MutableSchedulingDirectivesForSuspendedJobs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#delete-and-recreate-jobs"
 
 >Delete and Recreate Jobs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Mutating Admission Policies</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3962/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3962/</guid><description>&lt;h1 id="kep-3962-mutating-admission-policies">KEP-3962: Mutating Admission Policies&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#summary-1"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-1"
 
 >Phase 1&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-shape"
 
 >API Shape&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#old-object-state"
 
 >Old object state&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#construct-typed-object"
 
 >Construct Typed Object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bindings"
 
 >Bindings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#parameterization"
 
 >Parameterization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reinvocation"
 
 >Reinvocation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#phase-2"
 
 >Phase 2&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#construct-type-enforcement"
 
 >Construct Type Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unsetting-values"
 
 >Unsetting values&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#safety"
 
 >Safety&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cel-library-change"
 
 >CEL Library Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#share-bindings"
 
 >Share Bindings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#type-handling"
 
 >Type Handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#composition-variables"
 
 >Composition variables&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risk"
 
 >Risk&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-case-set-a-label"
 
 >Use case: Set a label&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-alwayspullimages"
 
 >Use case: AlwaysPullImages&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-defaultingressclass"
 
 >Use case: DefaultIngressClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-defaultstorageclass"
 
 >Use case: DefaultStorageClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-defaulttolerationseconds"
 
 >Use case: DefaultTolerationSeconds&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-if-conditional-based-on-value-contained-in-nested-map-list"
 
 >Use case: if-conditional based on value contained in nested map-list&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-limitranger"
 
 >Use case: LimitRanger&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-priority-class"
 
 >Use case: priority class&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-sidecar-injection"
 
 >Use case: Sidecar injection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-remove-an-annotation"
 
 >Use case: Remove an annotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-if-an-annotation-is-set-set-a-field-instead"
 
 >Use case: If an annotation is set, set a field instead&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-modify-deprecated-field-under-crd-versions"
 
 >Use case: modify deprecated field under CRD versions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case---mutation-vs-controller-fight"
 
 >Use Case - mutation VS controller fight&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case---limitation"
 
 >Use Case - limitation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#object-type-names"
 
 >Object type names&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ssa-merge-algorithm-reuse"
 
 >SSA Merge algorithm reuse&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-2-introduce-new-syntax"
 
 >Alternative 2: Introduce new syntax&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Namespace Selector for Pod Affinity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2249/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2249/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2249-namespace-selector-for-pod-affinity">KEP-2249: Namespace Selector For Pod Affinity&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#performance"
 
 >Performance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#securityabuse"
 
 >Security/Abuse&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#external-dependencies"
 
 >External Dependencies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Native Histogram Support for Kubernetes Metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5808/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5808/</guid><description>&lt;h1 id="kep-5808-native-histogram-support-for-kubernetes-metrics">KEP-5808: Native Histogram Support for Kubernetes Metrics&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-platform-engineer-optimizing-monitoring-costs"
 
 >Story 1: Platform Engineer Optimizing Monitoring Costs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-sre-detecting-performance-regressions"
 
 >Story 2: SRE Detecting Performance Regressions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dual-exposition-strategy"
 
 >Dual Exposition Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-phases"
 
 >Implementation Phases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prometheus-version-compatibility"
 
 >Prometheus Version Compatibility&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#special-concern-prometheus-2x-users"
 
 >Special Concern: Prometheus 2.x Users&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#increase-classic-histogram-bucket-count"
 
 >Increase Classic Histogram Bucket Count&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Network Policy status subresource</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2943/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2943/</guid><description>&lt;h1 id="kep-2943-network-policy-status-subresource">KEP-2943: Network Policy Status subresource&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>NetworkPolicy objects does not contain a status subresource. This KEP
proposes to add this subresource in NetworkPolicy objects, allowing Network Policy providers to provide
feedback to users whether a NetworkPolicy and its features has been properly parsed.&lt;/p></description></item><item><title>New CPUManager Static Policy which spread hyperthreads across physical CPUs to better utilize CPU Cache</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4176/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4176/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4176-a-new-static-policy-to-prefer-allocating-cores-from-different-cpus-on-the-same-socket">KEP-4176: A new static policy to prefer allocating cores from different CPUs on the same socket&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-bytedance-database-performance-optimization"
 
 >Story 1 Bytedance Database Performance Optimization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>New Event API GA Graduation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/383/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/383/</guid><description>&lt;h1 id="new-event-api-ga-graduation">New Event API GA Graduation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#usability-issues-with-the-current-api"
 
 >Usability Issues With the Current API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#few-examples"
 
 >Few Examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comparison-between-old-and-new-apis"
 
 >Comparison Between Old and New APIs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#performance-improvements"
 
 >Performance Improvements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-in-eventrecorder"
 
 >Changes in EventRecorder&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#short-examples"
 
 >Short Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#client-side-changes"
 
 >Client Side Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restarts"
 
 >Restarts&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#defence-in-depth"
 
 >Defence in Depth&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#aggressive-backoff"
 
 >Aggressive Backoff&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#other-related-changes"
 
 >Other Related Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecated-fields"
 
 >Deprecated Fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#load-test"
 
 >Load Test&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#considerations"
 
 >Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#performance-impact"
 
 >Performance Impact&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backward-compatibility"
 
 >Backward Compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-queries-with-new-events"
 
 >Sample Queries With &amp;quot;New&amp;quot; Events&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#get-all-nodecontroller-events"
 
 >Get All NodeController Events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#get-all-events-from-lifetime-of-a-given-pod"
 
 >Get All Events From Lifetime of a Given Pod&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#leaving-current-dedup-mechanism-but-improve-backoff-behavior"
 
 >Leaving Current Dedup Mechanism but Improve Backoff Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#timestamp-list-as-a-dedup-mechanism"
 
 >Timestamp List as a Dedup Mechanism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#events-as-an-aggregated-object"
 
 >Events as an Aggregated Object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-new-api-group-for-storing-data"
 
 >Using New API Group for Storing Data&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pivoting-towards-more-machine-readable-events-by-introducing-stricter-structure"
 
 >Pivoting Towards More Machine Readable Events by Introducing Stricter Structure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pivoting-towards-making-events-more-helpful-for-cluster-operator-during-debugging"
 
 >Pivoting Towards Making Events More Helpful for Cluster Operator During Debugging&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>New kubelet gRPC API with endpoint returning local pods information</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4188/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4188/</guid><description>&lt;h1 id="kep-4188-new-kubelet-grpc-api-with-endpoint-returning-local-pods-information">KEP-4188: New Kubelet gRPC API with endpoint returning local Pods information&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-kind-of-api-to-chose"
 
 >What kind of API to chose?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-we-integrate-with-podresource-api"
 
 >Can we integrate with PodResource API?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#control-plane-availability-issue"
 
 >Control Plane availability issue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-restarts-issue"
 
 >Kubelet restarts issue&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-state-selection"
 
 >Pod State Selection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-api"
 
 >Proposed API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>New label for trusted PR identification</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2290/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2290/</guid><description>&lt;h1 id="new-label-for-trusted-pr-identification">New label for trusted PR identification&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#benefits"
 
 >Benefits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-evolutions"
 
 >Future evolutions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document describes a major change to the way the &lt;code>trigger&lt;/code> plugin determines if test jobs should be started on a pull request (PR).&lt;/p></description></item><item><title>New TopologyManager Policy which configure the value of maxAllowableNUMANodes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4622/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4622/</guid><description>&lt;h1 id="kep-4622-new-topologymanager-policy-which-configure-the-value-of-maxallowablenumanodes">KEP-4622: New TopologyManager Policy which configure the value of maxAllowableNUMANodes&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>nftables Localhost NodePort Userspace Proxy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6032/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6032/</guid><description>&lt;h1 id="kep-6032-nftables-localhost-nodeport-userspace-proxy">KEP-6032: nftables Localhost NodePort Userspace Proxy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-feature-support"
 
 >Service Feature Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#hostport-daemonset-proxy"
 
 >HostPort DaemonSet Proxy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Node Declared Features</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5328/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5328/</guid><description>&lt;h1 id="kep-5328-node-declared-features">KEP-5328: Node Declared Features&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#existing-mechanisms-and-limitations"
 
 >Existing Mechanisms and Limitations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#node-declared-features-requirements"
 
 >Node Declared Features Requirements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-rollout-challenges-with-version-skew"
 
 >Feature Rollout Challenges with Version Skew&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#declared-feature-semantics"
 
 >Declared Feature Semantics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet-changes"
 
 >Kubelet Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#shared-feature-matching-library"
 
 >Shared Feature Matching Library&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multi-cluster-support"
 
 >Multi Cluster Support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-scheduler-changes"
 
 >kube-scheduler Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#plugin-implementation"
 
 >Plugin Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance-considerations"
 
 >Performance Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-autoscaling-integration"
 
 >Node Autoscaling Integration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scaling-based-in-existing-nodes-scale-from--0"
 
 >Scaling based in existing nodes (Scale from &amp;gt; 0)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scaling-based-on-specifications-scale-from-zero"
 
 >Scaling based on specifications (Scale from Zero)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#admission-controller-changes"
 
 >Admission Controller Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#declared-feature-lifecycle"
 
 >Declared Feature Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#walkthrough"
 
 >Walkthrough&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#declared-feature-changes-on-existing-nodes"
 
 >Declared Feature Changes on Existing Nodes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-existing-mechanisms"
 
 >Integration with Existing Mechanisms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-strategy"
 
 >Upgrade/Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-considerations"
 
 >Future Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#explicit-declared-feature-request"
 
 >Explicit Declared Feature Request&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#using-a-meta-opt-in-signal"
 
 >Using a Meta Opt-In Signal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automatic-declared-feature-deprecation"
 
 >Automatic Declared Feature Deprecation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-node-labels-and-node-affinity-with-semver-comparison"
 
 >Using Node Labels and Node Affinity with SemVer comparison&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-a-mapstringstring-for-declaredfeatures"
 
 >Using a &lt;code>map[string]string&lt;/code> for &lt;code>DeclaredFeatures&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introducing-a-nodecapabilities-api"
 
 >Introducing a &lt;code>NodeCapabilities&lt;/code> API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-naming-conventions"
 
 >Alternative Naming Conventions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-names-for-the-field-in-nodestatus"
 
 >Alternative Names for the field in &lt;code>Node.Status&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-naming-conventions-for-declared-feature-keys"
 
 >Alternative Naming Conventions for Declared Feature Keys&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-autoscaling-integration---bypass-scheduler-filter-for-scale-from-0-scenarios"
 
 >Node Autoscaling Integration - Bypass Scheduler Filter for &amp;quot;Scale-from-0&amp;quot; Scenarios&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Node Lifecycle Conditions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5683/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5683/</guid><description>&lt;h1 id="kep-nnnn-node-lifecycle-conditions">KEP-NNNN: Node Lifecycle Conditions&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-daemonset-controller-and-gns-kubelet-disagree"
 
 >Story 1: DaemonSet Controller and GNS Kubelet Disagree&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-jobs-stuck-when-nodes-become-unreachable"
 
 >Story 2: Jobs Stuck When Nodes Become Unreachable&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-broken-nodes-can-consume-rollout-budget"
 
 >Story 3: Broken Nodes Can Consume Rollout Budget&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-daemonset-rollouts-arent-reporting-the-nodes-state"
 
 >Story 4: DaemonSet Rollouts Aren&amp;rsquo;t Reporting the Node&amp;rsquo;s State&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-taints-are-insufficient-for-signaling-node-drain"
 
 >Story 5: Taints are Insufficient for Signaling Node Drain&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-6-reactive-vs-proactive-drain"
 
 >Story 6: Reactive vs Proactive Drain&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-7-coordinating-between-controllers-and-admins"
 
 >Story 7: Coordinating between Controllers and Admins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-8-coordinating-between-the-autoscaler-and-scheduler-during-scale-in"
 
 >Story 8: Coordinating between the Autoscaler and Scheduler during Scale-in&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#gracefulnodeshutdowninprogress-condition"
 
 >GracefulNodeShutdownInProgress Condition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lifecycle-conditions"
 
 >Lifecycle Conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#writer-ownership"
 
 >Writer Ownership&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-extension-points"
 
 >Future Extension Points&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---introduce-well-known-conditions"
 
 >Alpha - Introduce Well-Known Conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha2---consume-conditions-in-controllers"
 
 >Alpha2 - Consume Conditions in Controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Node log query</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2258/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2258/</guid><description>&lt;h1 id="kep-2258-node-log-query">KEP-2258: Node log query&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implement-client-for-logs-endpoint-os-agnostic"
 
 >Implement client for logs endpoint (OS agnostic)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#linux-distributions-with-systemd--journald"
 
 >Linux distributions with systemd / journald&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#linux-distributions-without-systemd--journald"
 
 >Linux distributions without systemd / journald&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows"
 
 >Windows&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#large-log-files-and-events"
 
 >Large log files and events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#wider-access-to-all-node-level-service-logs"
 
 >Wider access to all node level service logs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet"
 
 >kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Node System Partition</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5894/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5894/</guid><description>&lt;h1 id="kep-5894-node-system-partition">KEP-5894: Node System Partition&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-system-daemon-isolation"
 
 >Story 1: System Daemon Isolation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-hpc-workloads"
 
 >Story 2: HPC Workloads&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-telco-low-latency-workloads"
 
 >Story 3: Telco Low-Latency Workloads&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cgroup-hierarchy"
 
 >Cgroup Hierarchy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#creation-and-hosting"
 
 >Creation and Hosting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-limiting"
 
 >Resource Limiting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#configuration"
 
 >Configuration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#relationship-to-existing-kubelet-resource-reservation"
 
 >Relationship to existing kubelet resource reservation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#eviction"
 
 >Eviction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-cgroup-hierarchies"
 
 >Alternative cgroup hierarchies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Node system swap support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2400/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2400/</guid><description>&lt;h1 id="kep-2400-node-memory-swap-support">KEP-2400: Node memory swap support&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scenarios"
 
 >Scenarios&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enable-swap-support-only-for-burstable-qos-pods"
 
 >Enable Swap Support only for Burstable QoS Pods&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#set-aside-swap-for-system-critical-daemons"
 
 >Set Aside Swap for System Critical Daemons&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#best-practices"
 
 >Best Practices&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#disable-swap-for-system-critical-daemons"
 
 >Disable swap for system critical daemons&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#protect-system-critical-daemons-for-iolatency"
 
 >Protect system critical daemons for iolatency&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#control-plane-swap"
 
 >Control Plane Swap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-of-a-dedicated-disk-for-swap"
 
 >Use of a dedicated disk for swap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#swap-as-the-default"
 
 >Swap as the default&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#steps-to-calculate-swap-limit"
 
 >Steps to Calculate Swap Limit&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#improved-node-stability"
 
 >Improved Node Stability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#long-running-applications-that-swap-out-startup-memory"
 
 >Long-running applications that swap out startup memory&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-flexibility"
 
 >Memory Flexibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#local-development-and-systems-with-fast-storage"
 
 >Local development and systems with fast storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#low-footprint-systems"
 
 >Low footprint systems&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#virtualization-management-overhead"
 
 >Virtualization management overhead&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-extensions-of-swap"
 
 >Future Extensions of Swap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-use-cases-of-swap"
 
 >Existing use cases of Swap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exhausting-swap-resource"
 
 >Exhausting swap resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security-risk"
 
 >Security risk&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cgroupv1-support"
 
 >Cgroupv1 support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-backed-volumes"
 
 >Memory-backed volumes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enabling-swap-as-an-end-user"
 
 >Enabling swap as an end user&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubeconfig-addition"
 
 >KubeConfig addition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-changes"
 
 >CRI Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#swap-metrics"
 
 >Swap Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-swap-support-to-nfd"
 
 >Add swap support to NFD&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha2"
 
 >Alpha2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-1"
 
 >Beta 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-2"
 
 >Beta 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-3"
 
 >Beta 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#just-set---fail-swap-onfalse"
 
 >Just set &lt;code>&amp;ndash;fail-swap-on=false&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Node Topologies via Downward API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4742/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4742/</guid><description>&lt;h1 id="kep-4742-node-topology-labels-via-downward-api">KEP-4742: Node Topology Labels via Downward API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#expose-all-node-labels-via-downward-api"
 
 >Expose all node labels via downward API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#helper-controller"
 
 >Helper controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#init-container-to-retrieve-node-topology"
 
 >Init container to retrieve Node topology&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Node Topology Manager</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/693/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/693/</guid><description>&lt;h1 id="kep-693-node-topology-manager">KEP-693: Node Topology Manager&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#main-idea-two-phase-topology-coherence-protocol"
 
 >Main idea: Two phase topology coherence protocol&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-component-topology-manager"
 
 >New Component: Topology Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-effective-resource-requestlimit-of-a-pod"
 
 >The Effective Resource Request/Limit of a Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scopes"
 
 >Scopes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#policies"
 
 >Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#computing-preferred-affinity"
 
 >Computing Preferred Affinity&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-fast-virtualized-network-functions"
 
 >Story 1: Fast virtualized network functions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-accelerated-neural-network-training"
 
 >Story 2: Accelerated neural network training&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#limitations"
 
 >Limitations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-interfaces"
 
 >New Interfaces&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-existing-components"
 
 >Changes to Existing Components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#noteworthy-developments-since-topology-manager-introduction"
 
 >Noteworthy developments since Topology Manager introduction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-numa-systems-tests"
 
 >Single NUMA Systems Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multi-numa-systems-tests"
 
 >Multi-NUMA Systems Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-tests"
 
 >Future Tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v116-completed"
 
 >Alpha (v1.16) [COMPLETED]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-v117-completed"
 
 >Alpha (v1.17) [COMPLETED]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v118-completed"
 
 >Beta (v1.18) [COMPLETED]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v120-completed"
 
 >Beta (v1.20) [COMPLETED]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-stable-completed"
 
 >GA (stable) [COMPLETED]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>NodeConformance and NodeFeature labels cleanup</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3041/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3041/</guid><description>&lt;h1 id="kep-3041-nodeconformance-nodefeature-and-feature-gate-labels-cleanup">KEP-3041: NodeConformance, NodeFeature, and Feature Gate labels cleanup&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#clarify-the-semantic-of-a-feature-label"
 
 >Clarify the semantic of a &lt;code>[Feature:]&lt;/code> label&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-label-clean-up"
 
 >Feature label clean up&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clean-up-labels-that-means-whether-special-environment-is-needed"
 
 >Clean up labels that means whether special environment is needed&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#nodespecialfeature"
 
 >NodeSpecialFeature&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodefeature"
 
 >NodeFeature&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#nodeconformance"
 
 >NodeConformance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#see-also"
 
 >See also&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notes"
 
 >Notes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-test-definitions"
 
 >Existing test definitions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>NodeLocal DNS Cache</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1024/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1024/</guid><description>&lt;h1 id="nodelocal-dns-cache">NodeLocal DNS Cache&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#daemonset-and-listen-interface-for-caching-agent"
 
 >Daemonset and Listen Interface for caching agent&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#iptables-notrack"
 
 >iptables NOTRACK&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#choice-of-caching-agent"
 
 >Choice of caching agent&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rollout-plan"
 
 >Rollout Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal aims to improve DNS performance by running a dns caching agent on cluster nodes as a Daemonset. In today&amp;rsquo;s architecture, pods in ClusterFirst DNS mode reach out to a kube-dns serviceIP for DNS queries. This is translated to a kube-dns endpoint via iptables rules added by kube-proxy. With this new architecture, pods will reach out to the dns caching agent running on the same node, thereby avoiding iptables DNAT rules and connection tracking. The local caching agent will query kube-dns for cache misses of cluster hostnames(cluster.local suffix by default).&lt;/p></description></item><item><title>Nominated node name for an expected pod placement</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5278/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5278/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5278-nominated-node-name-for-an-expected-pod-placement">KEP-5278: Nominated node name for an expected pod placement&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#external-components-need-to-know-where-the-pod-is-going-to-be-bound"
 
 >External components need to know where the pod is going to be bound&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#retain-the-scheduling-decision"
 
 >Retain the scheduling decision&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-prevent-inappropriate-scale-downs-by-cluster-autoscaler"
 
 >Story 1: Prevent inappropriate scale downs by Cluster Autoscaler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-scheduler-can-resume-its-work-after-restart"
 
 >Story 2: Scheduler can resume its work after restart&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#confusing-semantics-of-nominatednodename"
 
 >Confusing semantics of &lt;code>NominatedNodeName&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#external-components-may-set-nominatednodename"
 
 >External components may set &lt;code>NominatedNodeName&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-nominations-need-to-be-considered-together-with-reserving-dra-resources"
 
 >Node nominations need to be considered together with reserving DRA resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#increasing-the-load-to-kube-apiserver"
 
 >Increasing the load to kube-apiserver&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-scheduler-puts-nominatednodename"
 
 >The scheduler puts &lt;code>NominatedNodeName&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-schedulers-cache-for-nominatednodename"
 
 >The scheduler&amp;rsquo;s cache for &lt;code>NominatedNodeName&lt;/code>&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-scheduler-clears-nominatednodename-after-scheduling-failure"
 
 >The scheduler clears &lt;code>NominatedNodeName&lt;/code> after scheduling failure&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-apiserver-clears-nominatednodename-when-receiving-binding-requests"
 
 >Kube-apiserver clears &lt;code>NominatedNodeName&lt;/code> when receiving binding requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-resourceclaim-status-updates"
 
 >Handling ResourceClaim status updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introduce-a-new-field"
 
 >Introduce a new field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-nominatednodename-to-be-set-by-other-components"
 
 >Allow NominatedNodeName to be set by other components&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#motivation-external-components-want-to-specify-a-preferred-pod-placement"
 
 >Motivation: External components want to specify a preferred pod placement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals-1"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals-1"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations-1"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#confusion-if-nominatednodename-is-different-from-nodename-after-all"
 
 >Confusion if &lt;code>NominatedNodeName&lt;/code> is different from &lt;code>NodeName&lt;/code> after all&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#design-details-1"
 
 >Design Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan-integration-tests"
 
 >Test plan: Integration tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>non graceful shutdown</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2268/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2268/</guid><description>&lt;h1 id="kep-2268-non-graceful-node-shutdown">KEP-2268: Non graceful node shutdown&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#handle-the-return-of-shutdown-node"
 
 >Handle the Return of Shutdown Node&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#node-fencing"
 
 >Node fencing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#safedetach-option"
 
 >SafeDetach Option&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Notification Management Best Practices</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/notifications/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/notifications/</guid><description>&lt;p>The Kubernetes Mailing list or Google Groups functions as the primary means of
asynchronous communication for the project&amp;rsquo;s &lt;a href="https://github.com/kubernetes/community/blob/main/sig-list.md#master-sig-list"
 
 target="_blank" rel="noopener">Special Interest Groups (SIG)&lt;/a>
 and
&lt;a href="https://github.com/kubernetes/community/blob/main/sig-list.md#master-working-group-list"
 
 target="_blank" rel="noopener">Working Groups (WG)&lt;/a>
. That&amp;rsquo;s why you may want to set your filters in
your email account to attain a good signal-to-noise ratio with regards to the
mailing list messages and GitHub notifications. All the steps below are for Gmail
users, however similar filters can be made in other email clients.&lt;/p></description></item><item><title>Object Storage Support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1979/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1979/</guid><description>&lt;h1 id="kep-1979-object-storage-support">KEP-1979: Object Storage Support&lt;/h1>
&lt;!-- update with hack/update-toc.sh >
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#functionality"
 
 >Functionality&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#system-properties"
 
 >System Properties&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-personas"
 
 >User Personas&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#important-changes-between-versions"
 
 >Important changes between versions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v1alpha1-to-v1alpha2"
 
 >v1alpha1 to v1alpha2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cosi-architecture"
 
 >COSI Architecture&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cosi-api-overview"
 
 >COSI API Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cosi-object-lifecycle"
 
 >COSI Object Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#usability"
 
 >Usability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-self-service"
 
 >User Self-Service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutating-buckets"
 
 >Mutating Buckets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sharing-buckets-across-namespaces"
 
 >Sharing Buckets across Namespaces&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#controller-overview"
 
 >Controller overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#control-flows"
 
 >Control Flows&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#installing-the-cosi-system"
 
 >Installing the COSI System&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#creating-a-bucket"
 
 >Creating a Bucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#accessing-an-existing-osp-bucket"
 
 >Accessing an Existing OSP Bucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deleting-a-bucket"
 
 >Deleting a Bucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generating-bucket-access-credentials"
 
 >Generating Bucket Access Credentials&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deleting-a-bucketaccess"
 
 >Deleting a BucketAccess&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#attaching-bucket-information-to-pods"
 
 >Attaching Bucket Information to Pods&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cosi-api-reference"
 
 >COSI API Reference&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#annotations-and-finalizers"
 
 >Annotations and finalizers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conditions"
 
 >Conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucket"
 
 >Bucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketclaim"
 
 >BucketClaim&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketclass"
 
 >BucketClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketaccess"
 
 >BucketAccess&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketaccessclass"
 
 >BucketAccessClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketaccess-secret-data"
 
 >BucketAccess Secret data&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#s3"
 
 >S3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#azure"
 
 >Azure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gcs-google-cloud-storage"
 
 >GCS (Google Cloud Storage)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cosi-driver"
 
 >COSI Driver&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cosi-driver-grpc-api"
 
 >COSI Driver gRPC API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#drivergetinfo"
 
 >DriverGetInfo&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drivergeneratebucketid"
 
 >DriverGenerateBucketId&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drivercreatebucket"
 
 >DriverCreateBucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drivergetbucket"
 
 >DriverGetBucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#driverdeletebucket"
 
 >DriverDeleteBucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drivergeneratebucketaccessid"
 
 >DriverGenerateBucketAccessId&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drivergrantbucketaccess"
 
 >DriverGrantBucketAccess&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#driverrevokebucketaccess"
 
 >DriverRevokeBucketAccess&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#automatically-mount-buckets-to-pods"
 
 >Automatically mount buckets to Pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#encode-bucketaccess-connection-information-in-a-json-blob"
 
 >Encode BucketAccess connection information in a JSON blob&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cross-resource-protection-finalizers"
 
 >Cross-resource protection finalizers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucket-creation-annotation"
 
 >Bucket creation annotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketclass-field-on-bucket-resource"
 
 >BucketClass field on Bucket resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#updating-bucketaccess-secrets"
 
 >Updating BucketAccess Secrets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketaccess-static-provisioning"
 
 >BucketAccess static provisioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bucketaccess-readwrite-accessmode"
 
 >BucketAccess Read/Write AccessMode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multi-bucket-bucketaccess-considerations"
 
 >Multi-bucket BucketAccess considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-consumption-considerations"
 
 >User consumption considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-systems-that-cannot-support-multi-bucket-bucketaccesses"
 
 >Handling systems that cannot support multi-bucket BucketAccesses&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>OCI images as VolumeSource</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4639/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4639/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4639-oci-volumesource">KEP-4639: OCI VolumeSource&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#vocabulary-oci-images-artifacts-and-objects"
 
 >Vocabulary: OCI Images, Artifacts, and Objects&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api"
 
 >Kubernetes API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-and-container-runtime-interface-cri-support-for-oci-artifacts"
 
 >Kubelet and Container Runtime Interface (CRI) support for OCI artifacts&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet"
 
 >kubelet&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pull-policy"
 
 >Pull Policy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#registry-authentication"
 
 >Registry authentication&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cri"
 
 >CRI&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtimes"
 
 >Container Runtimes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#filesystem-representation"
 
 >Filesystem representation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#selinux"
 
 >SELinux&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#no-enhancement"
 
 >No enhancement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kep-1495-volume-populators"
 
 >&lt;a href="https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1495-volume-populators">KEP 1495: Volume Populators&lt;/a>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-csi-plugin"
 
 >Custom CSI Plugin&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#advantages-of-in-tree-oci-volumesource"
 
 >Advantages of In-Tree OCI VolumeSource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conclusion"
 
 >Conclusion&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Online Growing Persistent Volume Size</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/531/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/531/</guid><description>&lt;h1 id="online-growing-persistent-volume-size">Online Growing Persistent Volume Size&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notes"
 
 >Notes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-to-beta"
 
 >Alpha to Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga"
 
 >Beta to GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This feature enables users to expand a volume&amp;rsquo;s file system by editing a PVC without having to restart a pod using the PVC.&lt;/p></description></item><item><title>Only allow anonymous auth for configured endpoints</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4633/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4633/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4633-only-allow-anonymous-auth-for-configured-endpoints">KEP-4633: Only allow anonymous auth for configured endpoints&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possible-future-improvements"
 
 >Possible Future Improvements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>OpenAPI Enum Types</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2887/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2887/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [X] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [X] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [X] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [X] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [X] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [X] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2887-openapi-enum-types">KEP-2887: OpenAPI Enum Types&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enum-pattern"
 
 >Enum Pattern&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enum-tag"
 
 >Enum Tag&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#openapi-v2-breakage"
 
 >OpenAPI v2 Breakage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enum-fields-pruning-for-feature-disablement"
 
 >Enum Fields Pruning for Feature Disablement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#do-not-break-existing-clients"
 
 >Do Not Break Existing Clients&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>OpenAPI Features in Kustomize</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2206/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2206/</guid><description>&lt;h1 id="kep-2206-openapi-features-in-kustomize">KEP-2206: OpenAPI Features in Kustomize&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-story"
 
 >User Story&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>OpenAPI V3</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2896/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2896/</guid><description>&lt;!-- **Note:** When your KEP is complete, all of these comment blocks should be
removed.

To get started with this template:

- [ ] **Pick a hosting SIG.** Make sure that the problem space is something the
 SIG is interested in taking up. KEPs should not be checked in without a
 sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements** When filing an enhancement
 tracking issue, please make sure to complete all fields in that template. One
 of the fields asks for a link to the KEP. You can leave that blank until this
 KEP is filed, and then go back to the enhancement and add the link.
- [ ] **Make a copy of this template directory.** Copy this template into the
 owning SIG's directory and name it `NNNN-short-descriptive-title`, where
 `NNNN` is the issue number (with no leading-zero padding) assigned to your
 enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.** At minimum, you
 should fill in the "Title", "Authors", "Owning-sig", "Status", and
 date-related fields.
- [ ] **Fill out this file as best you can.** At minimum, you should fill in the
 "Summary" and "Motivation" sections. These should be easy if you've
 preflighted the idea of the KEP with the appropriate SIG(s).
- [ ] **Create a PR for this KEP.** Assign it to people in the SIG who are
 sponsoring this process.
- [ ] **Merge early and iterate.** Avoid getting hung up on specific details and
 instead aim to get the goals of the KEP clarified and merged quickly. The best
 way to do this is to just start with the high-level sections and fill out
 details incrementally in subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

``` &lt;&lt;[UNRESOLVED optional short context or usernames ]>> Stuff that is being
argued. &lt;&lt;[/UNRESOLVED]>> ```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR with
suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If new details
emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source of
this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers. If
none of those approvers are still appropriate, then changes to that list should
be approved by the remaining approvers and/or the owning SIG (or SIG
Architecture for cross-cutting KEPs). -->
&lt;h1 id="kep-2896-openapi-v3">KEP-2896: OpenAPI V3&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#transparency-in-the-openapi"
 
 >Transparency in the OpenAPI&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#openapi-v2-plan"
 
 >OpenAPI V2 plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#paths"
 
 >Paths&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controllers"
 
 >Controllers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#openapi-builder"
 
 >OpenAPI Builder&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proto-models--etags"
 
 >Proto Models &amp;amp; ETags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aggregator"
 
 >Aggregator&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#openapi"
 
 >OpenAPI&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew"
 
 >Version Skew&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#openapi-v3-proto"
 
 >OpenAPI V3 Proto&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clients"
 
 >Clients&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone /
release&lt;/em>.&lt;/p></description></item><item><title>Opportunistic batching</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5598/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5598/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5598-opportunistic-batching">KEP-5598: Opportunistic batching&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-scheduling-signature"
 
 >Pod scheduling signature&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#batching-mechanism"
 
 >Batching mechanism&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#getnodehint"
 
 >GetNodeHint&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storescheduleresults"
 
 >StoreScheduleResults&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-scheduling-cycle"
 
 >Integration with Scheduling Cycle&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rescoring"
 
 >Rescoring&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rescoring-the-last-chosen-node"
 
 >Rescoring the Last Chosen Node&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#normalizescore-on-a-subset"
 
 >NormalizeScore on a Subset&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#plugins-need-to-keep-signatures-up-to-date"
 
 >Plugins need to keep signatures up to date&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limited-workload-coverage"
 
 >Limited workload coverage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#no-prior-production-history"
 
 >No prior production history&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cached-nodes-are-not-re-filtered-each-cycle"
 
 >Cached nodes are not re-filtered each cycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rescore-mixes-scores-from-different-cluster-states"
 
 >Rescore mixes scores from different cluster states&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-overhead-from-raw-score-caching"
 
 >Memory overhead from raw score caching&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-signature"
 
 >Pod signature&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#comparison-with-equivalence-cache-circa-2018"
 
 >Comparison with Equivalence Cache (circa 2018)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-rescore-extension-point"
 
 >New Rescore Extension Point&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Optionally Disable Node Ports for Service Type=LoadBalancer</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1864/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1864/</guid><description>&lt;h1 id="kep-1864-optionally-disable-node-ports-for-service-typeloadbalancer">KEP-1864: Optionally Disable Node Ports for Service Type=LoadBalancer&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#apiserver-flag"
 
 >APIServer Flag&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#service-typeloadbalancerwithoutnodeports"
 
 >Service Type=LoadBalancerWithoutNodePorts&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Today, a Kubernetes Service Type=LoadBalancer will always allocate a node port for every service port. Though most implementations of Service Type=LoadBalancer do require node ports, there are several implementations that do not. This KEP proposes to add a new field to Service to opt out of node port allocation for loadbalancers.&lt;/p></description></item><item><title>Ordered Namespace Deletion</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5080/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5080/</guid><description>&lt;h1 id="kep-5080-ordered-namespace-deletion">KEP-5080: Ordered Namespace Deletion&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate-handling"
 
 >Feature Gate handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1---pod-vs-networkpolicy"
 
 >Story 1 - Pod VS NetworkPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2---having-finalizer-conflicts-with-deletion-order"
 
 >Story 2 - having finalizer conflicts with deletion order&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3---having-policy-set-up-with-parameter-resources"
 
 >Story 3 - having policy set up with parameter resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#having-ownerreference-conflicts-with-deletion-order"
 
 >Having ownerReference conflicts with deletion order&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dependency-cycle"
 
 >Dependency cycle&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deletionorderpriority-mechanism"
 
 >DeletionOrderPriority Mechanism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-cyclic-dependencies"
 
 >Handling Cyclic Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#using-finalizers-to-define-the-deletion-ordering"
 
 >Using finalizers to define the deletion ordering&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>OwnerReference Resource Field</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2336/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2336/</guid><description>&lt;h1 id="ownerreference-resource-field">OwnerReference Resource Field&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#behavior-of-new-clusters"
 
 >Behavior of new clusters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#behavior-of-old-clusters"
 
 >Behavior of old clusters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#behavior-with-old-clients"
 
 >Behavior with old clients&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives considered&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>OwnerReferences are used to track garbage collection references. Today they use &lt;code>kind&lt;/code>. This is a serialization format
not a URL to access on the kube-apiserver. To find a URL, a series of upwards of 20 discovery calls are made to find
every resource in the cluster to find a list of potential resources (URLs more or less). This approximates user intent
and mostly works, but it is inefficient and unnecessarily vulnerable to network outages.&lt;/p></description></item><item><title>Paginated API Lists</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/365/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/365/</guid><description>&lt;h1 id="kep-365-paginated-api-lists">KEP-365: Paginated API Lists&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>pdb-support-for-custom-resources-with-scale-subresource</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/981/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/981/</guid><description>&lt;h1 id="pdb-support-for-custom-resources-with-scale-subresource">PDB support for custom resources with scale subresource&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;a href="https://kubernetes.io/docs/tasks/run-application/configure-pdb/"
 
 target="_blank" rel="noopener">Pod Disruption Budget (PDB)&lt;/a>

is a Kubernetes API that limits the number of pods of a collection that are down simultaneously from voluntary disruptions. PDBs allows a user to specify the allowed disruption through either min available or max unavailable number of pods. In order to support PDBs where max number of unavailable pods is set, the PDB controller needs to be able to look up the desired number of replicas. It does this by looking at the controller(s) (as specified by the owner ref) for the pods covered by the PDB. Currently only four of the basic workload controllers are supported for PDBs, namely Deployment, StatefulSet, ReplicaSet and ReplicationController.&lt;/p></description></item><item><title>Per-container ulimits configuration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5758/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5758/</guid><description>&lt;h1 id="kep-5758-per-container-ulimits-configuration">KEP-5758: Per-container ulimits configuration&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-optional"
 
 >Story 1 (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-optional"
 
 >Story 2 (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Per-plugin callback functions for efficient requeueing in the scheduling queue</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4247/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4247/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4247-per-plugin-callback-functions-for-efficient-requeueing-in-the-scheduling-queue">KEP-4247: Per-plugin callback functions for efficient requeueing in the scheduling queue&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mistake-in-the-implementation-could-result-in-pods-being-stuck-in-the-unschedulable-pod-pool-in-a-long-time-unnecessarily"
 
 >mistake in the implementation could result in Pods being stuck in the unschedulable Pod pool in a long time unnecessarily.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-increase-in-the-memory-usage"
 
 >the increase in the memory usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#breaking-change-in-eventstoregister-in-enqueueextension"
 
 >Breaking change in &lt;code>EventsToRegister&lt;/code> in &lt;code>EnqueueExtension&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-to-skipnot-skip-backoff"
 
 >When to skip/not skip backoff&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-queueinghint-is-executed-in-the-scheduling-queue"
 
 >How QueueingHint is executed in the scheduling queue&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-rejected-by-one-or-more-plugins"
 
 >Pod rejected by one or more plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-rejected-by-pending-status"
 
 >Pod rejected by &lt;code>Pending&lt;/code> status&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#track-pods-being-processed-in-the-scheduling-queue"
 
 >Track Pods being processed in the scheduling queue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#return-queueimmediately-queueafterbackoff-and-queueskip-from-queueinghintfn-instead-of-introducing-new-status-pending"
 
 >Return &lt;code>QueueImmediately&lt;/code>, &lt;code>QueueAfterBackoff&lt;/code>, and &lt;code>QueueSkip&lt;/code> from &lt;code>QueueingHintFn&lt;/code> instead of introducing new status &lt;code>Pending&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implement-blocked-status-to-block-a-next-scheduling-retry-until-the-plugin-returns-queue"
 
 >Implement &lt;code>Blocked&lt;/code> status to block a next scheduling retry until the plugin returns &lt;code>Queue&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Per-Pod PID Limit</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6063/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6063/</guid><description>&lt;h1 id="kep-6063-per-pod-pid-limit">KEP-6063: Per-Pod PID Limit&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#valid-values"
 
 >Valid Values&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-validation"
 
 >API Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-implementation"
 
 >Kubelet Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-security-admission-psa"
 
 >Pod Security Admission (PSA)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-manager-interaction"
 
 >Eviction Manager Interaction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-declared-features-integration"
 
 >Node Declared Features Integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-target-137"
 
 >Alpha (target 1.37)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-target-138"
 
 >Beta (target 1.38)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-target-140"
 
 >GA (target 1.40)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>PersistentVolume last phase transition time</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3762/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3762/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3762-persistentvolume-last-phase-transition-time">KEP-3762: PersistentVolume last phase transition time&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pid Limiting</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/757/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/757/</guid><description>&lt;h1 id="pid-limiting">Pid Limiting&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-to-pod-isolation"
 
 >Pod to Pod Isolation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-to-pod-isolation"
 
 >Node to Pod Isolation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cgroup-enforcement"
 
 >Cgroup Enforcement&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-to-pod-pid-isolation"
 
 >Pod to Pod pid isolation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-to-pod-pid-isolation"
 
 >Node to Pod pid isolation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-110"
 
 >Version 1.10&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-114"
 
 >Version 1.14&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-115"
 
 >Version 1.15&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-120"
 
 >Version 1.20&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>A proposal to enable isolation of pid resources. It proposes a mechanism to
enable pod-to-pod PID isolation as well as node-to-pod PID isolation.&lt;/p></description></item><item><title>Placement Decision API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5313/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5313/</guid><description>&lt;h1 id="kep-5313-placementdecision-api">KEP-5313: PlacementDecision API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#why-define-placementdecision-before-a-standardized-placement-api"
 
 >Why define PlacementDecision before a standardized Placement API?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-gpu-aware-ai-training"
 
 >Story 1: GPU-aware AI training&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-progressive-rollout"
 
 >Story 2: Progressive rollout&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-disaster-recovery"
 
 >Story 3: Disaster recovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-self-produce-and-self-consume-argo-cd"
 
 >Story 4: Self produce and self consume (Argo CD)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-multiple-consumers-fan-out"
 
 >Story 5: Multiple consumers fan-out&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#additional-benefits-placement-delegation-and-modular-architecture"
 
 >Additional Benefits: Placement Delegation and Modular Architecture&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#terminology"
 
 >Terminology&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-specification"
 
 >API Specification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-definition"
 
 >API Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-example"
 
 >API Example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#consumer-discovery-and-usage"
 
 >Consumer Discovery and Usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#slicing"
 
 >Slicing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lifecycle"
 
 >Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ownership"
 
 >Ownership&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-to-other-sig-multicluster-sig-mc-apis"
 
 >Relationship to other SIG-Multicluster (SIG-MC) APIs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consumer-feedback"
 
 >Consumer Feedback&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Certificates</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4317/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4317/</guid><description>&lt;h1 id="kep-4317-pod-certificates">KEP-4317: Pod Certificates&lt;/h1>
&lt;!-- generate with `hack/update-toc.sh`. -->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary-and-motivation"
 
 >Summary and Motivation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podcertificaterequest-resource"
 
 >PodCertificateRequest Resource&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-a-new-type"
 
 >Why a New Type?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-definition"
 
 >API Definition&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#podcertificate-projected-volume-sources"
 
 >PodCertificate Projected Volume Sources&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#issuance-flow"
 
 >Issuance Flow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-object-diff"
 
 >API Object Diff&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-certificate-bundle-written-to-the-pod-filesystem"
 
 >Example certificate bundle written to the pod filesystem&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-and-api-versioning-impact"
 
 >Version Skew and API Versioning Impact&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-kubelet-upgrade-from-135-to-136-field-migration"
 
 >1. Kubelet Upgrade from 1.35 to 1.36 (Field Migration)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-kubelet-upgrade-from-136-to-137-api-version-transition"
 
 >2. Kubelet Upgrade from 1.36 to 1.37 (API Version Transition)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-skewed-kubelet-135-with-upgraded-signer-137"
 
 >3. Skewed Kubelet (1.35) with Upgraded Signer (1.37)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-kubelet-and-signer-both-use-v1--137"
 
 >4. Kubelet and Signer both use v1 (&amp;gt;= 1.37)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Generation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5067/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5067/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

* [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
* [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
* [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
`NNNN-short-descriptive-title` , where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
* [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig", 
 "Status", and date-related fields.
* [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
* [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
* [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable` , or significant changes once
it is marked `implementable` , must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5067-pod-generation">KEP-5067: Pod Generation&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt; !-- toc --&amp;rt; &amp;lt; !-- /toc --&amp;rt; &lt;/code>
tags, and then generate with `hack/update-toc.sh` .
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-behavior"
 
 >Current behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#generation"
 
 >Generation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#observedgeneration"
 
 >ObservedGeneration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#custom-set-metadatageneration"
 
 >Custom-set &lt;code>metadata.generation&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infinite-loop-caused-by-misbehaving-mutating-webhooks"
 
 >Infinite loop caused by misbehaving mutating webhooks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-server-and-generation"
 
 >API server and generation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#client-requests-to-update-generation"
 
 >Client requests to update generation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet-and-observedgeneration"
 
 >Kubelet and observedGeneration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mutable-fields-analysis"
 
 >Mutable Fields Analysis&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#other-writers-of-pod-status"
 
 >Other writers of pod status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-requests-to-update-observedgeneration"
 
 >Client requests to update observedGeneration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mirror-pods"
 
 >Mirror pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-enhancements"
 
 >Future enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Healthy Policy for PDB</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3017/</guid><description>&lt;h1 id="kep-3017-unhealthy-pod-eviction-policy-for-pdbs">KEP-3017: Unhealthy Pod Eviction Policy for PDBs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-the-eviction-api"
 
 >Changes to the eviction API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#abandoned-alternative-implementation"
 
 >Abandoned Alternative Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-the-disruption-controller"
 
 >Changes to the disruption controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-the-definition-of-healthy-in-a-pdb-according-to-the-policy-used"
 
 >Changes to the definition of healthy in a PDB according to the policy used.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Index Label</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4017/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4017/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4017-pod-index-label-for-statefulsets-and-indexed-jobs">KEP-4017: Pod Index Label for StatefulSets and Indexed Jobs&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-pod-index-as-annotation"
 
 >Add pod index as annotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-pod-index-as-both-label-and-annotation"
 
 >Add pod index as both label and annotation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Level Resource Specifications</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2837/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2837/</guid><description>&lt;h1 id="kep-2837-pod-level-resource-specifications">KEP-2837: Pod Level Resource Specifications&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#simplified-resource-management"
 
 >Simplified Resource Management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#better-resource-utilization"
 
 >Better Resource Utilization&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#design-principles"
 
 >Design Principles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#componentsfeatures-changes"
 
 >Components/Features changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cgroup-structure-remains-unchanged"
 
 >Cgroup Structure Remains unchanged&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podspec-api-changes"
 
 >PodSpec API changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podspec-validation-rules"
 
 >PodSpec Validation Rules&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-validation--defaulting-rules"
 
 >Proposed Validation &amp;amp; Defaulting Rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comprehensive-tabular-view"
 
 >Comprehensive Tabular View&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clarifying-tricky-cases-and-design-decisions-with-pod-level-resources"
 
 >Clarifying Tricky Cases and Design Decisions with Pod Level Resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduler-changes"
 
 >Scheduler Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#qos-changes"
 
 >QoS Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#oom-killer-behavior"
 
 >OOM Killer Behavior&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#oom-score-adjustment"
 
 >OOM Score Adjustment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#system-out-of-memory-oom-kill"
 
 >System Out-of-Memory (OOM) Kill&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cgroup-out-of-memory-oom-kill"
 
 >cgroup Out-of-Memory (OOM) Kill&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#init-containers--sidecar-containers"
 
 >Init Containers &amp;amp; Sidecar Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ephemeral-containers"
 
 >Ephemeral Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admission-controller"
 
 >Admission Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#eviction-manager"
 
 >Eviction Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-overhead"
 
 >Pod Overhead&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hugepages"
 
 >Hugepages&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scoped-for-beta-in-136-fix-for-pod-level-limits-default-logic-issue-136120"
 
 >[Scoped for Beta in 1.36] Fix for pod-level limits default Logic (Issue 136120)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scoped-for-beta-in-136-fix-for-kubelet-qos-class-determination-issue-135082"
 
 >[Scoped for Beta in 1.36] Fix for Kubelet QoS Class Determination (Issue 135082)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scoped-for-beta-cluster-autoscaler"
 
 >[Scoped for Beta] Cluster Autoscaler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scoped-for-beta-hpa"
 
 >[Scoped for Beta] HPA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cluster-autoscaler"
 
 >Cluster Autoscaler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#vpa"
 
 >VPA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#instrumentation"
 
 >Instrumentation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-adoption"
 
 >Feature Adoption&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet_pod_level_resources_admission_total"
 
 >&lt;code>kubelet_pod_level_resources_admission_total&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#the-kubelet-execution-phase"
 
 >The Kubelet (Execution Phase)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet_oom_kills_total"
 
 >&lt;code>kubelet_oom_kills_total&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet_cpu_cfs_throttled_seconds_total"
 
 >&lt;code>kubelet_cpu_cfs_throttled_seconds_total&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kube-state-metrics-ksm"
 
 >Kube-State-Metrics (KSM)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kube_pod_level_resource_spec"
 
 >&lt;code>kube_pod_level_resource_spec&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#regression-monitoring-existing-metrics"
 
 >Regression Monitoring (Existing Metrics)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-alpha-target-132"
 
 >Phase 1: Alpha (target 1.32)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2--beta-target-134"
 
 >Phase 2: Beta (target 1.34)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-stable"
 
 >GA (stable)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#vpa-1"
 
 >VPA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future-kep-consideration-in-135-support-for-windows"
 
 >[Future KEP Consideration in 1.35] Support for Windows&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-kep-consideration-in-135-memory-manager"
 
 >[Future KEP Consideration in 1.35] Memory Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-kep-consideration-in-135-cpu-manager"
 
 >[Future KEP Consideration in 1.35] CPU Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-kep-consideration-in-135-topology-manager"
 
 >[Future KEP Consideration in 1.35] Topology Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-kep-consideration-in-collaboration-with-sig-autoscaling-vpa"
 
 >[Future KEP Consideration in collaboration with sig-autoscaling] VPA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scoped-for-ga-user-experience-survey"
 
 >[Scoped for GA] User Experience Survey&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod lifecycle sleep action</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3960/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3960/</guid><description>&lt;h1 id="kep-3960-introducing-sleep-action-for-prestop-hook">KEP-3960: Introducing Sleep Action for PreStop Hook&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Mutable Scheduling Directives</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3838/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3838/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3838-pod-mutable-scheduling-directives">KEP-3838: Pod Mutable Scheduling Directives&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-webhooks-to-inject-affinities"
 
 >Use webhooks to inject affinities&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod networking ready condition</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3085/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3085/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3085-pod-conditions-for-starting-and-completion-of-sandbox-creation">KEP-3085: Pod Conditions for Starting and Completion of Sandbox Creation&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-for-consuming-podreadytostartcontainers-condition"
 
 >User Stories For Consuming PodReadyToStartContainers Condition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-consuming-podreadytostartcontainers-condition-per-pod-in-a-monitoring-service"
 
 >Story 1: Consuming PodReadyToStartContainers Condition Per Pod In A Monitoring Service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-consuming-podreadytostartcontainers-condition-in-a-controller"
 
 >Story 2: Consuming PodReadyToStartContainers Condition In A Controller&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#podreadytostartcontainers-condition-fields-in-different-user-scenarios"
 
 >PodReadyToStartContainers Condition Fields In Different User Scenarios&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scenario-1-stateless-pod-scheduled-on-a-healthy-node-and-cluster"
 
 >Scenario 1: Stateless pod scheduled on a healthy node and cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-2-pods-with-startup-delays-due-to-problems-with-csi-cni-or-runtime-handler-plugins"
 
 >Scenario 2: Pods with startup delays due to problems with CSI, CNI or Runtime Handler plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-pod-unable-to-start-due-to-problems-with-csi-cni-or-runtime-handler-plugins"
 
 >Story 3: Pod unable to start due to problems with CSI, CNI or Runtime Handler plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-pod-sandbox-restart-after-a-successful-initial-startup-and-crash"
 
 >Story 4: Pod Sandbox restart after a successful initial startup and crash&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-graceful-pod-sandbox-termination"
 
 >Story 5: Graceful pod sandbox termination&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-6-volume-mounting-issues"
 
 >Story 6: Volume mounting issues&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#determining-status-of-sandbox-creation-for-a-pod"
 
 >Determining status of sandbox creation for a pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podreadytostartcontainers-condition-details"
 
 >PodReadyToStartContainers condition details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enhancements-in-kubelet-status-manager"
 
 >Enhancements in Kubelet Status Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unavailability-of-api-server-or-etcd-along-with-kubelet-restart"
 
 >Unavailability of API Server or etcd along with Kubelet Restart&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dedicated-fields-or-annotations-for-the-pod-sandbox-creation-timestamps"
 
 >Dedicated fields or annotations for the pod sandbox creation timestamps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#surface-pod-sandbox-creation-latency-instead-of-timestamps"
 
 >Surface pod sandbox creation latency instead of timestamps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#report-sandbox-creation-latency-as-an-aggregated-metric"
 
 >Report sandbox creation latency as an aggregated metric&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#report-sandbox-creation-stages-using-kubelet-tracing"
 
 >Report sandbox creation stages using Kubelet tracing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#have-csicnicri-plugins-mark-their-start-and-completion-timestamps-while-setting-up-their-respective-portions-for-a-pod"
 
 >Have CSI/CNI/CRI plugins mark their start and completion timestamps while setting up their respective portions for a pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-a-dedicated-service-between-kubelet-and-cri-runtime-to-mark-sandbox-ready-condition-on-a-pod"
 
 >Use a dedicated service between Kubelet and CRI runtime to mark sandbox ready condition on a pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#have-kubelet-mark-sandbox-ready-condition-on-a-pod-using-extended-conditions"
 
 >Have Kubelet mark sandbox ready condition on a pod using extended conditions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Overhead</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/688/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/688/</guid><description>&lt;h1 id="pod-overhead">Pod Overhead&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-design"
 
 >API Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-overhead"
 
 >Pod overhead&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-interface-cri"
 
 >Container Runtime Interface (CRI)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resourcequota-changes"
 
 >ResourceQuota changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-changes"
 
 >RuntimeClass changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-admission-controller"
 
 >RuntimeClass admission controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#introduce-pod-level-resource-requirements"
 
 >Introduce pod level resource requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#leaving-the-podspec-unchanged"
 
 >Leaving the PodSpec unchanged&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-116"
 
 >Version 1.16&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-118"
 
 >Version 1.18&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-124"
 
 >Version 1.24&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://github.com/kubernetes/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Note:&lt;/strong> Any PRs to move a KEP to &lt;code>implementable&lt;/code> or significant changes once it is marked &lt;code>implementable&lt;/code> should be approved by each of the KEP approvers. If any of those
approvers is no longer appropriate than changes to that list should be approved by the remaining approvers and/or the owning SIG (or SIG-arch for cross cutting KEPs).&lt;/p></description></item><item><title>Pod Priority Based Graceful Node Shutdown</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2712/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2712/</guid><description>&lt;h1 id="kep-2712-pod-priority-based-graceful-node-shutdown">KEP-2712: Pod Priority Based Graceful Node Shutdown&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#migration-from-the-node-graceful-shutdown-feature"
 
 >Migration from the Node graceful shutdown feature&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-graduation"
 
 >Alpha Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Ready++</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/580/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/580/</guid><description>&lt;h1 id="pod-ready">Pod Ready++&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podspec"
 
 >PodSpec&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#constraints"
 
 >Constraints:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-readiness"
 
 >Pod Readiness&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-pod-condition"
 
 >Custom Pod Condition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workloads"
 
 >Workloads&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet"
 
 >Kubelet&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#feature-integration"
 
 >Feature Integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

- &lt;a href="#why-not-fix-the-workloads"
 
 >Why not fix the workloads?&lt;/a>

- &lt;a href="#why-not-extend-container-readiness"
 
 >Why not extend container readiness?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This proposal aims to add extensibility to pod readiness. Besides container readiness, external feedback can be injected into PodStatus and influence pod readiness. Thus, achieving pod “ready++”.&lt;/p></description></item><item><title>Pod Scheduling Readiness</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3521/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3521/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3521-pod-scheduling-readiness">KEP-3521: Pod Scheduling Readiness&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod Topology Spread</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/895/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/895/</guid><description>&lt;h1 id="kep-895-pod-topology-spread">KEP-895: Pod Topology Spread&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#terms"
 
 >Terms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#option-1"
 
 >Option 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-2-preferred"
 
 >Option 2 (preferred)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#maxskew"
 
 >MaxSkew&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-user-stories-are-addressed"
 
 >How User Stories are Addressed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proscons"
 
 >Pros/Cons&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impact-to-other-features"
 
 >Impact to Other Features&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="terms">Terms&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Topology:&lt;/strong> describe a series of worker nodes which belongs to the same
region/zone/rack/hostname/etc. In terms of Kubernetes, they&amp;rsquo;re defined and
grouped by node labels.&lt;/li>
&lt;li>&lt;strong>Affinity&lt;/strong>: if not specified particularly, &amp;ldquo;Affinity&amp;rdquo; refers to
&lt;code>NodeAffinity&lt;/code>, &lt;code>PodAffinity&lt;/code> and &lt;code>PodAntiAffinity&lt;/code>.&lt;/li>
&lt;li>&lt;strong>CA&lt;/strong>: Cluster Autoscaler.
&lt;a href="https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler"
 
 target="_blank" rel="noopener">CA&lt;/a>

is a tool that automatically adjusts the size of the Kubernetes cluster upon
specific conditions.&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The &lt;code>PodTopologySpread&lt;/code> feature gives users more fine-grained control on
distribution of pods scheduling, so as to achieve better high availability and
resource utilization.&lt;/p></description></item><item><title>Pod-level Checkpoint/Restore</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5823/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5823/</guid><description>&lt;h1 id="kep-5823-pod-level-checkpointrestore">KEP-5823: Pod-Level Checkpoint/Restore&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#accelerating-startup-of-applications-with-long-initialization-times"
 
 >Accelerating startup of applications with long initialization times&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enabling-fault-tolerance-for-long-running-workloads"
 
 >Enabling fault-tolerance for long-running workloads&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-migration-across-nodes-for-load-balancing-and-maintenance"
 
 >Pod migration across nodes for load balancing and maintenance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-warm-starting-a-slow-initializing-service"
 
 >Story 1: Warm-starting a slow-initializing service&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-surviving-failures-in-long-running-workloads"
 
 >Story 2: Surviving failures in long-running workloads&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-preserving-state-across-node-maintenance"
 
 >Story 3: Preserving state across node maintenance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-api-extensions"
 
 >CRI API Extensions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#checkpointpod"
 
 >CheckpointPod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restorepod"
 
 >RestorePod&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet-checkpoint-and-restore-handling"
 
 >Kubelet Checkpoint and Restore Handling&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#checkpoint-handling"
 
 >Checkpoint Handling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#podcheckpoint-objects"
 
 >PodCheckpoint Objects&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podcheckpoint"
 
 >PodCheckpoint&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-snapshot-controller"
 
 >Pod-Snapshot-Controller&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#asynchronous-checkpoint-flow"
 
 >Asynchronous checkpoint flow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability-follow-up-post-alpha-node-scoped-watch"
 
 >Scalability follow-up (post-alpha): node-scoped watch&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#restore-mechanism"
 
 >Restore Mechanism&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#end-to-end-restore-walkthrough"
 
 >End-to-end restore walkthrough&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#post-checkpoint-state-semantics"
 
 >Post-Checkpoint State Semantics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#checkpoint-content"
 
 >Checkpoint Content&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-specification-and-metadata"
 
 >Pod Specification and Metadata&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-state"
 
 >Container Runtime State&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#shared-pod-resources"
 
 >Shared Pod Resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#checkpoint-storage-location"
 
 >Checkpoint Storage Location&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-lifecycle"
 
 >Pod Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tcp-connection-handling"
 
 >TCP Connection Handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security-implications"
 
 >Security Implications&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#privilege-model"
 
 >Privilege model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sensitive-memory-contents"
 
 >Sensitive memory contents&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#denial-of-service-via-excessive-checkpointing"
 
 >Denial of service via excessive checkpointing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automountserviceaccounttoken-on-restore"
 
 >automountServiceAccountToken on restore&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#path-traversal-protection"
 
 >Path traversal protection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-and-spec-separation"
 
 >Status and spec separation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#open-questions"
 
 >Open Questions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rejected-approaches"
 
 >Rejected Approaches&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes, i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Pod-Level Resource Managers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5526/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5526/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [X] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [X] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [X] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [X] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [X] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [X] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [X] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5526-pod-level-resource-managers">KEP-5526: Pod Level Resource Managers&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- mdformat off() -->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#glossary"
 
 >Glossary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-aiml-workload-with-data-ingestion-sidecar"
 
 >Story 1: AI/ML Workload with Data-Ingestion Sidecar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-workload-with-a-device-specific-infrastructure-container"
 
 >Story 2: Workload with a Device-Specific Infrastructure Container&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#topology-manager"
 
 >Topology Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policies"
 
 >Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#policy-options"
 
 >Policy Options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scopes"
 
 >Scopes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-scope"
 
 >Pod Scope&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-scope"
 
 >Container Scope&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-scope-allocation-and-partitioning-algorithm-for-cpu-and-memory-managers"
 
 >Pod Scope Allocation and Partitioning Algorithm for CPU and Memory managers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cpu-manager"
 
 >CPU Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policies-1"
 
 >Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#policy-options-1"
 
 >Policy Options&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-scope-allocation-and-partitioning-algorithm"
 
 >Pod Scope Allocation and Partitioning Algorithm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#state-management-and-container-removal"
 
 >State Management and Container Removal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#compatibility-with-generalized-v4-state"
 
 >Compatibility with Generalized V4 State&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-cpu-quota-management"
 
 >Interaction with CPU Quota Management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#memory-manager"
 
 >Memory Manager&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#policies-2"
 
 >Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-scope-allocation-and-partitioning-algorithm-1"
 
 >Pod Scope Allocation and Partitioning Algorithm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#state-management-and-container-removal-1"
 
 >State Management and Container Removal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#compatibility-with-generalized-v4-state-1"
 
 >Compatibility with Generalized V4 State&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#podresources-api"
 
 >PodResources API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#protobuf-api-updates"
 
 >Protobuf API Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#illustrative-output"
 
 >Illustrative output&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-enhancements-and-long-term-vision"
 
 >Future Enhancements and Long-Term Vision&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;!-- mdformat on -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with &lt;code>R&lt;/code> are required &lt;em>prior to targeting to a milestone /
release&lt;/em>.&lt;/p></description></item><item><title>Pop pod from backoffQ when activeQ is empty</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5142/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5142/</guid><description>&lt;h1 id="kep-5142-pop-pod-from-backoffq-when-activeq-is-empty">KEP-5142: Pop pod from backoffQ when activeQ is empty&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#a-tiny-delay-on-the-first-scheduling-attempts-for-newly-created-pods"
 
 >A tiny delay on the first scheduling attempts for newly created pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backoff-wont-be-working-as-a-natural-rate-limiter-in-case-of-errors"
 
 >Backoff won&amp;rsquo;t be working as a natural rate limiter in case of errors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#one-pod-in-the-backoffq-could-starve-the-others"
 
 >One pod in the backoffQ could starve the others&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#low-priority-pod-could-be-chosen-to-pop-even-if-high-priority-pod-has-a-slightly-later-backoff-expiration"
 
 >Low priority pod could be chosen to pop, even if high priority pod has a slightly later backoff expiration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#popping-from-the-backoffq-in-activeqs-pop"
 
 >Popping from the backoffQ in activeQ&amp;rsquo;s pop()&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notifying-activeq-condition-when-a-new-pod-appears-in-the-backoffq"
 
 >Notifying activeQ condition when a new pod appears in the backoffQ&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#calling-preenqueue-for-the-backoffq"
 
 >Calling PreEnqueue for the backoffQ&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#change-backoffq-less-function"
 
 >Change backoffQ less function&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#move-pods-in-flushbackoffqcompleted-when-activeq-is-empty"
 
 >Move pods in flushBackoffQCompleted when activeQ is empty&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Prefer Nominated Node</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1923/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1923/</guid><description>&lt;h1 id="kep-1923-prefer-nominated-node">KEP-1923: Prefer Nominated Node&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Preferred Fit Strategy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2458/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2458/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2458-resource-fit-scoring-strategy">KEP-2458: Resource Fit Scoring Strategy&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>PreferSameZone and PreferSameNode Traffic Distribution</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3015/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3015/</guid><description>&lt;h1 id="kep-3015-prefersamezone-and-prefersamenode-traffic-distribution">KEP-3015 PreferSameZone and PreferSameNode Traffic Distribution&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#preferclose-vs-prefersamezone"
 
 >&lt;code>PreferClose&lt;/code> vs &lt;code>PreferSameZone&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dns"
 
 >DNS&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#renamingdeprecation-of-preferclose"
 
 >Renaming/Deprecation of &lt;code>PreferClose&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#addition-of-prefersamenode"
 
 >Addition of &lt;code>PreferSameNode&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Discussion about trying to add &amp;ldquo;prefer same node&amp;rdquo; behavior to
&lt;code>TrafficDistribution: PreferClose&lt;/code> (&lt;a href="https://github.com/kubernetes/enhancements/pull/4931"
 
 target="_blank" rel="noopener">#4931&lt;/a>
) led to the conclusion
that any attempt to change the semantics of &lt;code>PreferClose&lt;/code> would
inevitably have either too many false positives or too many false
negatives.&lt;/p></description></item><item><title>PreQueueingHint Extension Point for Scheduler Event Processing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6132/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6132/</guid><description>&lt;h1 id="kep-6132-prequeueinghint-extension-point-for-scheduler-event-processing">KEP-6132: PreQueueingHint Extension Point for Scheduler Event Processing&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prequeueinghintfn-interface"
 
 >PreQueueingHintFn Interface&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dra-plugin-implementation"
 
 >DRA Plugin Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance-tests"
 
 >Performance Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podgroup-genericworkload-interaction"
 
 >PodGroup (GenericWorkload) Interaction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-alternatives"
 
 >Other Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone
/ release&lt;/em>.&lt;/p></description></item><item><title>Presubmit config inside the tested repo</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2291/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2291/</guid><description>&lt;h1 id="presubmit-config-inside-the-tested-repo">Presubmit config inside the tested repo&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#components-that-need-the-presubmit-configuration-but-do-not-have-a-git-ref-to-work-on"
 
 >Components that need the &lt;code>Presubmit&lt;/code> configuration but do not have a &lt;code>git ref&lt;/code> to work on&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---stable-graduation"
 
 >Beta -&amp;gt; Stable Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>N/A - this KEP is related to code solely in kubernetes/test-infra that is not
being used as part of the development or release process for
kubernetes/kubernetes&lt;/p></description></item><item><title>Prevent unauthorised volume mode conversion</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3141/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3141/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3141-prevent-unauthorised-volume-mode-conversion">KEP-3141: Prevent unauthorised volume mode conversion&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-to-volumesnapshotcontent-api"
 
 >Changes to VolumeSnapshotContent API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-snapshot-controller"
 
 >Changes to Snapshot Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-external-provisioner"
 
 >Changes to external-provisioner&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volumesecuritypolicy"
 
 >VolumeSecurityPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumesecuritystandard"
 
 >VolumeSecurityStandard&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#annotation-on-volumesnapshotclass"
 
 >Annotation on VolumeSnapshotClass&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Prioritization on Volume Capacity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1845/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1845/</guid><description>&lt;h1 id="kep-1845-prioritization-on-volume-capacity">KEP-1845: Prioritization on volume capacity&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volumes-with-close-capacity-are-preferred"
 
 >Volumes with close capacity are preferred&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#different-weights-for-different-classes"
 
 >Different weights for different classes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configuring-the-utilization-shape-points"
 
 >Configuring the utilization shape points&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#configuring-the-weight-of-storage-class"
 
 >Configuring the weight of storage class&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#maintain-multiple-storage-classes-for-different-storage-capacities"
 
 >Maintain multiple storage classes for different storage capacities&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Priority and Fairness for API Server Requests</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1040/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1040/</guid><description>&lt;h1 id="kep-1040-priority-and-fairness-for-api-server-requests">KEP-1040: Priority and Fairness for API Server Requests&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-goals"
 
 >Future Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request-categorization"
 
 >Request Categorization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#assignment-to-a-queue"
 
 >Assignment to a Queue&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#queue-assignment-proof-of-concept"
 
 >Queue Assignment Proof of Concept&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#probability-of-collisions"
 
 >Probability of Collisions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resource-limits"
 
 >Resource Limits&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#primary-cpu-and-memory-protection"
 
 >Primary CPU and Memory Protection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#secondary-memory-protection"
 
 >Secondary Memory Protection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#latency-protection"
 
 >Latency Protection&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#queuing"
 
 >Queuing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dispatching"
 
 >Dispatching&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fair-queuing-for-server-requests"
 
 >Fair Queuing for Server Requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fair-queuing-for-server-requests-problem-statement"
 
 >Fair Queuing for Server Requests problem statement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fair-queuing-for-server-requests-with-equal-allocations-and-serial-virtual-execution"
 
 >Fair Queuing for Server Requests, with equal allocations and serial virtual execution&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#fair-queuing-for-server-requests-with-equal-allocations-and-serial-virtual-execution-initial-definition"
 
 >Fair Queuing for Server Requests, with equal allocations and serial virtual execution, initial definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fair-queuing-for-server-requests-with-equal-allocations-and-serial-virtual-execution-intended-behavior"
 
 >Fair Queuing for Server Requests, with equal allocations and serial virtual execution, intended behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-of-fair-queuing-for-server-requests-with-equal-allocations-and-serial-execution-technique-and-problems"
 
 >Implementation of Fair Queuing for Server Requests with equal allocations and serial execution, technique and problems&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#support-for-list-requests"
 
 >Support for LIST requests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#width-of-the-request"
 
 >Width of the request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#determining-the-width"
 
 >Determining the width&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dispatching-the-request-as-a-modification-to-the-initial-fair-queuing-for-server-requests"
 
 >Dispatching the request, as a modification to the initial Fair Queuing for Server Requests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#support-for-watch-requests"
 
 >Support for WATCH requests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#watch-initialization"
 
 >Watch initialization&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#getting-the-initialization-signal"
 
 >Getting the initialization signal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#passing-the-initialization-signal-to-the-filter"
 
 >Passing the initialization signal to the filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#width-of-the-request-1"
 
 >Width of the request&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#keeping-the-watch-up-to-date"
 
 >Keeping the watch up-to-date&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#estimating-cost-of-the-request"
 
 >Estimating cost of the request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multiple-apiservers"
 
 >Multiple apiservers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cost-of-the-watch-event"
 
 >Cost of the watch event&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dispatching-the-request-as-a-modification-to-the-initial-fair-queuing-for-server-requests-with-list-support"
 
 >Dispatching the request, as a modification to the initial Fair Queuing for Server Requests with LIST support&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#example-configuration"
 
 >Example Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reaction-to-configuration-changes"
 
 >Reaction to Configuration Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#default-behavior"
 
 >Default Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prometheus-metrics"
 
 >Prometheus Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing"
 
 >Testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#observed-requests"
 
 >Observed Requests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#loopback"
 
 >Loopback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tokenreview-from-kube-controller-manager"
 
 >TokenReview from kube-controller-manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#subjectaccessreview-by-aggregated-api-server"
 
 >SubjectAccessReview by Aggregated API Server&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#get-of-custom-resource-by-administrator-using-kubectl"
 
 >GET of Custom Resource by Administrator Using Kubectl&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-to-self"
 
 >Node to Self&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-leases"
 
 >Other Leases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#status-update-from-system-controller-to-system-object"
 
 >Status Update From System Controller To System Object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#etcd-operator"
 
 >Etcd Operator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#garbage-collectors"
 
 >Garbage Collectors&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-scheduler"
 
 >Kube-Scheduler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-updates-pod-status"
 
 >Kubelet Updates Pod Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#controller-in-hosted-control-plane"
 
 >Controller in Hosted Control Plane&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#log-and-exec-on-workload-pod"
 
 >LOG and EXEC on Workload Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#requests-over-insecure-port"
 
 >Requests Over Insecure Port&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-considerations"
 
 >Design Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Production Readiness Review Process</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1194/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1194/</guid><description>&lt;h1 id="production-readiness-review-process">Production Readiness Review Process&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1---research-and-pilot"
 
 >Phase 1 - Research and Pilot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2---implementation"
 
 >Phase 2 - Implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Projected Service Account Tokens for Kubelet Image Credential Providers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4412/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4412/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4412-projected-service-account-tokens-for-kubelet-image-credential-providers">KEP-4412: Projected service account tokens for Kubelet image credential providers&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#credential-provider-configuration"
 
 >Credential Provider Configuration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api-server-kas-changes"
 
 >Kubernetes API Server (KAS) Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#credential-provider-request-api"
 
 >Credential Provider Request API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#caching-credentials"
 
 >Caching Credentials&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-behavior"
 
 >Existing behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-behavior-when-the-serviceaccounttokenaudience-field-is-set"
 
 >New behavior when the &lt;code>serviceAccountTokenAudience&lt;/code> field is set&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#how-will-this-work-with-the-ensure-secret-pull-images-kep"
 
 >How will this work with the Ensure secret pull images KEP?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possible-future-work"
 
 >Possible future work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Promote Node Operating System &amp; Architecture labels to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/793/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/793/</guid><description>&lt;h1 id="promote-node-operating-system--architecture-labels-to-ga">Promote Node Operating System &amp;amp; Architecture labels to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The kubelet has been been labeling the Node object with operating system (OS)
and architecture (arch) labels since Kubernetes 1.3. This proposal aims to
promote these labels to GA and ensure a smooth transition with backward
compatibility.&lt;/p></description></item><item><title>Promote Pod Priority and Preemption to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/268/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/268/</guid><description>&lt;h1 id="promote-pod-priority-and-preemption-to-ga">Promote Pod Priority and Preemption to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-plan"
 
 >Testing Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Pod Priority and Preemption are features introduced in Kubernetes 1.8 as alpha features and
promoted to beta in 1.11. Pod Priority enables users to specify importance of
a Pod. Pods with higher priority are scheduled ahead of other pods with
lower priority. When a cluster does not have enough capacity for running a high
priority pod, the scheduler preempts and removes lower priority pods in order to
make room for the high priority pod.&lt;/p></description></item><item><title>Promote Taint Based Evictions to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/166/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/166/</guid><description>&lt;h1 id="promote-taint-based-evictions-to-ga">Promote Taint Based Evictions to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-plan"
 
 >Testing Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Taint Based Evictions was introduced as an alpha feature in Kubernetes 1.6 and was promoted to
beta in 1.13. The feature automatically taints nodes with &lt;code>NoExecute&lt;/code> when they become unready or
unreachable.&lt;/p></description></item><item><title>Promoting Cloud Provider Labels to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/837/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/837/</guid><description>&lt;h1 id="promoting-cloud-provider-labels-to-ga">Promoting Cloud Provider Labels to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>When node and volume resources are created in Kubernetes, labels should be applied based on the underlying cloud provider of the Kubernetes cluster.
These labels contain cloud provider information that may be critical to some advanced features (mainly scheduling).
When these labels were first introduced, they were prefixed with &amp;ldquo;beta&amp;rdquo; as the maturity and usage of these labels were not known at the time.&lt;/p></description></item><item><title>Protomote sysctl annotations to fields</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/34/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/34/</guid><description>&lt;h1 id="kep-34-promote-sysctl-annotations-to-fields">KEP-34: Promote sysctl annotations to fields&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goalsnon-goals"
 
 >Goals/Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#promote-annotations-to-fields-beta"
 
 >Promote annotations to fields (beta)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#promote---experimental-allowed-unsafe-sysctls-kubelet-flag-to-kubelet-config-api-option"
 
 >Promote &lt;code>&amp;ndash;experimental-allowed-unsafe-sysctls&lt;/code> kubelet flag to kubelet config api option&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gate-the-feature"
 
 >Gate the feature&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation"
 
 >Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks--alternatives"
 
 >Drawbacks / Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Provide fsgroup of pod to CSI driver on mount</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2317/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2317/</guid><description>&lt;h1 id="provide-fsgroup-of-pod-to-csi-driver-on-mount">Provide fsgroup of pod to CSI driver on mount&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> e2e Tests for all Beta API Operations (endpoints)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Ensure GA e2e tests meet requirements for &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Minimum Two Week Window for GA e2e tests to prove flake free&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> (R) &lt;a href="https://github.com/kubernetes/community/pull/1806"
 
 target="_blank" rel="noopener">all GA Endpoints&lt;/a>
 must be hit by &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review approved&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Currently for most volume plugins kubelet applies fsgroup ownership and permission-based changes by recursively &lt;code>chown&lt;/code>ing and &lt;code>chmod&lt;/code>ing the files and directories inside a volume. For certain CSI drivers this may not be possible because &lt;code>chown&lt;/code> and &lt;code>chmod&lt;/code> are unix primitives and underlying CSI driver
may not support them. This enhancement proposes providing the CSI driver with fsgroup as an explicit field so as CSI driver can apply this on mount time.&lt;/p></description></item><item><title>Provision volumes from cross-namespace snapshots</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3294/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3294/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3294-provision-volumes-from-cross-namespace-snapshots">KEP-3294: Provision volumes from cross-namespace snapshots&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#provisioning-pvcs-from-cross-namespace-pvcs"
 
 >Provisioning PVCs from cross-namespace PVCs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#secret-handling"
 
 >&lt;code>Secret&lt;/code> Handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#referencegrant-api-change"
 
 >ReferenceGrant API change&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-flow-of-how-this-proposal-works"
 
 >Example flow of how this proposal works&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csi-external-provisioner"
 
 >CSI external provisioner&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-server"
 
 >API server&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implement-transfer-feature-for-volumesnapshot"
 
 >Implement transfer feature for &lt;code>VolumeSnapshot&lt;/code>:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#introducing-a-new-volumesnapshotlink-api-instead-of-changing-persistentvolumeclaimspec-in-core-api-to-take-namespace-as-a-data-source"
 
 >Introducing a new &lt;code>VolumeSnapshotLink&lt;/code> API instead of changing &lt;code>PersistentVolumeClaimSpec&lt;/code> in core API to take namespace as a data source:&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-flow-of-how-volumesnapshotlink-api-works"
 
 >Example flow of how &lt;code>VolumeSnapshotLink&lt;/code> API works&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumesnapshotlink-api"
 
 >&lt;code>VolumeSnapshotLink&lt;/code> API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#populator-implementation"
 
 >Populator implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#a-inside-the-existing-csi-external-provisioner"
 
 >(a) inside the existing CSI external-provisioner&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#b-as-a-separate-populator"
 
 >(b) as a separate populator&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Proxy Terminating Endpoints</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1669/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1669/</guid><description>&lt;h1 id="kep-1669-proxy-terminating-endpoints">KEP-1669: Proxy Terminating Endpoints&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-only-some-endpoints-terminating-when-traffic-policy-is-cluster"
 
 >Example: only some endpoints terminating when traffic policy is &amp;quot;Cluster&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-only-some-endpoints-terminating-on-a-node-when-traffic-policy-is-local"
 
 >Example: only some endpoints terminating on a node when traffic policy is &amp;quot;Local&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-all-endpoints-terminating-and-traffic-policy-is-cluster"
 
 >Example: all endpoints terminating and traffic policy is &amp;quot;Cluster&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-all-endpoints-terminating-on-a-node-when-traffic-policy-is-local"
 
 >Example: all endpoints terminating on a node when traffic policy is &amp;quot;Local&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-terminating-endpoints-that-are-not-ready"
 
 >Handling terminating endpoints that are not ready.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#additions-to-endpointslice"
 
 >Additions to EndpointSlice&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy"
 
 >kube-proxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes some enhancements to kube-proxy to handle terminating endpoints in an effort to improve the traffic engineering capabilities and overall relability of Kubernetes.
These changes will depend on recent changes to the EndpointSlice API as part of KEP-1672 to include terminating pods in the EndpointSlice API.&lt;/p></description></item><item><title>Pruning for Custom Resources</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2332/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2332/</guid><description>&lt;h1 id="pruning-for-custom-resources">Pruning for Custom Resources&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#excluding-values-from-pruning"
 
 >Excluding values from Pruning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#opt-in-and-opt-out-of-pruning-on-crd-level"
 
 >Opt-in and Opt-out of Pruning on CRD Level&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives-considered"
 
 >Alternatives Considered&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>CustomResources store arbitrary JSON data without following the typical Kubernetes API behaviour to prune unknown fields. This makes CRDs different, but also leads to security and general data consistency concerns because it is unclear what is actually stored in etcd.&lt;/p></description></item><item><title>PSI based Node Conditions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5394/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5394/</guid><description>&lt;h1 id="kep-5394-psi-based-node-conditions">KEP-5394: PSI Based Node Conditions&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>PSP Replacement Policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2579/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2579/</guid><description>&lt;h1 id="kep-2579-pod-security-admission-control">KEP-2579: Pod Security Admission Control&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#requirements"
 
 >Requirements&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#versioning"
 
 >Versioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podtemplate-resources"
 
 >PodTemplate Resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#namespace-policy-update-warnings"
 
 >Namespace policy update warnings&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admission-configuration"
 
 >Admission Configuration&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#defaulting"
 
 >Defaulting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exemptions"
 
 >Exemptions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#updates"
 
 >Updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ephemeral-containers"
 
 >Ephemeral Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-pod-subresources"
 
 >Other Pod Subresources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-security-standards"
 
 >Pod Security Standards&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-support"
 
 >Windows Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flexible-extension-support"
 
 >Flexible Extension Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#monitoring"
 
 >Monitoring&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#audit-annotations"
 
 >Audit Annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsecuritypolicy-migration"
 
 >PodSecurityPolicy Migration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#optional-future-extensions"
 
 >Optional Future Extensions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#automated-psp-migration-tooling"
 
 >Automated PSP migration tooling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-of-baseline-by-default-for-unlabeled-namespaces"
 
 >Rollout of baseline-by-default for unlabeled namespaces&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-warning-messages"
 
 >Custom Warning Messages&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-restricted-profile-support"
 
 >Windows restricted profile support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#offline-policy-checking"
 
 >Offline Policy Checking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conformance"
 
 >Conformance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Replace PodSecurityPolicy with a new built-in admission controller that enforces the
&lt;a href="https://kubernetes.io/docs/concepts/security/pod-security-standards/"
 
 target="_blank" rel="noopener">Pod Security Standards&lt;/a>
.&lt;/p></description></item><item><title>Public KRM Functions Registry</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2985/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2985/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2985-public-krm-functions-registry">KEP-2985: Public KRM Functions Registry&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#publisher"
 
 >Publisher&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security"
 
 >Security&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#trust"
 
 >Trust&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5"
 
 >Story 5&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-6"
 
 >Story 6&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#repo-location"
 
 >Repo Location&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#management-model"
 
 >Management Model&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#centralized-index-and-release-management"
 
 >Centralized Index and Release Management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prior-art"
 
 >Prior Art&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pros-and-cons"
 
 >Pros and Cons&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#centralized-index-with-distributed-release-management"
 
 >Centralized Index with Distributed Release Management&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prior-art-1"
 
 >Prior Art&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pros-and-cons-1"
 
 >Pros and Cons&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#mixture-model"
 
 >Mixture Model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#website"
 
 >Website&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#function-metadata"
 
 >Function Metadata&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#publishing-workflow"
 
 >Publishing Workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#repo-layout-convention"
 
 >Repo Layout Convention&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Publish CRD OpenAPI</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/692/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/692/</guid><description>&lt;h1 id="publish-crd-openapi">Publish CRD OpenAPI&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#build-schemadefinition"
 
 >Build Schema/Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#build-spec"
 
 >Build Spec&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aggregate-and-publish-spec-from-apiextensions-apiserver"
 
 >Aggregate and Publish Spec from apiextensions-apiserver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aggregate-and-publish-spec-from-kube-aggregator"
 
 >Aggregate and Publish Spec from kube-aggregator&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>In CustomResourceDefinition (CRD) we allow CRD author to define OpenAPI v3 schema, to
enable server-side &lt;a href="https://github.com/kubernetes/design-proposals-archive/blob/master/api-machinery/customresources-validation.md"
 
 target="_blank" rel="noopener">validation for CustomResources (CR)&lt;/a>
.
The validation schema format is compatible for creating OpenAPI documentation for CRs,
which can be used by clients like kubectl to perform client-side validation
(e.g. &lt;code>kubectl create&lt;/code> and &lt;code>kubectl apply&lt;/code>),
schema explanation (&lt;code>kubectl explain&lt;/code>), and client generation.
This KEP proposes using the OpenAPI v3 schema to create and publish OpenAPI
documentation for CRs.&lt;/p></description></item><item><title>Publish versioning information in OpenAPI</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2558/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2558/</guid><description>&lt;h1 id="kep-2558-publish-versioning-information-in-openapi">KEP-2558: Publish versioning information in OpenAPI&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#constraints-and-caveats"
 
 >Constraints and Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#constraints"
 
 >Constraints&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Publishing Kubernetes packages on community infrastructure</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1731/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1731/</guid><description>&lt;h1 id="kep-1731-publishing-kubernetes-packages-on-community-infrastructure">KEP-1731: Publishing Kubernetes packages on community infrastructure &lt;!-- omit in toc -->&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-roles"
 
 >User Roles&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#using-obs-instead-of-manually-building-and-hosting-packages"
 
 >Using OBS instead of manually building and hosting packages&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-open-build-service-works"
 
 >How Open Build Service works?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#packages-operating-systems-and-architectures-in-scope"
 
 >Packages, Operating Systems, and Architectures in Scope&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#repository-layout"
 
 >Repository Layout&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#projects-and-packages-in-obs"
 
 >Projects and Packages in OBS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#packages-in-obs"
 
 >Packages in OBS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#package-sources"
 
 >Package Sources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#package-specs"
 
 >Package Specs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integrating-obs-with-our-current-release-pipeline"
 
 >Integrating OBS with our current release pipeline&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#recovering-from-a-failed-build"
 
 >Recovering from a failed build&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authentication-to-obs-and-user-management"
 
 >Authentication to OBS and User Management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ownership-of-obs-infrastructure-and-commitments"
 
 >Ownership of OBS infrastructure and commitments&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gpg-key-ownership-as-part-of-the-obs-infrastructure"
 
 >GPG key ownership as part of the OBS infrastructure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#clarification-on-the-community-owned-infrastructure"
 
 >Clarification on the community-owned infrastructure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-of-vendor-lock-in"
 
 >Risks of vendor-lock in&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-are-packages-used"
 
 >How are packages used?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Quotas for Ephemeral Storage</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1029/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1029/</guid><description>&lt;h1 id="quotas-for-ephemeral-storage">Quotas for Ephemeral Storage&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#project-quotas"
 
 >Project Quotas&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#control-over-use-of-quotas"
 
 >Control over Use of Quotas&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operation-flow----applying-a-quota"
 
 >Operation Flow &amp;ndash; Applying a Quota&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operation-flow----retrieving-storage-consumption"
 
 >Operation Flow &amp;ndash; Retrieving Storage Consumption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operation-flow----removing-a-quota"
 
 >Operation Flow &amp;ndash; Removing a Quota.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#operation-notes"
 
 >Operation Notes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#selecting-a-project-id"
 
 >Selecting a Project ID&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#determine-whether-a-project-id-applies-to-a-directory"
 
 >Determine Whether a Project ID Applies To a Directory&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#return-a-project-id-to-the-system"
 
 >Return a Project ID To the System&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-strategy"
 
 >Implementation Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future"
 
 >Future&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notes-on-implementation"
 
 >Notes on Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notes-on-code-changes"
 
 >Notes on Code Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details-of-using-xfs-quota-in-user-namespace"
 
 >Implementation details of using Xfs-Quota in User Namespace&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance-benchmarks"
 
 >Performance Benchmarks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#elapsed-time"
 
 >Elapsed Time&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-cpu-time"
 
 >User CPU Time&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#system-cpu-time"
 
 >System CPU Time&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-and-api-server-skew"
 
 >Kubelet and API Server Skew:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#version-115"
 
 >Version 1.15&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-124"
 
 >Version 1.24&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-125"
 
 >Version 1.25&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-127"
 
 >Version 1.27&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-129"
 
 >Version 1.29&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-quota-based-implementation"
 
 >Alternative quota-based implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-loop-filesystem-based-implementation"
 
 >Alternative loop filesystem-based implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#bugs-opened-against-filesystem-quotas"
 
 >Bugs Opened Against Filesystem Quotas&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cve"
 
 >CVE&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-security-issues-without-cve"
 
 >Other Security Issues Without CVE&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#other-linux-quota-related-bugs-since-2012"
 
 >Other Linux Quota-Related Bugs Since 2012&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Random Pod Selection on ReplicaSet Downscale</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2185/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2185/</guid><description>&lt;h1 id="kep-2185-random-pod-selection-on-replicaset-downscale">KEP-2185: Random Pod Selection on ReplicaSet Downscale&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#make-downscale-heuristic-an-option"
 
 >Make downscale heuristic an option&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#compare-pods-using-their-distribution-in-the-failure-domains"
 
 >Compare pods using their distribution in the failure domains&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Raw Block Volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/351/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/351/</guid><description>&lt;h1 id="raw-block-volumes">Raw Block Volumes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-strategy"
 
 >Upgrade/Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#k8s-19-alpha"
 
 >K8s 1.9: Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-113-beta"
 
 >K8s 1.13: Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-117-beta"
 
 >K8s 1.17: Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#k8s-118-ga"
 
 >K8s 1.18: GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document presents a proposal for managing raw block storage in Kubernetes
using the persistent volume source API as a consistent model of consumption.&lt;/p></description></item><item><title>ReadWriteOncePod PersistentVolume AccessMode</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2485/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2485/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [X] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [X] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [X] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [X] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2485-readwriteoncepod-persistentvolume-accessmode">KEP-2485: ReadWriteOncePod PersistentVolume AccessMode&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#glossary"
 
 >Glossary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-changes"
 
 >Kubernetes Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-specification-changes"
 
 >CSI Specification Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#readwriteoncepod-pvc-used-twice-fails-for-second-consumer"
 
 >ReadWriteOncePod PVC Used Twice Fails for Second Consumer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#readwriteonce-pvc-continues-to-succeed-with-new-kubernetes-old-csi-driver"
 
 >ReadWriteOnce PVC Continues to Succeed with New Kubernetes, Old CSI Driver&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-changes-access-mode"
 
 >Kubernetes Changes, Access Mode&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scheduler-enforcement"
 
 >Scheduler Enforcement&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#mount-enforcement"
 
 >Mount Enforcement&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#csi-specification-changes-volume-capabilities"
 
 >CSI Specification Changes, Volume Capabilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-of-persistentvolumespec-object"
 
 >Validation of PersistentVolumeSpec Object&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mounting-and-mapping-with-readwriteoncepod"
 
 >Mounting and Mapping with ReadWriteOncePod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mounting-and-mapping-with-readwriteonce"
 
 >Mounting and Mapping with ReadWriteOnce&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mapping-kubernetes-access-modes-to-csi-volume-capability-access-modes"
 
 >Mapping Kubernetes Access Modes to CSI Volume Capability Access Modes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#end-to-end-tests"
 
 >End to End Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-1"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-1"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-server-version-n--scheduler-version-n--kubelet-version-n-1-or-n-2"
 
 >API Server Version N / Scheduler Version N / Kubelet Version N-1 or N-2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-server-version-n--scheduler-version-n-1--kubelet-version-n-1-or-n-2"
 
 >API Server Version N / Scheduler Version N-1 / Kubelet Version N-1 or N-2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-understands-readwriteoncepod-csi-sidecars-do-not"
 
 >API Understands ReadWriteOncePod, CSI Sidecars Do Not&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-controller-service-understands-new-csi-access-modes-csi-node-service-does-not"
 
 >CSI Controller Service Understands New CSI Access Modes, CSI Node Service Does Not&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-server-has-feature-enabled-scheduler-and-kubelet-do-not"
 
 >API Server Has Feature Enabled, Scheduler and Kubelet Do Not&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-server-has-feature-enabled-scheduler-does-not-kubelet-does"
 
 >API Server Has Feature Enabled, Scheduler Does not, Kubelet Does&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-server-has-feature-enabled-scheduler-does-kubelet-does-not"
 
 >API Server Has Feature Enabled, Scheduler Does, Kubelet Does Not&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Rearchitecting NetworkPolicy tests with a DSL for better upstream test coverage</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1611/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1611/</guid><description>&lt;p>Note that this approach of higher level DSLs for testing may be moved into sig-testing for a broader set of tests over time.&lt;/p>
&lt;h1 id="architecting-networkpolicy-tests-with-a-dsl-for-better-upstream-test-coverage-of-all-cnis">Architecting NetworkPolicy tests with a DSL for better upstream test coverage of all CNIs&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#concrete-goals"
 
 >Concrete goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#related-issues"
 
 >Related issues&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#also-related-but-not-directly-addressed-in-this-kep"
 
 >Also related but not directly addressed in this KEP&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#consequences-of-slow-non-declarative-tests"
 
 >Consequences of slow, non declarative tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#a-high-level-outline-of-pod-traffic-pathways"
 
 >A high level outline of Pod Traffic Pathways&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#detailed-examples-of-the-problem-statement"
 
 >Detailed examples of the problem statement&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#incompleteness"
 
 >Incompleteness&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#todo-temporal-tests"
 
 >TODO Temporal tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-concrete-examples-of-incompleteness"
 
 >Other concrete examples of incompleteness&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#list-of-missing-functional-test-cases"
 
 >List of missing functional test cases&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#understandability"
 
 >Understandability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extensibility"
 
 >Extensibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance"
 
 >Performance&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#logging-verbosity-is-worse-for-slow-tests"
 
 >Logging verbosity is worse for slow tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#documentation"
 
 >Documentation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goals-1"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#part-1-defining-a-static-matrix-of-nspod-combinations"
 
 >Part 1: Defining a static matrix of ns/pod combinations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#note-on-acceptance-and-backwards-compatibility"
 
 >Note on Acceptance and Backwards compatibility&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#next-steps"
 
 >Next steps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#thoughts-from-initial-research-in-this-proposal-future-keps"
 
 >Thoughts from initial research in this proposal (future KEPs)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#node-local-traffic-should-it-be-revisited-in-v2-"
 
 >Node local traffic: Should it be revisited in V2 ?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation-and-type--should-it-be-revisited-"
 
 >Validation and &amp;rsquo;type&amp;rsquo; : Should it be revisited ?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#finding-comprehensive-test-cases-for-policy-validation"
 
 >Finding comprehensive test cases for policy validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ensuring-that-large-policy-stacks-evaluate-correctly"
 
 >Ensuring that large policy stacks evaluate correctly&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ensure-networkpolicy-evaluates-correctly-regardless-of-the-order-of-events"
 
 >Ensure NetworkPolicy evaluates correctly regardless of the order of events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generating-the-reachability-matrix-on-the-fly"
 
 >Generating the reachability matrix on the fly&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consuming-network-policies-as-yaml-files"
 
 >Consuming network policies as yaml files&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternative-solutions-to-this-proposal"
 
 >Alternative solutions to this proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#keeping-the-tests-as-they-are-and-fixing-them-one-by-one"
 
 >Keeping the tests as they are and fixing them one by one&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#building-a-framework-for-networkpolicy-evaluation"
 
 >Building a framework for NetworkPolicy evaluation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#have-the-cni-organization-create-such-tests"
 
 >Have the CNI organization create such tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We propose that the current NetworkPolicy test suite which comprises 25 tests, and can take 30 minutes to 1 hour to run, should be drastically improved both in terms of readability, performance, coverage, and scalability. The mechanism we propose for this includes building a &amp;ldquo;Reachability matrix&amp;rdquo; for evaluating all pod connectivities, while also building reusable APIs for designing tests in a more modular way for the future.&lt;/p></description></item><item><title>Rebase Kubernetes Main Master and Node Images to Distroless/static</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1729/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1729/</guid><description>&lt;h1 id="rebase-kubernetes-main-master-and-node-images-to-distrolessstatic">Rebase Kubernetes Main Master and Node Images to Distroless/static&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-images"
 
 >Kubernetes Images&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#type-1-from-scratch"
 
 >Type 1 FROM Scratch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#type-2-debian-based-images"
 
 >Type 2 Debian Based Images&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#type-3-alpine-based-images"
 
 >Type 3 Alpine Based Images&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#distroless-and-previous-work"
 
 >Distroless and Previous Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#for-core-master-images"
 
 >For Core Master Images&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#bash-release"
 
 >&lt;a href="https://github.com/kubernetes/kubernetes/blob/caf9d94d697ce327e0c1c3dee71a1f06a6fc918e/build/root/Makefile#L419">Bash Release&lt;/a>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bazel-release"
 
 >&lt;a href="https://github.com/kubernetes/kubernetes/blob/caf9d94d697ce327e0c1c3dee71a1f06a6fc918e/build/root/Makefile#L604">Bazel Release&lt;/a>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-release"
 
 >&lt;a href="https://github.com/kubernetes/test-infra/tree/master/kubetest">Test Release&lt;/a>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#solution"
 
 >Solution&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notifications-to-cloud-providers"
 
 >Notifications to Cloud Providers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#for-generic-add-on-images"
 
 >For Generic Add-On Images&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#status-updates"
 
 >Status Updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#further-work"
 
 >Further work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rebased-images"
 
 >Rebased Images&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The effort of rebasing the k8s images to distroless/static is aimed at making the k8s images thinner, safer and less vulnerable. The scope is not only improving the core containers but will cover the master and node addons which have their own release process. As for the core containers, this effort is targeting the v1.15 release.&lt;/p></description></item><item><title>Recover from volume expansion failure</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1790/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1790/</guid><description>&lt;h1 id="recovery-from-volume-expansion-failure">Recovery from volume expansion failure&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#making-allocatedresourcestatus-not-change-unnecessarily-for-every-error-in-131"
 
 >Making allocatedResourceStatus not change unnecessarily for every error in 1.31&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-of-rwx-volumes-that-dont-require-node-expansion"
 
 >Handling of RWX volumes that don&amp;rsquo;t require node expansion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#making-resizestatus-more-general-in-v128"
 
 >Making resizeStatus more general in v1.28&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-flow-stories"
 
 >User flow stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#case-0-default-pvc-creation"
 
 >Case 0 (default PVC creation):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#case-1-controllernode-expandable"
 
 >Case 1 (controller+node expandable):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#case-2-node-only-expandable-volume"
 
 >Case 2 (node only expandable volume):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#case-3-malicious-user"
 
 >Case 3 (Malicious user)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#case-4malicious-user-and-rounding-to-gbgib-bounaries"
 
 >Case 4(Malicious User and rounding to GB/GiB bounaries)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#case-5rapid-successive-expansion-and-shrink"
 
 >Case 5(Rapid successive expansion and shrink)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring"
 
 >Monitoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-not-use-pvcstatuscapacity-for-tracking-quota"
 
 >Why not use pvc.Status.Capacity for tracking quota?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-admins-to-manually-fix-pvcs-which-are-stuck-in-resizing-condition"
 
 >Allow admins to manually fix PVCs which are stuck in resizing condition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#solving-limitation-of-allowing-restore-all-the-way-to-original-size"
 
 >Solving limitation of allowing restore all the way to original size&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> e2e Tests for all Beta API Operations (endpoints)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Ensure GA e2e tests meet requirements for &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Minimum Two Week Window for GA e2e tests to prove flake free&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>A user may expand a PersistentVolumeClaim(PVC) to a size which may not be supported by
underlying storage provider. In which case - typically expansion controller forever tries to
expand the volume and keeps failing. We want to make it easier for users to recover from
expansion failures, so that user can retry volume expansion with values that may succeed.&lt;/p></description></item><item><title>Recursive read-only mounts</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3857/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3857/</guid><description>&lt;!--
Last template update: 2023-07-26

https://github.com/kubernetes/enhancements/commit/8ef33fed0c79f80f0cb12df5aae6c5221f90f524
(See https://github.com/kubernetes/enhancements/commits/master/keps/NNNN-kep-template/README.md
to check if there are newer changes)
-->
&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3857-recursive-read-only-rro-mounts">KEP-3857: Recursive read-only (RRO) mounts&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-api"
 
 >Core API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-api"
 
 >CRI API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Reducing Build Maintenance in CIP</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2818/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2818/</guid><description>&lt;h1 id="kep-2818-reducing-build-maintenance-in-cip">KEP-2818: Reducing Build Maintenance in CIP&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#caveats"
 
 >Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#golang"
 
 >Golang&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#docker"
 
 >Docker&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-approach-generate-test-manifests"
 
 >Non-Approach: Generate Test Manifests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#approach-1-static-hosting"
 
 >Approach #1: Static Hosting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros"
 
 >Pros&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons"
 
 >Cons&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#approach-2-tarball-image-loading-recommended"
 
 >Approach #2: Tarball Image Loading (recommended)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros-1"
 
 >Pros&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons-1"
 
 >Cons&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ko-image-builder"
 
 >Ko Image Builder&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kaniko-image-builder"
 
 >Kaniko Image Builder&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
- [ ] (R) Design details are appropriately documented
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
 - [ ] e2e Tests for all Beta API Operations (endpoints)
 - [ ] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) 
 - [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
- [ ] (R) Graduation criteria is in place
 - [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) 
- [ ] (R) Production readiness review completed
- [ ] (R) Production readiness review approved
- [ ] "Implementation History" section is up-to-date for milestone
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
-->
&lt;!--
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
-->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Deprecate Bazel within the k8s-container-image-promoter.&lt;/p></description></item><item><title>Reducing Kubernetes Build Maintenance</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2420/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2420/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2420-reducing-kubernetes-build-maintenance">KEP-2420: Reducing Kubernetes Build Maintenance&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Reduction of Secret-based Service Account Tokens</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2799/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2799/</guid><description>&lt;h1 id="kep-2799-reduction-of-secret-based-service-account-tokens">KEP-2799: Reduction of Secret-based Service Account Tokens&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#legacyserviceaccounttokennoautogeneration"
 
 >LegacyServiceAccountTokenNoAutoGeneration:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#legacyserviceaccounttokentracking"
 
 >LegacyServiceAccountTokenTracking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#legacyserviceaccounttokencleanup"
 
 >LegacyServiceAccountTokenCleanUp&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#legacyserviceaccounttokennoautogeneration-1"
 
 >LegacyServiceAccountTokenNoAutoGeneration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#legacyserviceaccounttokentracking-1"
 
 >LegacyServiceAccountTokenTracking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation-1"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation-1"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#legacyserviceaccounttokencleanup-1"
 
 >LegacyServiceAccountTokenCleanUp&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation-2"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation-2"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone /
release&lt;/em>.&lt;/p></description></item><item><title>Reflect PreEnqueue rejections in Pod status</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5501/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5501/</guid><description>&lt;h1 id="kep-5501-reflect-preenqueue-rejections-in-pod-status">KEP-5501: Reflect PreEnqueue rejections in Pod status&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-reusing-frameworkstatus-and-mandatory-reporting"
 
 >1. Reusing &lt;code>framework.Status&lt;/code> and mandatory reporting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-handling-the-schedulinggated-conflict"
 
 >2. Handling the &lt;code>SchedulingGated&lt;/code> conflict&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-delay-configuration"
 
 >3. Delay configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#diagnosing-the-pods-using-dra"
 
 >Diagnosing the Pods using DRA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-custom-gang-scheduling-implementation"
 
 >Using custom Gang Scheduling implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#stale-or-missing-pod-status-on-patch-failure"
 
 >Stale or missing Pod status on patch failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impact-on-scheduling-throughput-and-latency"
 
 >Impact on scheduling throughput and latency&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-interface-and-plugins"
 
 >1. Interface and plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-api-changes"
 
 >2. API changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-preventing-redundant-api-calls"
 
 >3. Preventing redundant API calls&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-asynchronous-dispatch-and-state-management"
 
 >4. Asynchronous dispatch and state management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#5-logic-flow"
 
 >5. Logic flow&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#rejection-path"
 
 >Rejection path&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#success-path"
 
 >Success path&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#detailed-comparison-for-five-design-alternatives"
 
 >Detailed comparison for five design alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#primary-evaluation-criteria"
 
 >Primary evaluation criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comparison-table"
 
 >Comparison table&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#analysis-and-justification-for-the-chosen-design"
 
 >Analysis and justification for the chosen design&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rejected-alternative-detailed-analysis-of-the-explicit--immediate-model"
 
 >Rejected alternative: detailed analysis of the &amp;quot;Explicit + Immediate&amp;quot; model&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-how-should-plugins-provide-the-status-message"
 
 >1. How should plugins provide the status message?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-should-all-preenqueue-plugins-report-the-status"
 
 >2. Should all PreEnqueue plugins report the status?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-what-reason-should-be-used-for-the-pod-condition"
 
 >3. What reason should be used for the Pod condition?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-how-should-outdated-messages-be-handled"
 
 >4. How should outdated messages be handled?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Relaxed DNS search string validation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4427/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4427/</guid><description>&lt;h1 id="kep-4427-relaxed-dns-search-string-validation">KEP-4427: Relaxed DNS search string validation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Currently, Kubernetes validates search string in the &lt;code>dnsConfig.searches&lt;/code> according to &lt;a href="https://datatracker.ietf.org/doc/html/rfc1123"
 
 target="_blank" rel="noopener">RFC-1123&lt;/a>

which defines restrictions for hostnames. However, there are reasons why this validation is too strict for the use in &lt;code>dnsConfig.searches&lt;/code>.&lt;/p></description></item><item><title>Relaxed validation for Services names</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5311/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5311/</guid><description>&lt;h1 id="kep-5311-relaxed-validation-for-services-names">KEP-5311: Relaxed validation for Services names&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Release Notes Improvements</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1733/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1733/</guid><description>&lt;h1 id="release-notes-improvements">Release Notes Improvements&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#consolidation-and-clean-up"
 
 >Consolidation and Clean-up&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#updating-anago"
 
 >Updating Anago&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#release-notes-website"
 
 >Release Notes Website&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#automation"
 
 >Automation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#build-additional-labels"
 
 >Build additional labels&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#automated-release-notes"
 
 >Automated release notes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document describes a new release notes process as well as a new site for end-users to
better consume the generated data. While this change would only affect the release-notes
team, this is a visible change large enough to warrant a KEP.&lt;/p></description></item><item><title>Remove cgroup v1 support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5573/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5573/</guid><description>&lt;h1 id="kep-5573-remove-cgroup-v1">KEP-5573: Remove cgroup v1&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#linux-community-momentum"
 
 >Linux Community Momentum&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#systemd"
 
 >Systemd&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#red-hat-enterprise-linux"
 
 >Red Hat Enterprise Linux&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fedora"
 
 >Fedora&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#debian"
 
 >Debian&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#amazon-linux"
 
 >Amazon Linux&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#move-to-deprecated-as-first-phase"
 
 >Move to Deprecated as first phase&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enable-failcgroupv1-by-default"
 
 >Enable FailCgroupV1 by default&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#update-warning-messages-and-events"
 
 >Update warning messages and events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation-updates"
 
 >Documentation updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-of-cgroup-v1"
 
 >Testing of cgroup v1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#removal-of-cgroup-v1"
 
 >Removal of cgroup v1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#meaning-of-deprecation"
 
 >Meaning of deprecation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Remove ClusterStatus from kubeadm-config</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2506/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2506/</guid><description/></item><item><title>Remove gitRepo volumes driver.</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5040/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5040/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5040-remove-gitrepo-volume-driver">KEP-5040: Remove gitRepo volume driver.&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>

 &lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validating-admission-policy"
 
 >Validating Admission Policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#timeline"
 
 >Timeline&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#disabled"
 
 >Disabled&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-add-admission-plugin-that-blocks-gitrepo-volumes"
 
 >Alternative 1: Add admission plugin that blocks gitRepo volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-use-validatingadmissionpolicy"
 
 >Alternative 2: Use ValidatingAdmissionPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-make-git-hooks-disableable"
 
 >Alternative 3: Make Git hooks disableable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Remove gogo protobuf dependency</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5589/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5589/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5589-remove-gogo-protobuf-dependency-for-kubernetes-api-types">KEP-5589: Remove gogo protobuf dependency for Kubernetes API types&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possible-future-work"
 
 >Possible Future Work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Remove knowledge of pod cluster CIDR from iptables rules</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2450/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2450/</guid><description>&lt;h1 id="removing-knowledge-of-pod-cluster-cidr-from-iptables-rules">Removing Knowledge of pod cluster CIDR from iptables rules&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#iptables---masquerade-off-cluster-traffic-to-services-by-node-ip"
 
 >iptables - masquerade off cluster traffic to services by node IP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#iptables---redirecting-pod-traffic-to-external-loadbalancer-vip-to-cluster-ip"
 
 >iptables - redirecting pod traffic to external loadbalancer VIP to cluster IP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#iptables---accepting-traffic-after-first-packet-after-being-accepted-by-kubernetes-rules"
 
 >iptables - accepting traffic after first packet, after being accepted by kubernetes rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ipvs---masquerade-off-cluster-traffic-to-services-by-node-ip"
 
 >ipvs - masquerade off cluster traffic to services by node IP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ipvs---accepting-traffic-after-first-packet-after-being-accepted-by-kubernetes-rules"
 
 >ipvs - accepting traffic after first packet, after being accepted by kubernetes rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multiple-cluster-cidr-rules"
 
 >Multiple cluster CIDR rules&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ip-masq-agent-like-behavior"
 
 >ip-masq-agent like behavior&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The iptables implementation of kube-proxy today references the cluster CIDR for pods in three places for the following reasons.&lt;/p></description></item><item><title>Remove kube-proxy's automatic clean up logic</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2448/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2448/</guid><description>&lt;h1 id="remove-kube-proxys-automatic-clean-up-logic">Remove kube-proxy&amp;rsquo;s automatic clean up logic&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Remove any clean up functionality in kube-proxy that is done automatically/implicitly.
More concretely, kube-proxy should only attempt to clean up its proxy rules when the &lt;code>--cleanup&lt;/code> flag is set.&lt;/p>
&lt;h2 id="motivation">Motivation&lt;/h2>
&lt;p>Historically, kube-proxy has been built with a &amp;ldquo;clean up&amp;rdquo; functionality that allows it to find and remove any proxy
rule that it created. This functionality runs in two steps. The first step requires an explicit request from
the user by setting the &lt;code>--cleanup&lt;/code> flag in which case kube-proxy would attempt to remove proxy rules associated with
all its proxy modes and then exit. The second step is done automatically by kube-proxy on start-up in which kube-proxy
would detect and remove any proxy rules associated with the proxy modes it was not currently using.&lt;/p></description></item><item><title>Remove transient node predicates from KCCM's service controller</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3458/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3458/</guid><description>&lt;h1 id="kep-3458-remove-transient-node-predicates-from-kccms-service-controller">KEP-3458: Remove transient node predicates from KCCM&amp;rsquo;s service controller&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk"
 
 >Risk&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigations"
 
 >Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The service controller in the Kubernetes cloud controller manager (KCCM)
currently adds/removes Nodes from the load balancers&amp;rsquo; node set in the following
cases:&lt;/p></description></item><item><title>Removing dockershim from kubelet</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2221/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2221/</guid><description>&lt;h1 id="kep-2221-removing-dockershim-from-kubelet">KEP-2221: Removing dockershim from kubelet&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#terms"
 
 >Terms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pros"
 
 >Pros&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cons"
 
 >Cons&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dockershim-removal-criteria"
 
 >Dockershim removal criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dockershim-removal-plan"
 
 >Dockershim removal plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Removing In-Tree Cloud Providers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2395/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2395/</guid><description>&lt;h1 id="kep-2395-removing-in-tree-cloud-provider-code">KEP-2395: Removing In-Tree Cloud Provider Code&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#terms"
 
 >Terms&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1---moving-cloud-provider-code-to-staging"
 
 >Phase 1 - Moving Cloud Provider Code to Staging&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2---building-ccm-from-provider-repos"
 
 >Phase 2 - Building CCM from Provider Repos&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3---migrating-provider-code-to-provider-repos"
 
 >Phase 3 - Migrating Provider Code to Provider Repos&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-4---disabling-in-tree-providers"
 
 >Phase 4 - Disabling In-Tree Providers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#staging-directory"
 
 >Staging Directory&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cloud-provider-instances"
 
 >Cloud Provider Instances&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-update"
 
 >Prerequisite testing update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cloud-provider-specific-guidance"
 
 >Cloud Provider Specific Guidance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#general-guidance"
 
 >General Guidance&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#staging-alternatives"
 
 >Staging Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#git-filter-branch"
 
 >Git Filter-Branch&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#build-location-alternatives"
 
 >Build Location Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#build-k8sk8s-from-within-k8scloud-provider"
 
 >Build K8s/K8s from within K8s/Cloud-provider&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#build-k8scloud-provider-within-k8sk8s"
 
 >Build K8s/Cloud-provider within K8s/K8s&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#config-alternatives"
 
 >Config Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-component-config-to-determine-where-controllers-run"
 
 >Use component config to determine where controllers run&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> e2e Tests for all Beta API Operations (endpoints)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Ensure GA e2e tests meet requirements for &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Minimum Two Week Window for GA e2e tests to prove flake free&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Graduation criteria is in place
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> (R) &lt;a href="https://github.com/kubernetes/community/pull/1806"
 
 target="_blank" rel="noopener">all GA Endpoints&lt;/a>
 must be hit by &lt;a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md"
 
 target="_blank" rel="noopener">Conformance Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> (R) Production readiness review approved&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="terms">Terms&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>CCM&lt;/strong>: Cloud Controller Manager - The controller manager responsible for running cloud provider dependent logic,
such as the service and route controllers.&lt;/li>
&lt;li>&lt;strong>KCM&lt;/strong>: Kubernetes Controller Manager - The controller manager responsible for running generic Kubernetes logic,
such as job and node_lifecycle controllers.&lt;/li>
&lt;li>&lt;strong>KAS&lt;/strong>: Kubernetes API Server - The core api server responsible for handling all API requests for the Kubernetes
control plane. This includes things like namespace, node, pod and job resources.&lt;/li>
&lt;li>&lt;strong>K8s/K8s&lt;/strong>: The core kubernetes github repository.&lt;/li>
&lt;li>&lt;strong>K8s/cloud-provider&lt;/strong>: Any or all of the repos for each cloud provider. Examples include &lt;a href="https://github.com/kubernetes/cloud-provider-gcp"
 
 target="_blank" rel="noopener">cloud-provider-gcp&lt;/a>
,
&lt;a href="https://github.com/kubernetes/cloud-provider-aws"
 
 target="_blank" rel="noopener">cloud-provider-aws&lt;/a>
 and &lt;a href="https://github.com/kubernetes/cloud-provider-azure"
 
 target="_blank" rel="noopener">cloud-provider-azure&lt;/a>
.
We have created these repos for each of the in-tree cloud providers. This document assumes in various places that the
cloud providers will place the relevant code in these repos. Whether this is a long-term solution to which additional
cloud providers will be added, or an incremental step toward moving out of the Kubernetes org is out of scope of this
document, and merits discussion in a broader forum and input from SIG-Architecture and Steering Committee.&lt;/li>
&lt;li>&lt;strong>K8s SIGs/library&lt;/strong>: Any SIG owned repository.&lt;/li>
&lt;li>&lt;strong>Staging&lt;/strong>: Staging: Separate repositories which are currently visible under the K8s/K8s repo, which contain code
considered to be safe to be vendored outside of the K8s/K8s repo and which should eventually be fully separated from
the K8s/K8s repo. Contents of Staging are prevented from depending on code in K8s/K8s which are not in Staging.
Controlled by &lt;a href="https://github.com/kubernetes/publishing-bot/blob/master/configs/kubernetes-rules-configmap.yaml"
 
 target="_blank" rel="noopener">publishing kubernetes-rules-configmap&lt;/a>
&lt;/li>
&lt;li>&lt;strong>In-tree&lt;/strong>: code that lives in the core Kubernetes repository &lt;a href="https://github.com/kubernetes/kubernetes/"
 
 target="_blank" rel="noopener">k8s.io/kubernetes&lt;/a>
.&lt;/li>
&lt;li>&lt;strong>Out-of-Tree&lt;/strong>: code that lives in an external repository outside of &lt;a href="https://github.com/kubernetes/kubernetes/"
 
 target="_blank" rel="noopener">k8s.io/kubernetes&lt;/a>
.&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This is a proposal outlining steps to remove &amp;ldquo;in-tree&amp;rdquo; cloud provider code from the k8s.io/kubernetes repo while being
as least disruptive to end users and other Kubernetes developers as possible.&lt;/p></description></item><item><title>Rename the kubeadm "master" label and taint</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2067/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2067/</guid><description/></item><item><title>Replace usage of the kubelet-config-x.y naming</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2915/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2915/</guid><description/></item><item><title>ReplicaSet Pod Deletion Cost</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2255/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2255/</guid><description>&lt;h1 id="kep-2255-replicaset-pod-deletion-cost">KEP-2255: ReplicaSet Pod Deletion Cost&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Report Last Used Time On a PVC</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5541/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5541/</guid><description>&lt;h1 id="kep-5541-report-last-used-time-on-a-pvc">KEP-5541: Report Last Used Time on a PVC&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-cluster-administrator"
 
 >Story 1: Cluster Administrator&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Reporting Conformance Test Results to Testgrid</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2390/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2390/</guid><description>&lt;h1 id="reporting-conformance-test-results-to-testgrid">Reporting Conformance Test Results to Testgrid&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-to-run-e2e-conformance-tests"
 
 >How to Run E2E Conformance Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sonobuoy"
 
 >Sonobuoy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#installing-sonobuoy"
 
 >Installing Sonobuoy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#running-conformance-tests-with-sonobuoy"
 
 >Running Conformance Tests with Sonobuoy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubetest"
 
 >Kubetest&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#installing-kubetest"
 
 >Installing Kubetest&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#running-conformance-test-with-kubetest"
 
 >Running Conformance Test with kubetest&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#how-to-upload-conformance-test-results-to-testgrid"
 
 >How to Upload Conformance Test Results to Testgrid&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#requesting-a-gcs-bucket"
 
 >Requesting a GCS Bucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authenticating-to-your-testgrid-bucket"
 
 >Authenticating to your Testgrid Bucket&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#uploading-results-to-testgrid"
 
 >Uploading results to Testgrid&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testgrid-configuration"
 
 >Testgrid Configuration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#lifecycle-of-test-results"
 
 >Lifecycle of Test Results&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#operational-overhead"
 
 >Operational Overhead&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#misconfigured-tests"
 
 >Misconfigured Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flaky-tests"
 
 >Flaky Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This is a KEP outlining the motivation behind why cloud providers should periodically upload E2E conformance test results to &lt;a href="https://github.com/kubernetes/test-infra/tree/master/testgrid"
 
 target="_blank" rel="noopener">Testgrid&lt;/a>
 and how a cloud provider can go about doing this.&lt;/p></description></item><item><title>Require Transition from Beta</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1635/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1635/</guid><description>&lt;h1 id="kep-1635-require-transition-from-beta">KEP-1635: Require Transition from Beta&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impacted-apis"
 
 >Impacted APIs&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sig-apps"
 
 >sig-apps&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sig-auth"
 
 >sig-auth&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sig-instrumentation"
 
 >sig-instrumentation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sig-network"
 
 >sig-network&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sig-node"
 
 >sig-node&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sig-scheduling"
 
 >sig-scheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;!--
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
-->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>k8s.io REST APIs should not languish in beta. They should take feedback and progress towards GA by either&lt;/p></description></item><item><title>Reserve Nodeport Ranges For Dynamic And Static Port Allocation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3668/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3668/</guid><description>&lt;h1 id="kep-3668-reserve-nodeport-ranges-for-dynamic-and-static-port-allocation">KEP-3668: Reserve Nodeport Ranges For Dynamic And Static Port Allocation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-services-nodeport-allocation-model"
 
 >Current Services NodePort allocation model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-services-nodeports-allocation-model"
 
 >Proposed Services NodePorts allocation model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Nodeport Service can expose a Service outside the cluster, and allow external applications access to an set of Pods. NodePort has several ports that are widespread in the cluster and allow to load-balance traffic from the external. And the port number can be assigned:&lt;/p></description></item><item><title>Reserve Service IP Range For Dynamic and Static IP Allocation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3070/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3070/</guid><description>&lt;h1 id="kep-3070-reserve-service-ip-ranges-for-dynamic-and-static-ip-allocation">KEP-3070: Reserve Service IP Ranges For Dynamic and Static IP Allocation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-services-clusterips-allocation-model"
 
 >Current Services ClusterIPs allocation model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-services-clusterips-allocation-model"
 
 >Proposed Services ClusterIPs allocation model&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Kubernetes Services are an abstract way to expose an application running on a
set of Pods. Services has a ClusterIP that is virtual and allows to load-balance
traffic across the different Pods. This ClusterIP can be assigned:&lt;/p></description></item><item><title>Resilient watchcache initialization</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4568/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4568/</guid><description>&lt;h1 id="kep-4568-resilient-watchcache-initialization">KEP-4568: Resilient watchcache initialization&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#reduce-the-number-of-requests-during-initialization"
 
 >Reduce the number of requests during initialization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reject-hanging-watches"
 
 >Reject hanging watches&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#delegate-get-requests-to-etcd"
 
 >Delegate get requests to etcd&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#adjust-what-lists-are-delegated-to-etcd"
 
 >Adjust what lists are delegated to etcd&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reject-the-rest-of-list-requests"
 
 >Reject the rest of list requests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Resource Claim Status With Possible Standardized Network Interface Data</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4817/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4817/</guid><description>&lt;h1 id="kep-4817-resource-claim-status-with-possible-standardized-network-interface-data">KEP-4817: Resource Claim Status With Possible Standardized Network Interface Data&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api---resourceclaimstatus"
 
 >API - ResourceClaim.Status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1---network-device-status-for-network-services"
 
 >Story 1 - Network Device Status for Network Services&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2---network-device-status-for-troubleshooting"
 
 >Story 2 - Network Device Status for Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#write-permission"
 
 >Write Permission&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#annotations"
 
 >Annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podstatuspodips-enhancement"
 
 >Pod.Status.PodIPs Enhancement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-podstatus-field"
 
 >New Pod.Status Field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kep-4680-extension"
 
 >KEP-4680 extension&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-resources"
 
 >Custom Resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Resource Quota Scope Selectors</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/986/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/986/</guid><description/></item><item><title>Resource State Metrics</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4785/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4785/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4785-resource-state-metrics">KEP-4785: Resource State Metrics&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.

Items marked with (R) are required *prior to targeting to a milestone / release*.

- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
- [ ] (R) Design details are appropriately documented
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture 
 and SIG Testing input (including test refactors)
 - [ ] e2e Tests for all Beta API Operations (endpoints)
 - [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) 
 - [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
- [ ] (R) Graduation criteria is in place
 - [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md) 
- [ ] (R) Production readiness review completed
- [ ] (R) Production readiness review approved
- [ ] "Implementation History" section is up-to-date for milestone
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes

**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
-->
&lt;p>N/A since the KEP proposes a controller external to the core Kubernetes codebase.&lt;/p></description></item><item><title>Respect PodTopologySpread after rolling upgrades</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3243/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3243/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3243-respect-podtopologyspread-after-rolling-upgrades">KEP-3243: Respect PodTopologySpread after rolling upgrades&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#possible-misuse"
 
 >Possible misuse&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-update-to-labels-specified-at-matchlabelkeys-isnt-supported"
 
 >The update to labels specified at &lt;code>matchLabelKeys&lt;/code> isn&amp;rsquo;t supported&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v134-design-change-and-a-safe-upgrade-path"
 
 >[v1.34] design change and a safe upgrade path&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-pod-generatename"
 
 >use pod generateName&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implement-matchlabelkeys-in-only-either-the-scheduler-plugin-or-kube-apiserver"
 
 >implement MatchLabelKeys in only either the scheduler plugin or kube-apiserver&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Restart All Containers on Container Exits</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5532/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5532/</guid><description>&lt;h1 id="kep-5532-restart-all-containers-on-container-exits">KEP-5532: Restart All Containers on Container Exits&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-rerun-with-init-containers"
 
 >Story 1: Rerun with init containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-efficient-in-place-restart"
 
 >Story 2: Efficient in-place restart&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-restartallcontainers-with-init-container-providing-items-from-a-queue"
 
 >Story 3: RestartAllContainers with init container providing items from a queue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-restart-main-container-on-sidecar-failures"
 
 >Story 4: Restart main container on sidecar failures&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unintended-pod-restart-loops"
 
 >Unintended Pod Restart Loops&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restart-phases"
 
 >Restart Phases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#termination-grace-periods"
 
 >Termination Grace Periods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prestop-hooks"
 
 >Prestop Hooks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#containers-in-runtime"
 
 >Containers in Runtime&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#containerstatuses-in-api"
 
 >ContainerStatuses in API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sandbox"
 
 >Sandbox&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumes"
 
 >Volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#init-containers"
 
 >Init Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#regular-containers"
 
 >Regular Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ephemeral-containers"
 
 >Ephemeral Containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#probes"
 
 >Probes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-status"
 
 >Pod Status&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-pod-condition-allcontainersrestarting"
 
 >[New] Pod condition AllContainersRestarting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#existing-pod-conditions"
 
 >Existing Pod Conditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-phase"
 
 >Pod Phase&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet-implementation"
 
 >Kubelet Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-restarts"
 
 >Kubelet Restarts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-restarts"
 
 >Node Restarts&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#giving-access-to-cri-api-or-subset"
 
 >Giving access to CRI API or subset&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-self-orchestration"
 
 >Pod Self-orchestration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#livesness-probes-on-regular-containers-that-point-to-a-sidecar-container"
 
 >Livesness probes on regular containers that point to a sidecar container&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Restarting kubelet does not change pod status</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4781/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4781/</guid><description>&lt;h1 id="kep-4781-restarting-kubelet-does-not-change-pod-status">KEP-4781: Restarting kubelet does not change pod status&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#inconsistency-with-other-kubernetes-components"
 
 >Inconsistency with other Kubernetes components&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#delayed-health-check-updates"
 
 >Delayed Health Check Updates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deprecated"
 
 >deprecated&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Restarting sidecar containers during Pod termination</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4438/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4438/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4438-restarting-sidecar-containers-during-pod-termination">KEP-4438: Restarting sidecar containers during Pod termination&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-limitations"
 
 >Alpha limitations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-termination-and-in-place-pod-restart-interaction"
 
 >Pod termination and In-Place Pod Restart interaction&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Retriable and non-retriable Pod failures for Jobs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3329/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3329/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3329-retriable-and-non-retriable-pod-failures-for-jobs">KEP-3329: Retriable and non-retriable Pod failures for Jobs&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#job-level-vs-pod-level-spec"
 
 >Job-level vs. pod-level spec&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-podspecrestartpolicy"
 
 >Relationship with Pod.spec.restartPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-scope-of-the-failuretarget-condition"
 
 >The scope of the FailureTarget condition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#current-state-review"
 
 >Current state review&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#preemption"
 
 >Preemption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#taint-based-eviction"
 
 >Taint-based eviction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-drain"
 
 >Node drain&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-pressure-eviction"
 
 >Node-pressure eviction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-memory-limit-exceeded"
 
 >Container memory limit exceeded&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-ephemeral-storage-limit-exceeded"
 
 >Container ephemeral-storage limit exceeded&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graceful-node-shutdown"
 
 >Graceful node shutdown&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-admission-error"
 
 >Pod admission error&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#disconnected-node"
 
 >Disconnected node&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#disconnected-node-when-taint-manager-is-disabled"
 
 >Disconnected node when taint-manager is disabled&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#direct-container-kill"
 
 >Direct container kill&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#termination-initiated-by-kubelet"
 
 >Termination initiated by Kubelet&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#active-deadline-timeout-exceeded"
 
 >Active deadline timeout exceeded&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#admission-failures"
 
 >Admission failures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-limits-exceeded"
 
 >Resource limits exceeded&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#jobspec-api-alternatives"
 
 >JobSpec API alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failing-delete-after-a-condition-is-added"
 
 >Failing delete after a condition is added&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#marking-pods-as-failed"
 
 >Marking pods as Failed&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#review-of-example-steps-for-the-3rd-scenario"
 
 >Review of example steps for the 3rd scenario&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposed-solution-for-the-3rd-scenario"
 
 >Proposed solution for the 3rd scenario&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-progress-and-plan"
 
 >Implementation progress and plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#garbage-collected-pods"
 
 >Garbage collected pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evolving-condition-types"
 
 >Evolving condition types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stale-disruptiontarget-condition-which-is-not-cleaned-up"
 
 >Stale DisruptionTarget condition which is not cleaned up&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-podconditions"
 
 >New PodConditions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interim-failuretarget-job-condition"
 
 >Interim FailureTarget Job condition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#jobspec-api"
 
 >JobSpec API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evaluation"
 
 >Evaluation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade"
 
 >Upgrade&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade"
 
 >Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#only-support-for-exit-codes"
 
 >Only support for exit codes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-pod-statusreason-field"
 
 >Using Pod status.reason field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#using-of-various-podcondition-types"
 
 >Using of various PodCondition types&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#more-nodeaffinity-like-jobspec-api"
 
 >More nodeAffinity-like JobSpec API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possible-future-extensions"
 
 >Possible future extensions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Retroactive default StorageClass assignment</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3333/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3333/</guid><description>&lt;h1 id="kep-3333-retroactive-default-storageclass-assignment">KEP-3333: Retroactive default StorageClass assignment&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-current-behavior"
 
 >Story 3 (current behavior)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#behavior-change"
 
 >Behavior change&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-annotation"
 
 >New annotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bind-pvcs-with-nil-will-wait-for-default-sc"
 
 >Bind PVCs with &lt;code>nil&lt;/code> will wait for default SC&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Retry Generate Name</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4420/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4420/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4420-retry-generate-name">KEP-4420: Retry Generate Name&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Review attibutes of a current user</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3325/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3325/</guid><description>&lt;h1 id="kep-3325-self-subject-review-api">KEP-3325: Self subject review API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request"
 
 >Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rbac"
 
 >RBAC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Robust VolumeManager reconstruction after kubelet restart</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3756/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3756/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3756-robust-volumemanager-reconstruction-after-kubelet-restart">KEP-3756: Robust VolumeManager reconstruction after kubelet restart&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#introduction"
 
 >Introduction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-volumemanager-startup"
 
 >Proposed VolumeManager startup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#old-volumemanager-startup"
 
 >Old VolumeManager startup&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#observability"
 
 >Observability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Rootless mode</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2033/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2033/</guid><description>&lt;!--
Last template update: 2025-09-11

https://github.com/kubernetes/enhancements/commit/3ffc27b7413e285d429025a422dd79473d3e9b50
(See https://github.com/kubernetes/enhancements/commits/master/keps/NNNN-kep-template/README.md
to check if there are newer changes)
-->
&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2033-kubelet-in-userns-aka-rootless-mode">KEP-2033: Kubelet-in-UserNS (aka Rootless mode)&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#faq-why-not-use-admission-controllers"
 
 >FAQ: why not use admission controllers?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-production-cluster"
 
 >Story 1: Production cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-hpc-cluster"
 
 >Story 2: HPC cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-kind-with-rootless-dockerpodman"
 
 >Story 3: &lt;code>kind&lt;/code> with Rootless Docker/Podman&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-temporary-initial-cluster-for-bootstrapping"
 
 >Story 4: Temporary initial cluster for bootstrapping&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#running-kubernetes-inside-rootless-dockerpodman-kind-minikube"
 
 >Running Kubernetes inside Rootless Docker/Podman (kind, minikube)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#running-kubernetes-directly-on-the-host"
 
 >Running Kubernetes directly on the host&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#paths"
 
 >Paths&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#network"
 
 >Network&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rootlesskit-network-drivers"
 
 >RootlessKit network drivers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cni-plugins"
 
 >CNI plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cgroup"
 
 >cgroup&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#required-changes-to-kubernetes"
 
 >Required changes to Kubernetes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet"
 
 >kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy"
 
 >kube-proxy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Run control-plane as non-root in kubeadm.</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2568/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2568/</guid><description/></item><item><title>RunAsGroup support in PodSpec and PodSecurityPolicy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/213/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/213/</guid><description>&lt;h1 id="runasgroup-support-in-podspec-and-podsecuritypolicy">RunAsGroup support in PodSpec and PodSecurityPolicy&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#abstract"
 
 >Abstract&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-is-the-significance-of-primary-group-id"
 
 >What is the significance of Primary Group Id?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-case-1"
 
 >Use Case 1:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-2"
 
 >Use Case 2:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design"
 
 >Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#model"
 
 >Model&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#securitycontext"
 
 >SecurityContext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsecuritycontext"
 
 >PodSecurityContext&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsecuritypolicy"
 
 >PodSecurityPolicy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#behavior"
 
 >Behavior&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#note-about-runasnonroot-field"
 
 >Note About RunAsNonRoot field&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#summary-of-changes-needed"
 
 >Summary of Changes needed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="abstract">Abstract&lt;/h2>
&lt;p>As a Kubernetes User, we should be able to specify both user id and group id for the containers running
inside a pod on a per Container basis, similar to how docker allows that using docker run options &lt;code>-u&lt;/code>,&lt;/p></description></item><item><title>Runtime Class</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/585/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/585/</guid><description>&lt;h1 id="kep-585-runtime-class">KEP-585: Runtime Class&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-handler"
 
 >Runtime Handler&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#versioning-updates-and-rollouts"
 
 >Versioning, Updates, and Rollouts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#monitoring"
 
 >Monitoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-scheduling"
 
 >RuntimeClass Scheduling&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#runtimeclass-scheduling-motivation"
 
 >RuntimeClass Scheduling Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#runtimeclass-scheduling-goals"
 
 >RuntimeClass Scheduling Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-scheduling-non-goals"
 
 >RuntimeClass Scheduling Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-scheduling-proposal"
 
 >RuntimeClass Scheduling Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#runtimeclass-scheduling-user-stories"
 
 >RuntimeClass Scheduling User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#windows"
 
 >Windows&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sandboxed-nodes"
 
 >Sandboxed Nodes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#runtimeclass-scheduling-api"
 
 >RuntimeClass Scheduling API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-admission-controller"
 
 >RuntimeClass Admission Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#labeling-nodes"
 
 >Labeling Nodes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-scheduling-graduation-criteria"
 
 >RuntimeClass Scheduling Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-scheduling-alternatives"
 
 >RuntimeClass Scheduling Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scheduler"
 
 >Scheduler&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimecontroller-mix-in"
 
 >RuntimeController Mix-in&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#runtimecontroller"
 
 >RuntimeController&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mix-in"
 
 >Mix-in&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#nodeselector"
 
 >NodeSelector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#native-runtimeclass-reporting"
 
 >Native RuntimeClass Reporting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduling-policy"
 
 >Scheduling Policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#appendix"
 
 >Appendix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-future-enhancements"
 
 >Proposed Future Enhancements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#examples-of-runtime-variation"
 
 >Examples of runtime variation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>&lt;code>RuntimeClass&lt;/code> is a new cluster-scoped resource that surfaces container runtime properties to the
control plane. RuntimeClasses are assigned to pods through a &lt;code>runtimeClass&lt;/code> field on the
&lt;code>PodSpec&lt;/code>. This provides a new mechanism for supporting multiple runtimes in a cluster and/or node.&lt;/p></description></item><item><title>Scheduler Component Config API</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/785/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/785/</guid><description>&lt;h1 id="kep-785-scheduler-component-config-api">KEP-785: Scheduler Component Config API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-strategy"
 
 >Upgrade/Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The kube-scheduler configuration API &lt;code>kubescheduler.config.k8s.io&lt;/code> was in alpha
for several releases. We graduated it to beta in 1.19 as &lt;code>v1beta1&lt;/code>. We introduced
&lt;code>v1beta2&lt;/code> and &lt;code>v1beta3&lt;/code> in 1.22 and 1.23 respectively. And it was graduated to GA
in 1.25 as &lt;code>v1&lt;/code>. The &lt;code>v1beta2&lt;/code> was marked as deprecated in 1.25 and will be removed
in 1.28. &lt;code>v1beta3&lt;/code> will be marked as deprecated in 1.26 and removed in 1.29.&lt;/p></description></item><item><title>Scheduler Extender</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1819/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1819/</guid><description>&lt;h1 id="kep-1819-scheduler-extender">KEP-1819: Scheduler extender&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configuration"
 
 >Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interface"
 
 >Interface&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#filter"
 
 >Filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prioritize"
 
 >Prioritize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bind"
 
 >Bind&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preempt"
 
 >Preempt&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Scheduler Preemption for In-Place Pod Resize</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5836/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5836/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5836-scheduler-preemption-for-in-place-pod-resize">KEP-5836: Scheduler Preemption for In-Place Pod Resize&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-pods-in-the-deferred-resize-status-no-longer-require-manual-interversion"
 
 >Story 1: Pods in the Deferred resize status no longer require manual interversion.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-reduction-of-disruption-for-critical-workloads"
 
 >Story 2: Reduction of disruption for critical workloads.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-driving-cluster-autoscaling"
 
 >Story 3: Driving cluster autoscaling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#performance-impact"
 
 >Performance impact&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interaction-with-workload-aware-preemption"
 
 >Interaction with workload-aware preemption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#race-between-a-deferred-resize-and-a-new-higher-priority-pod"
 
 >Race between a Deferred resize and a new higher-priority pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#shifting-preemption-victims-during-scheduler-restart"
 
 >Shifting Preemption Victims during Scheduler Restart&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risk-of-additional-preemption"
 
 >Risk of Additional Preemption&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-deferred-resizes-integrate-into-the-scheduling-queue"
 
 >How Deferred Resizes Integrate into the Scheduling Queue&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#detecting-deferred-resizes-in-updatepod"
 
 >Detecting Deferred Resizes in UpdatePod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#queueing-hints-in-noderesourcesfit"
 
 >Queueing Hints in NodeResourcesFit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduler-restart-and-state-recovery"
 
 >Scheduler Restart and State Recovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conflicting-sources-of-truth-for-the-pod"
 
 >Conflicting Sources of Truth for the Pod&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#processing-deferred-resizes-in-the-scheduling-cycle"
 
 >Processing Deferred Resizes in the Scheduling Cycle&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#nodename-plugin-node-restriction-via-the-prefilter-phase"
 
 >&lt;code>NodeName&lt;/code> Plugin: Node Restriction via the PreFilter Phase&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#noderesourcesfit-plugin-calculating-resource-fit-in-the-filter-phase"
 
 >&lt;code>NodeResourcesFit&lt;/code> Plugin: Calculating Resource Fit in the Filter Phase&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#handling-node-evaluation-results"
 
 >Handling Node Evaluation Results&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#defaultpreemption-plugin-preemption-mechanism-adjustments-in-the-postfilter-phase"
 
 >&lt;code>DefaultPreemption&lt;/code> Plugin: Preemption Mechanism Adjustments in the PostFilter Phase&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary-of-scheduling-cycle-flow"
 
 >Summary of Scheduling Cycle Flow&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduler-resource-reservation"
 
 >Scheduler Resource Reservation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-scheduler-preemption-interaction"
 
 >Kubelet-Scheduler Preemption Interaction&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#reconsideration-race-conditions"
 
 >Reconsideration Race Conditions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#preemption-policies"
 
 >Preemption Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-priority-graceful-termination-and-pod-disruption-budget"
 
 >Pod Priority, Graceful Termination, and Pod Disruption Budget&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-level-preemption-policy-for-in-place-pod-resize"
 
 >Node-level Preemption Policy for In-Place Pod Resize&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-scheduler-policy-coordination-and-status-propagation"
 
 >Kubelet-Scheduler Policy Coordination and Status Propagation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multiple-owner-support"
 
 >Multiple Owner Support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#policy-scope-exclusivity-to-pod-resize"
 
 >Policy Scope: Exclusivity to Pod Resize&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-preemption"
 
 >Kubelet Preemption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podresizepreemptiondisabled-pod-condition"
 
 >PodResizePreemptionDisabled Pod Condition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scheduler-action"
 
 >Scheduler Action&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#failures-and-reconsideration-of-deferred-pods"
 
 >Failures and Reconsideration of Deferred pods&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#failure-handler-adjustments-for-deferred-pods"
 
 >Failure Handler Adjustments for Deferred Pods&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scope-of-interaction-with-workload-aware-preemption"
 
 >Scope of Interaction with Workload-Aware Preemption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#separate-scheduling-queue"
 
 >Separate scheduling queue&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementing-prioritized-resizes-logic"
 
 >Implementing prioritized resizes logic&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preemption-policies-1"
 
 >Preemption Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conflicting-sources-of-truth-for-the-pod-1"
 
 >Conflicting Sources of Truth for the Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-scheduler-preemption-interaction-1"
 
 >Kubelet-Scheduler Preemption Interaction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#tracking-preemption-nominations-to-avoid-double-preemption"
 
 >Tracking Preemption Nominations to Avoid Double Preemption&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#option-1-accept-double-preemption-alpha-decision"
 
 >Option 1: Accept Double Preemption (Alpha Decision)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-2-internal-nomination-tracking-in-memory-struct"
 
 >Option 2: Internal Nomination Tracking (In-Memory struct)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-3-reuse-nominatednodename-nnn"
 
 >Option 3: Reuse NominatedNodeName (NNN)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-4-check-pod-specnodename-in-defaultpreemption"
 
 >Option 4: Check Pod spec.nodeName in DefaultPreemption&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#node-level-preemption-policy-api-options"
 
 >Node-Level Preemption Policy API Options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-node-annotations-rejected"
 
 >1. Node Annotations (Rejected)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-scheduler-honors-node-field-directly-rejected"
 
 >2. Scheduler Honors Node Field Directly (Rejected)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-node-labels-rejected"
 
 >3. Node Labels (Rejected)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-separate-api-object-rejected"
 
 >4. Separate API Object (Rejected)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#5-node-condition-rejected"
 
 >5. Node Condition (Rejected)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Scheduling Framework</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/624/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/624/</guid><description>&lt;h1 id="scheduling-framework">Scheduling Framework&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scheduling-cycle--binding-cycle"
 
 >Scheduling Cycle &amp;amp; Binding Cycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extension-points"
 
 >Extension points&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#queue-sort"
 
 >Queue sort&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prefilter"
 
 >PreFilter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#filter"
 
 >Filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#postfilter"
 
 >PostFilter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prescore"
 
 >PreScore&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scoring"
 
 >Scoring&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reserve"
 
 >Reserve&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#permit"
 
 >Permit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prebind"
 
 >PreBind&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bind"
 
 >Bind&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#postbind"
 
 >PostBind&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#plugin-api"
 
 >Plugin API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cyclestate"
 
 >CycleState&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#frameworkhandle"
 
 >FrameworkHandle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugin-registration"
 
 >Plugin Registration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#plugin-lifecycle"
 
 >Plugin Lifecycle&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#initialization"
 
 >Initialization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#concurrency"
 
 >Concurrency&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#configuring-plugins"
 
 >Configuring Plugins&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enabledisable"
 
 >Enable/Disable&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#change-evaluation-order"
 
 >Change Evaluation Order&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#optional-args"
 
 >Optional Args&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backward-compatibility"
 
 >Backward Compatibility&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#interactions-with-cluster-autoscaler"
 
 >Interactions with Cluster Autoscaler&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#coscheduling"
 
 >Coscheduling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dynamic-resource-binding"
 
 >Dynamic Resource Binding&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-scheduler-plugins-out-of-tree"
 
 >Custom Scheduler Plugins (out of tree)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plans"
 
 >Test Plans&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document describes the Kubernetes Scheduling Framework. The scheduling
framework is a new set of &amp;ldquo;plugin&amp;rdquo; APIs being added to the existing Kubernetes
Scheduler. Plugins are compiled into the scheduler, and these APIs allow many
scheduling features to be implemented as plugins, while keeping the scheduling
&amp;ldquo;core&amp;rdquo; simple and maintainable.&lt;/p></description></item><item><title>SCTP support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/614/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/614/</guid><description>&lt;h1 id="kep-614-sctp-support">KEP-614: SCTP Support&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#service-with-sctp-and-virtual-ip"
 
 >Service with SCTP and Virtual IP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#headless-service-with-sctp"
 
 >Headless Service with SCTP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#service-with-sctp-without-selector"
 
 >Service with SCTP without selector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sctp-as-container-port-protocol-in-pod-definition"
 
 >SCTP as container port protocol in Pod definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sctp-port-accessible-from-outside-the-cluster"
 
 >SCTP port accessible from outside the cluster&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#networkpolicy-with-sctp"
 
 >NetworkPolicy with SCTP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#userspace-sctp-stack"
 
 >Userspace SCTP stack&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#sctp-in-services"
 
 >SCTP in Services&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api-modification"
 
 >Kubernetes API modification&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#services-with-host-level-ports"
 
 >Services with host level ports&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#services-with-typeloadbalancer"
 
 >Services with type=LoadBalancer&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#sctp-support-in-kube-dns"
 
 >SCTP support in Kube DNS&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sctp-in-the-pods-containerport"
 
 >SCTP in the Pod&amp;rsquo;s ContainerPort&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sctp-in-networkpolicy"
 
 >SCTP in NetworkPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interworking-with-applications-that-use-a-user-space-sctp-stack"
 
 >Interworking with applications that use a user space SCTP stack&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#problem-definition"
 
 >Problem definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-solution-in-the-kubernetes-sctp-support-implementation"
 
 >The solution in the Kubernetes SCTP support implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kernel-cves"
 
 >Kernel CVEs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#addition-to-the-corev1protocol-enumeration"
 
 >Addition to the corev1.Protocol enumeration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#basic-tests"
 
 >Basic tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sctp-connectivity-tests"
 
 >SCTP Connectivity Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The goal of the SCTP support feature is to enable the usage of the
SCTP protocol in Kubernetes &lt;a href="https://kubernetes.io/docs/concepts/services-networking/service/"
 
 target="_blank" rel="noopener">Service&lt;/a>
, &lt;a href="https://kubernetes.io/docs/concepts/services-networking/network-policies/"
 
 target="_blank" rel="noopener">NetworkPolicy&lt;/a>
, and
&lt;a href="https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#exposing-pods-to-the-cluster"
 
 target="_blank" rel="noopener">ContainerPort&lt;/a>
 as an additional protocol value option beside the
current TCP and UDP options. SCTP is an IETF protocol specified in
&lt;a href="https://tools.ietf.org/html/rfc4960"
 
 target="_blank" rel="noopener">RFC4960&lt;/a>
, and it is used widely in telecommunications network stacks.
Once SCTP support is added as a new protocol option those applications
that require SCTP as L4 protocol on their interfaces can be deployed
on Kubernetes clusters on a more straightforward way. For example they
can use the native kube-dns based service discovery, and their
communication can be controlled in the native NetworkPolicy way.&lt;/p></description></item><item><title>Search Results</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/search/</guid><description/></item><item><title>Seccomp by default</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2413/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2413/</guid><description>&lt;h1 id="kep-2413-enable-seccomp-by-default">KEP-2413: Enable seccomp by default&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha to Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-to-ga-graduation"
 
 >Beta to GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-1-define-a-new-kubernetesdefault-profile"
 
 >Alternative 1: Define a new &lt;code>KubernetesDefault&lt;/code> profile&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-allow-admins-to-pick-one-of-kubernetesdefault-runtimedefault-or-a-custom-profile"
 
 >Alternative 2: Allow admins to pick one of &lt;code>KubernetesDefault&lt;/code>, &lt;code>RuntimeDefault&lt;/code> or a custom profile&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Seccomp to GA</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/135/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/135/</guid><description>&lt;h1 id="seccomp-to-ga">Seccomp to GA&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-api"
 
 >Pod API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#localhostprofile"
 
 >LocalhostProfile&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimeprofile"
 
 >RuntimeProfile&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#failure-and-fallback-strategy"
 
 >Failure and Fallback Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#seccomp-root-path-configuration"
 
 >Seccomp root path configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-creation"
 
 >Pod Creation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsecuritypolicy-enforcement"
 
 >PodSecurityPolicy Enforcement&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-update"
 
 >Pod Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podtemplates"
 
 >PodTemplates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-profiles"
 
 >Runtime Profiles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-backwards-compatibility"
 
 >Kubelet Backwards compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade"
 
 >Upgrade / Downgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#localhost-profiles"
 
 >Localhost profiles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#updating-podsecuritypolicy-api"
 
 >Updating PodSecurityPolicy API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podsecuritypolicy-api"
 
 >PodSecurityPolicy API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsecuritypolicy-creation"
 
 >PodSecurityPolicy Creation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsecuritypolicy-update"
 
 >PodSecurityPolicy Update&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>SecretRef field addition to NodeExpandVolume request</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3107/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3107/</guid><description>&lt;h1 id="nodeexpandsecret-for-csi-driver">NodeExpandSecret for CSI Driver&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes a way to add NodeExpandSecret to the CSI persistent
volume source and thus enabling the csi client to send it out as part of
the nodeExpandVolume request to the csi drivers for making use of it
in the various Node Operations.&lt;/p></description></item><item><title>Secrets Store CSI Driver</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2907/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2907/</guid><description>&lt;h1 id="kep-2907-secrets-store-csi-provider">KEP-2907: Secrets Store CSI Provider&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#directory-traversal-vulnerabilities"
 
 >Directory traversal vulnerabilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authenticating-to-external-secret-apis"
 
 >Authenticating to external secret APIs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Separate super-user kubeconfig for kubeadm</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4214/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4214/</guid><description/></item><item><title>Server Side Unknown Field Validation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2885/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2885/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2885-server-side-unknown-field-validation">KEP-2885: Server Side Unknown Field Validation&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#out-of-tree-alternatives-to-client-side-validation"
 
 >Out-of-Tree Alternatives to Client Side Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aligning-json-and-yaml-errors"
 
 >Aligning json and yaml errors&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#performance-considerations"
 
 >Performance Considerations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#opt-in-api-mechanism-query-parameter"
 
 >Opt-in API Mechanism (Query Parameter)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#create-post-and-update-put"
 
 >Create (POST) and Update (PUT)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#patch-patch"
 
 >Patch (PATCH)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#json-patch"
 
 >JSON Patch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#strategic-merge-patch"
 
 >Strategic Merge Patch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#apply-patch"
 
 >Apply Patch&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-flag"
 
 >Kubectl Flag&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#http-header-mechanism"
 
 >HTTP header mechanism&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other-alternatives-considered"
 
 >Other Alternatives Considered&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Server-side Sharded List and Watch</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5866/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5866/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5866-server-side-sharded-list-and-watch">KEP-5866: Server-side Sharded List and Watch&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-horizontal-scaling-of-controllers"
 
 >Story 1: Horizontal Scaling of Controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-optional"
 
 >Story 2 (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-extensibility-sharding-parameters"
 
 >API Extensibility: Sharding Parameters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#shard-key"
 
 >Shard Key&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consistent-hashing-key-range"
 
 >Consistent Hashing (Key Range)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-request"
 
 >Client Request&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#server-design"
 
 >Server Design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#hashing-implementation"
 
 >Hashing Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#virtual-buckets"
 
 >Virtual Buckets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-side-filtering"
 
 >Client-side Filtering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#label-based-sharding"
 
 >Label-Based Sharding&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#explicit-query-parameters"
 
 >Explicit Query Parameters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#lightweight-functional-grammar-eg-selector"
 
 >Lightweight Functional Grammar (e.g. &lt;code>selector=&amp;hellip;&lt;/code>)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#extended-field-selectors"
 
 >Extended Field Selectors&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Service Account signing key retrieval</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1393/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1393/</guid><description>&lt;h1 id="service-account-signing-key-retrieval">Service Account signing key retrieval&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Service Account Token for CSI Driver</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1855/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1855/</guid><description>&lt;h1 id="service-account-token-for-csi-driver">Service Account Token for CSI Driver&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User stories&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-workflow"
 
 >Example Workflow&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-beta"
 
 >Alpha-&amp;gt;Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-ga"
 
 >Beta-&amp;gt;GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes a way to obtain service account token for pods that the CSI
drivers are mounting volumes for. Since these tokens are valid only for a
limited period, this KEP will also give the CSI drivers an option to re-execute
&lt;code>NodePublishVolume&lt;/code> to mount volumes.&lt;/p></description></item><item><title>Service Internal Traffic Policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2086/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2086/</guid><description>&lt;h1 id="kep-2086-service-internal-traffic-policy">KEP-2086: Service Internal Traffic Policy&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-enablement-rollback"
 
 >API Enablement Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proxy-enablement-rollback"
 
 >Proxy Enablement Rollback&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#endpointslice-subsetting"
 
 >EndpointSlice Subsetting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#bool-field-for-node-local"
 
 >Bool Field For Node Local&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Add a new field &lt;code>spec.internalTrafficPolicy&lt;/code> to Service that allows node-local and topology-aware routing for Service traffic.&lt;/p></description></item><item><title>Service Type=LoadBalancer Class Field</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1959/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1959/</guid><description>&lt;h1 id="kep-1959-service-typeloadbalancer-class-field">KEP-1959: Service Type=LoadBalancer Class Field&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#serviceclass-resource"
 
 >ServiceClass Resource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#generic-annotation"
 
 >Generic Annotation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#provider-specific-annotations"
 
 >Provider-Specific Annotations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Shared PID Namespace</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/495/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/495/</guid><description>&lt;h1 id="pod-shared-pid-namespace">Pod Shared PID Namespace&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubernetes-api-changes"
 
 >Kubernetes API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-runtime-interface-changes"
 
 >Container Runtime Interface Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#targeting-a-specific-containers-namespace"
 
 >Targeting a Specific Container&amp;rsquo;s Namespace&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dockershim-changes"
 
 >dockershim Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#edge-case-zombies"
 
 >Edge Case: Zombies&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#deprecation-of-existing-kubelet-flag"
 
 >Deprecation of existing kubelet flag&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#related-work"
 
 >Related Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#explicit-containersandbox-id-targeting"
 
 >Explicit Container/Sandbox ID Targeting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defaulting-to-pid-namespace-sharing"
 
 >Defaulting to PID Namespace Sharing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#migration-to-shared-only-namespaces"
 
 >Migration to Shared-only Namespaces&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We will add support for configuring pod-shared process namespaces by adding a
new boolean field &lt;code>ShareProcessNamespace&lt;/code> to the pod spec. The default to false
means that each container will have a separate process namespace. When set to
true, all containers in the pod will share a single process namespace.&lt;/p></description></item><item><title>Sidecar Containers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/753/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/753/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-753-sidecar-containers">KEP-753: Sidecar containers&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#problems-jobs-with-sidecar-containers"
 
 >Problems: jobs with sidecar containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#problems-log-forwarding-and-metrics-sidecar"
 
 >Problems: log forwarding and metrics sidecar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#problems-service-mesh"
 
 >Problems: service mesh&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#problems-configuration--secrets"
 
 >Problems: configuration / secrets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#naming"
 
 >Naming&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#collection-name"
 
 >Collection name&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reuse-of-restartpolicy-field-and-enum"
 
 >Reuse of &lt;code>restartPolicy&lt;/code> field and enum&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-always-vs-new-enum-value"
 
 >Use &lt;code>Always&lt;/code> vs. New enum value&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scenario-1-user-decides-to-use-sidecars-as-a-way-to-run-regular-containers"
 
 >Scenario 1. User decides to use sidecars as a way to run regular containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-1a"
 
 >Scenario 1.a&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-2-balloon-sidecars"
 
 >Scenario 2. Balloon sidecars&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-3-long-initialization-tasks-running-in-parallel"
 
 >Scenario 3. Long initialization tasks running in-parallel&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-4-sidecar-that-never-becomes-ready"
 
 >Scenario 4. Sidecar that never becomes ready&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-5-intentional-failing-or-terminating-sidecars"
 
 >Scenario 5. Intentional failing or terminating sidecars&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-6-keeping-a-sidecar-alive-to-keep-consuming-cycles-on-termination"
 
 >Scenario 6. Keeping a sidecar alive to keep consuming cycles on termination&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenario-7-risk-of-porting-existing-sidecars-to-the-new-mechanism-naively"
 
 >Scenario 7. Risk of porting existing sidecars to the new mechanism naively&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#backward-compatibility"
 
 >Backward compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubectl-changes"
 
 >kubectl changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#without-sidecar-containers-support"
 
 >Without sidecar containers support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#with-sidecar-container-feature"
 
 >With sidecar container feature&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#resources-calculation-for-scheduling-and-pod-admission"
 
 >Resources calculation for scheduling and pod admission&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#exposing-pod-resource-requirements"
 
 >Exposing Pod Resource requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resources-calculation-and-pod-qos-evaluation"
 
 >Resources calculation and Pod QoS evaluation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-calculation-and-version-skew"
 
 >Resource calculation and version skew&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#topology-and-cpu-managers"
 
 >Topology and CPU managers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#termination-of-containers"
 
 >Termination of containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#other"
 
 >Other&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ready-state-of-a-sidecar-container-is-properly-used-to-createdelete-endpoints"
 
 >Ready state of a sidecar container is properly used to create/delete endpoints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-lifecycle-scenarios-without-sidecar-containers"
 
 >Pod lifecycle scenarios without sidecar containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-lifecycle-scenarios-with-sidecar-containers"
 
 >Pod lifecycle scenarios with sidecar containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-restart-test-cases"
 
 >Kubelet restart test cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-server-is-down-failure-to-update-containers-status-during-initialization"
 
 >API server is down: failure to update containers status during initialization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-usage-testing"
 
 >Resource usage testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-testing"
 
 >Upgrade/downgrade testing&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#upgrade-strategy"
 
 >Upgrade strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#downgrade-strategy"
 
 >Downgrade strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-use-of-restartpolicy-field"
 
 >Future use of restartPolicy field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-startup-completed-condition"
 
 >Pod startup completed condition&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#readiness-probes"
 
 >Readiness probes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#startup-probes"
 
 >Startup probes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#poststart-hook"
 
 >&lt;code>postStart&lt;/code> hook&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternative-1-sidecar-containers-as-a-separate-collection"
 
 >Alternative 1. Sidecar containers as a separate collection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-2-dependon-semantic-between-containers"
 
 >Alternative 2. DependOn semantic between containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-3-phases"
 
 >Alternative 3. Phases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-4-terminatepod-on-container-completion"
 
 >Alternative 4. TerminatePod on container completion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-5-injection-of-sidecar-containers-thru-the-external-object"
 
 >Alternative 5. Injection of sidecar containers thru the &amp;quot;external&amp;quot; object&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>SIG API Machinery Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/api-machinery/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/api-machinery/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG API Machinery is responsible for the development and enhancement of Kubernetes cluster control plane. The scope covers API server, persistence layer (etcd), controller manager, cloud controller manager, CustomResourceDefinition and webhooks.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;p>All aspects of&lt;/p>
&lt;ul>
&lt;li>API server&lt;/li>
&lt;li>API registration and discovery&lt;/li>
&lt;li>Generic API CRUD semantics&lt;/li>
&lt;li>Admission control&lt;/li>
&lt;li>Encoding/decoding&lt;/li>
&lt;li>Conversion&lt;/li>
&lt;li>Defaulting&lt;/li>
&lt;li>Persistence layer (etcd)&lt;/li>
&lt;li>OpenAPI&lt;/li>
&lt;li>The informer libraries&lt;/li>
&lt;li>CustomResourceDefinition&lt;/li>
&lt;li>Webhooks&lt;/li>
&lt;li>Garbage collection&lt;/li>
&lt;li>Namespace lifecycle&lt;/li>
&lt;li>Client libraries&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;p>Client library releases&lt;/p></description></item><item><title>SIG Apps Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/apps/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/apps/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Apps covers developing, deploying, and operating applications on Kubernetes with a focus on the application developer and application operator experience.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>APIs used for running applications (e.g., Workloads API)&lt;/li>
&lt;li>Tools and documentation to aid in ecosystem tool interoperability around apps (e.g., Application CRD/Controller)&lt;/li>
&lt;li>Grandfathered in tools used to aid in development of and management of workloads (e.g., Kompose)&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>A discussion platform for solving app development and management problems&lt;/li>
&lt;li>Represent the needs and persona of application developers and operators&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>Code ownership of ecosystem tools. Discussion of the tools is in scope but ownership of them is outside the scope of Kubernetes aside from legacy situations&lt;/li>
&lt;li>Do not recommend one way to do things (e.g., picking a template language)&lt;/li>
&lt;li>Do not endorse one particular ecosystem tool&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This sig follows adheres to the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>

and opts-in to updates and modifications to &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p></description></item><item><title>SIG Architecture Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/architecture/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/architecture/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The Architecture SIG maintains and evolves the design principles of Kubernetes, and provides a consistent body of expertise necessary to ensure architectural consistency over time.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;h4 id="code-binaries-docs-and-services">Code, Binaries, Docs, and Services&lt;/h4>
&lt;ul>
&lt;li>&lt;em>Conformance test definitions&lt;/em>&lt;/li>
&lt;li>&lt;em>API definitions&lt;/em>&lt;/li>
&lt;li>&lt;em>Architectural renderings&lt;/em>&lt;/li>
&lt;li>&lt;em>API conventions&lt;/em>&lt;/li>
&lt;li>&lt;em>Design principles&lt;/em>&lt;/li>
&lt;li>&lt;em>Deprecation policy&lt;/em>&lt;/li>
&lt;li>&lt;em>Kubernetes Enhancement Proposal (KEP) process&lt;/em>&lt;/li>
&lt;li>&lt;em>Upgrade and downgrade policy&lt;/em>&lt;/li>
&lt;li>&lt;em>Cross-component version support skew&lt;/em>&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>API review process&lt;/li>
&lt;li>Conformance test review and management&lt;/li>
&lt;li>Design documentation management&lt;/li>
&lt;li>Deprecation policy management&lt;/li>
&lt;li>Architectural initiative backlog management&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>KEPs that do not have architectural implications or impact are managed by their respective sponsoring SIG(s)&lt;/li>
&lt;li>The release enhancement delivery &lt;a href="https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/enhancements/README.md"
 
 target="_blank" rel="noopener">process&lt;/a>
 that is part of the SIG-Release Release Team &lt;a href="https://github.com/kubernetes/sig-release/blob/master/release-team/README.md"
 
 target="_blank" rel="noopener">subproject&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This sig follows and adheres to the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>

and opts-in to updates and modifications to &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p></description></item><item><title>SIG Auth Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/auth/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/auth/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Auth is responsible for the design, implementation, and maintenance of features in
Kubernetes that control and protect access to the API and other core components. This includes
authentication and authorization, but also encompasses features like auditing and some security
policy (see below).&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>Link to SIG section in &lt;a href="https://github.com/kubernetes/community/blob/master/sigs.yaml#L250"
 
 target="_blank" rel="noopener">sigs.yaml&lt;/a>
&lt;/p>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>Kubernetes authentication, authorization, audit and security policy features. Examples
include:
&lt;ul>
&lt;li>Authentication, authorization and audit interfaces and extension points&lt;/li>
&lt;li>Authentication implementations (service accounts, OIDC, authenticating proxy, webhook,
&amp;hellip;)&lt;/li>
&lt;li>Authorizer implementations (RBAC + default policy, Node + default policy, webhook, &amp;hellip;)&lt;/li>
&lt;li>Security-related admission plugins (NodeRestriction, ServiceAccount, PodSecurityPolicy,
ImagePolicy, etc)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>The mechanisms to protect confidentiality/integrity of API data. Examples include:
&lt;ul>
&lt;li>Capability for encryption at rest&lt;/li>
&lt;li>Capability for secure communication between components&lt;/li>
&lt;li>Ensuring users and components can operate with appropriately scoped permissions&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>Consult with other SIGs and the community on how to apply mechanisms owned by SIG
Auth. Examples include:
&lt;ul>
&lt;li>Review privilege escalation implications of feature and API designs&lt;/li>
&lt;li>Core component authentication &amp;amp; authorization (apiserver, kubelet, controller-manager,
and scheduler)&lt;/li>
&lt;li>Local-storage volume deployment authentication&lt;/li>
&lt;li>Cloud provider authorization policy&lt;/li>
&lt;li>Container runtime streaming (exec/attach/port-forward) authentication&lt;/li>
&lt;li>Best practices for hardening add-ons or other external integrations&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>Reporting of specific vulnerabilities in Kubernetes. Please report using these instructions:
&lt;a href="https://kubernetes.io/security/"
 
 target="_blank" rel="noopener">https://kubernetes.io/security/&lt;/a>
&lt;/li>
&lt;li>General security discussion. Examples of topics that are out of scope for SIG-auth include:
&lt;ul>
&lt;li>Protection of volume data, container ephemeral data, and other non-API data (prefer: sig-storage
and sig-node)&lt;/li>
&lt;li>Container isolation (prefer: sig-node and sig-networking)&lt;/li>
&lt;li>Bug bounty (prefer: product security committee)&lt;/li>
&lt;li>Resource quota (prefer: sig-scheduling)&lt;/li>
&lt;li>Resource availability / DOS protection (prefer: sig-apimachinery, sig-network, sig-node)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This sig follows adheres to the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>

and opts-in to updates and modifications to &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p></description></item><item><title>SIG Autoscaling Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/autoscaling/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/autoscaling/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>Covers development and maintenance of Kubernetes components for automated
scaling in Kubernetes. This includes automated vertical and horizontal
pod autoscaling, initial resource estimation, cluster-proportional system
component autoscaling, and autoscaling of Kubernetes clusters themselves.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Autoscaling-related API objects, such as the HorizontalPodAutoscaler and
VerticalPodAutoscaler&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Autoscaling-related tools, such as the cluster autoscaler,
single-component scaling tools (e.g. pod-nanny), and
cluster-proportional scaling tools&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Ensuring API interfaces (the scale subresource) are available and usable
to enable other SIGs to write autoscalable objects, and enable people to
interact with those interfaces.&lt;/p></description></item><item><title>SIG CLI Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/cli/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/cli/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The Command Line Interface SIG (SIG CLI) is responsible for kubectl and
related tools. This group focuses on general purpose command line tools and
libraries to interface with Kubernetes API&amp;rsquo;s.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>SIG CLI &lt;a href="https://github.com/kubernetes/community/blob/master/sig-cli/README.md"
 
 target="_blank" rel="noopener">README&lt;/a>
&lt;/p>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;p>SIG CLI code include general purpose command line tools and binaries for working
with Kubernetes API&amp;rsquo;s. Examples of these binaries include: &lt;a href="https://github.com/kubernetes/community/blob/master/sig-cli/README.md#subprojects"
 
 target="_blank" rel="noopener">kubectl and kustomize&lt;/a>
.&lt;/p>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;p>SIG CLI is not responsible for command-line tools built and maintained by other
SIGs, such as kubeadm, which is owned by SIG Cluster Lifecycle. SIG CLI is not
responsible for defining the Kubernetes API that it interfaces with. The
Kubernetes API is the responsibility of SIG API Machinery.&lt;/p></description></item><item><title>SIG Cloud Provider Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/cloud-provider/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/cloud-provider/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Cloud Provider’s mission is to simplify, develop, and maintain cloud provider integrations as extensions, or add-ons, to Kubernetes clusters.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;h4 id="areas-of-focus">Areas of Focus&lt;/h4>
&lt;ul>
&lt;li>Cloud provider specific integrations and extension points that are not already covered by a more specific SIG such as storage or networking.&lt;/li>
&lt;li>APIs/interfaces for efficiently provisioning/de-provisioning cloud resources (nodes, routes, load balancers, etc)&lt;/li>
&lt;li>Configuration of cluster components to enable cloud provider integrations&lt;/li>
&lt;li>Testing and testing frameworks to ensure vendor neutrality across all cloud providers&lt;/li>
&lt;/ul>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;p>The SIG offers standardization across cloud-provider-* repos that are owned by the SIG. We establish basic structure and tooling expectations to help new contributors to understand the code and how to contribute.&lt;/p></description></item><item><title>SIG Cluster Lifecycle Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/cluster-lifecycle/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/cluster-lifecycle/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Cluster Lifecycle’s objective is to simplify creation, configuration, upgrade, downgrade, and teardown of Kubernetes clusters and their components.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>The following topics fall under ownership of this SIG:&lt;/p>
&lt;ul>
&lt;li>Improving the Kubernetes user experience for cluster administration.&lt;/li>
&lt;li>Tools that assist in the creation, configuration, upgrade, downgrade, and teardown of Kubernetes control plane components.&lt;/li>
&lt;li>Portable APIs for provisioning, configuration, upgrade/downgrade, and de-provisioning of nodes.&lt;/li>
&lt;li>Tools that assist in management of configuration of Kubernetes components.&lt;/li>
&lt;li>The configuration of core add-ons that are required for cluster bootstrapping.&lt;/li>
&lt;/ul>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>Everything that falls in the scope of the SIG.&lt;/li>
&lt;li>Tools that are provider specific implementation for infrastructure management.&lt;/li>
&lt;li>Core add-ons (e.g. DNS) that are required for cluster bootstrapping.&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>The SIG recommends and verifies compatibility of critical cluster add-ons for networking, network policy, service discovery, etc. The SIG maintains the health check of container images for some add-ons that are required for cluster bootstrapping. While the SIG could provide support to users that have add-on related issues, the SIG can decide to delegate issues to the add-on maintainers or other SIGs.&lt;/li>
&lt;li>The SIG collaborates regularly with SIG Auth in an effort to follow best practices in order to promote secure default clusters.&lt;/li>
&lt;li>The SIG co-owns cloud provider specific code related to cluster and machine provisioning with the respective SIGs for each cloud provider but does not own the cloud controller manager or any other provider specific code.&lt;/li>
&lt;li>The SIG ensures that the Kubernetes &amp;ldquo;release informing&amp;rdquo; and &amp;ldquo;release blocking&amp;rdquo; E2E test jobs that it maintains are in good health.&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>Networking related issues (see &lt;a href="../sig-network"
 
 >sig-network&lt;/a>
).&lt;/li>
&lt;li>User interface, or user experience, issues other than cluster bootstrapping or management (see &lt;a href="../sig-ui"
 
 >sig-ui&lt;/a>
 and &lt;a href="../sig-cli"
 
 >sig-cli&lt;/a>
).&lt;/li>
&lt;li>Node related issues (see &lt;a href="../sig-node"
 
 >sig-node&lt;/a>
).&lt;/li>
&lt;li>Kubernetes control plane issues:
&lt;ul>
&lt;li>Control plane component related issues (see &lt;a href="../sig-api-machinery"
 
 >sig-api-machinery&lt;/a>
 and &lt;a href="../sig-scheduling"
 
 >sig-scheduling&lt;/a>
).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Deployment and lifecycle issues related to user application deployments (see &lt;a href="../sig-apps"
 
 >sig-apps&lt;/a>
).&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This SIG adheres to the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>

and opts-in to updates and modifications to &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p></description></item><item><title>SIG Contributor Experience Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/contributor-experience/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/contributor-experience/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The &lt;a href="https://groups.google.com/forum/#!forum/kubernetes-sig-contribex"
 
 target="_blank" rel="noopener">Contributor Experience Special Interest Group&lt;/a>
 (SIG) is responsible for improving the experience of those who upstream contribute to the Kubernetes project. We do this by creating, and maintaining programs and processes that promote community health and reduce project friction, while retiring those programs and processes that don&amp;rsquo;t. Being conscientious of our contributor base is critical to scaling the project, growing the ecosystem, and helping the project succeed.&lt;/p>
&lt;p>We do this by listening - whether it’s through our roadshows to SIG meetings, surveys, data, or &lt;a href="https://github.com/kubernetes/community/issues"
 
 target="_blank" rel="noopener">GitHub issues&lt;/a>
, we take in the feedback and turn it into our &lt;a href="https://github.com/orgs/kubernetes/projects/1"
 
 target="_blank" rel="noopener">project list&lt;/a>
. We build a welcoming and inclusive community of contributors by giving them places to be heard and productive.&lt;/p></description></item><item><title>SIG Docs Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/docs/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/docs/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Docs publishes Kubernetes documentation on kubernetes.io. Kubernetes documentation includes:&lt;/p>
&lt;ul>
&lt;li>Documentation of the core Kubernetes APIs&lt;/li>
&lt;li>Core Kubernetes architecture&lt;/li>
&lt;li>CLI tools shipped with the Kubernetes release&lt;/li>
&lt;/ul>
&lt;p>Responsibility for creating feature documentation belongs to the developers and SIGs creating each feature. This includes task-driven documentation for the feature itself and conceptual documentation about the feature.&lt;/p>
&lt;p>SIG Docs sets standards for feature documentation, provides clear paths for docs contribution, and &lt;a href="https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/docs"
 
 target="_blank" rel="noopener">coordinates documentation updates&lt;/a>
 during quarterly releases.&lt;/p></description></item><item><title>SIG etcd Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/etcd/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/etcd/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>Owns the etcd project and how it is used by Kubernetes.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>Development of &lt;a href="https://github.com/etcd-io/etcd"
 
 target="_blank" rel="noopener">etcd&lt;/a>
 and other repositories under &lt;a href="https://github.com/etcd-io"
 
 target="_blank" rel="noopener">etcd-io organization&lt;/a>
&lt;/li>
&lt;li>Maintenance of &lt;a href="https://github.com/kubernetes/kubernetes/tree/master/cluster/images/etcd"
 
 target="_blank" rel="noopener">etcd image&lt;/a>
 packaged with Kubernetes&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>Specifying, testing and improving the implicit Kubernetes-ETCD Contract, which includes storage requirements, write and delete requirements, read requirements and watch requirements.&lt;/li>
&lt;li>Release process of etcd and other binaries belonging to &lt;a href="https://github.com/etcd-io"
 
 target="_blank" rel="noopener">etcd-io organization&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>Structure of data stored in etcd by Kubernetes components is owned by SIG API Machinery&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This SIG follows the Roles and Organization Management outlined in [sig-governance]
and opts-in to updates and modifications to [sig-governance].&lt;/p></description></item><item><title>SIG Instrumentation Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/instrumentation/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/instrumentation/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>Owns best practices for cluster observability through metrics, logging, events,
and traces across all Kubernetes components and development of components
required for all Kubernetes clusters (eg. klog, kube-state-metrics).&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>SIG-Instrumentation revolves around the process of instrumenting and exposing
observability signals.&lt;/p>
&lt;p>The act of instrumenting components not owned by SIG-Instrumentation is out of
scope, however SIG-Instrumentation is there to advise any contributors with
instrumentation decisions.&lt;/p>
&lt;p>As well as giving advice in regards to instrumentation, SIG-Instrumentation
coordinates metric requirements of different SIGs for other components through
finding common APIs (such as the resource/core, custom and external metrics
APIs).&lt;/p></description></item><item><title>SIG K8s Infra Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/k8s-infra/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/k8s-infra/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The successful migration of ownership and management of all Kubernetes
project infrastructure from the google.com GCP Organization
(or other IaaS vendor-owned locations) to the CNCF, such that the Kubernetes
project is able to sustainably operate itself without direct assistance from
external vendors or entities.&lt;/p>
&lt;p>In other words, we seek to eradicate usage of the phrase &amp;ldquo;oh that&amp;rsquo;s
something that only an employee of Vendor X can do, we&amp;rsquo;re blocked until
they respond.&amp;rdquo;&lt;/p></description></item><item><title>SIG Multicluster Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/multicluster/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/multicluster/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The scope of SIG Multicluster is limited to the following subprojects:&lt;/p>
&lt;ul>
&lt;li>The &lt;a href="https://github.com/kubernetes/cluster-registry"
 
 target="_blank" rel="noopener">cluster-registry&lt;/a>
&lt;/li>
&lt;li>Kubernetes Cluster Federation:
&lt;ul>
&lt;li>&lt;a href="https://github.com/kubernetes-sigs/kubefed"
 
 target="_blank" rel="noopener">KubeFed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes/federation"
 
 target="_blank" rel="noopener">Federation v1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://github.com/GoogleCloudPlatform/k8s-multicluster-ingress"
 
 target="_blank" rel="noopener">Kubemci&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>See &lt;a href="https://github.com/kubernetes/community/blob/master/sig-multicluster/README.md"
 
 target="_blank" rel="noopener">SIG README&lt;/a>
.&lt;/p>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;p>SIG Multicluster code and binaries are limited to those from one of the SIG subprojects.&lt;/p>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>Consult with other SIGs and the community on how the in-scope mechanisms
should work and integrate with other areas of the wider Kubernetes ecosystem&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>Software that creates or manages the lifecycle of Kubernetes clusters&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This sig follows adheres to the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>

and opts-in to updates and modifications to &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p></description></item><item><title>SIG Network Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/network/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/network/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Network is responsible for the components, interfaces, and APIs which expose networking capabilities to Kubernetes
users and workloads. SIG Network also provides some reference implementations of these APIs, for
example kube-proxy as a reference implementation of the Service API.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>The following topics fall under ownership of this SIG:&lt;/p>
&lt;ul>
&lt;li>Networking control plane and data paths.&lt;/li>
&lt;li>Network service abstractions.&lt;/li>
&lt;li>Service discovery (DNS).&lt;/li>
&lt;li>Service load balancing (L4, L7).&lt;/li>
&lt;li>Network security and identity.&lt;/li>
&lt;li>Cluster connectivity.&lt;/li>
&lt;li>Cross-cutting concerns such as scalability.&lt;/li>
&lt;li>Metrics and monitoring associated with networking components.&lt;/li>
&lt;li>Multi-cluster networking (shared responsibility with &lt;a href="https://github.com/kubernetes/community/blob/master/sig-multicluster/README.md"
 
 target="_blank" rel="noopener">sig-multicluster&lt;/a>
).&lt;/li>
&lt;/ul>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>Services
&lt;ul>
&lt;li>APIs for defining and grouping network endpoints (i.e. &lt;a href="https://kubernetes.io/docs/concepts/services-networking/endpoint-slices/"
 
 target="_blank" rel="noopener">EndpointSlices&lt;/a>
, or the older &lt;a href="https://kubernetes.io/docs/concepts/services-networking/service/#endpoints"
 
 target="_blank" rel="noopener">Endpoints&lt;/a>
 API)&lt;/li>
&lt;li>APIs for defining L3/4 loadbalancing (i.e. &lt;a href="https://kubernetes.io/docs/concepts/services-networking/service/"
 
 target="_blank" rel="noopener">Service&lt;/a>
, &lt;a href="https://gateway-api.sigs.k8s.io/"
 
 target="_blank" rel="noopener">Gateway API&lt;/a>
)&lt;/li>
&lt;li>Reference implementations (i.e. &lt;a href="https://kubernetes.io/docs/concepts/overview/components/#kube-proxy"
 
 target="_blank" rel="noopener">kube-proxy&lt;/a>
).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Ingress
&lt;ul>
&lt;li>APIs for defining ingress loadbalancing (i.e. &lt;a href="https://kubernetes.io/docs/concepts/services-networking/ingress/"
 
 target="_blank" rel="noopener">Ingress&lt;/a>
, &lt;a href="https://gateway-api.sigs.k8s.io/"
 
 target="_blank" rel="noopener">Gateway API&lt;/a>
, &lt;a href="https://github.com/kubernetes-sigs/gateway-api-inference-extension"
 
 target="_blank" rel="noopener">Gateway API Inference Extension&lt;/a>
)&lt;/li>
&lt;li>API Implementations (i.e. &lt;a href="https://github.com/kubernetes/ingress-nginx/"
 
 target="_blank" rel="noopener">ingress-nginx&lt;/a>
, &lt;a href="https://github.com/kubernetes-sigs/ingate"
 
 target="_blank" rel="noopener">InGate&lt;/a>
)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Network Policy
&lt;ul>
&lt;li>APIs for defining network policies (i.e. &lt;a href="https://kubernetes.io/docs/concepts/services-networking/network-policies/"
 
 target="_blank" rel="noopener">NetworkPolicy&lt;/a>
, &lt;a href="https://network-policy-api.sigs.k8s.io/api-overview/#the-adminnetworkpolicy-resource"
 
 target="_blank" rel="noopener">AdminNetworkPolicy&lt;/a>
, &lt;a href="https://network-policy-api.sigs.k8s.io/api-overview/#the-baselineadminnetworkpolicy-resource"
 
 target="_blank" rel="noopener">BaselineAdminNetworkPolicy&lt;/a>
)&lt;/li>
&lt;li>Reference implementations (i.e. &lt;a href="https://github.com/kubernetes-sigs/kube-network-policies"
 
 target="_blank" rel="noopener">kube-network-policies&lt;/a>
)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cluster DNS.&lt;/li>
&lt;li>Integration points with networking implementations (i.e. &lt;a href="https://kubernetes.io/docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-network-model"
 
 target="_blank" rel="noopener">Container Network Interface (CNI)&lt;/a>
).&lt;/li>
&lt;li>&lt;a href="https://kubernetes.io/docs/concepts/architecture/cri/"
 
 target="_blank" rel="noopener">Container Runtime Interface (CRI)&lt;/a>
 (With &lt;a href="https://github.com/kubernetes/community/tree/master/sig-node"
 
 target="_blank" rel="noopener">sig-node&lt;/a>
).&lt;/li>
&lt;li>Cloud provider network integrations (With &lt;a href="https://github.com/kubernetes/community/tree/master/sig-cloud-provider"
 
 target="_blank" rel="noopener">sig-cloud-provider&lt;/a>
).&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>The &lt;a href="https://kubernetes.io/docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-network-model"
 
 target="_blank" rel="noopener">CNI&lt;/a>
 specification itself, which is maintained outside the Kubernetes project&lt;/li>
&lt;li>Particular implementations of the &lt;a href="https://kubernetes.io/docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-network-model"
 
 target="_blank" rel="noopener">CNI&lt;/a>
 specification&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This sig adheres to the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>

and opts-in to updates and modifications to &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p></description></item><item><title>SIG Node Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/node/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/node/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Node is responsible for the components that support the controlled
interactions between pods and host resources. We manage the lifecycle of pods
that are scheduled to a node. We focus on enabling a broad set of workload
types, including workloads with hardware specific or performance sensitive requirements. We maintain
isolation boundaries between pods on a node, as well as the pod and the host. We
aim to continuously improve node reliability.&lt;/p></description></item><item><title>SIG Release Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/release/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/release/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;ul>
&lt;li>Production of Kubernetes releases on a reliable schedule&lt;/li>
&lt;li>Ensure there is a consistent group of community members in place to support the release process across time&lt;/li>
&lt;li>Provide guidance and tooling to facilitate the production of automated releases&lt;/li>
&lt;li>Serve as a tightly integrated partner with other SIGs to empower SIGs to integrate their repositories into the release process&lt;/li>
&lt;/ul>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;ul>
&lt;li>Ensuring quality Kubernetes releases
&lt;ul>
&lt;li>Defining and staffing release roles to manage the resolution of release blocking criteria&lt;/li>
&lt;li>Defining and driving development processes (e.g. merge queues, cherrypicks) and release processes
(e.g. burndown meetings, cutting pre-releases) with the intent of meeting the release schedule&lt;/li>
&lt;li>Managing the creation of release specific artifacts, including:
&lt;ul>
&lt;li>Code branches&lt;/li>
&lt;li>Binary artifacts&lt;/li>
&lt;li>Container Images&lt;/li>
&lt;li>Release notes&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Continually improving release and development processes
&lt;ul>
&lt;li>Working closely with SIG Contributor Experience to define and build tools to facilitate release process (e.g. dashboards)&lt;/li>
&lt;li>Working closely with SIG Testing to determine and implement tests, automation, and labeling required for stable releases&lt;/li>
&lt;li>Working with downstream communities responsible for packaging Kubernetes releases&lt;/li>
&lt;li>Working with other SIGs to agree upon the responsibilities of their SIG with respect to the release&lt;/li>
&lt;li>Defining and collecting metrics related to the release in order to measure progress over each release&lt;/li>
&lt;li>Facilitating release retrospectives&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Collaborating with downstream communities which build artifacts from Kubernetes releases&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;h4 id="support">Support&lt;/h4>
&lt;p>SIG Release itself is not responsible for end user support or creation of patches for support streams. There are support forums for end users to ask questions and report bugs, subject matter experts in other SIGs triage and address issues and when necessary mark bug fixes for inclusion in a patch release.&lt;/p></description></item><item><title>SIG Scalability Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/scalability/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/scalability/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Scalability&amp;rsquo;s primary responsibilities are to define and drive scalability
goals for Kubernetes. This involves defining, testing and measuring performance and
scalability related Service Level Indicators (SLIs) and ensuring that every
Kubernetes release meets Service Level Objectives (SLOs) built on top of those
SLIs.&lt;/p>
&lt;p>We also coordinate and contribute to general system-wide scalability and
performance improvements (that don&amp;rsquo;t fall into the charter of another individual
SIG) by driving large architectural changes and finding bottlenecks, as well as
provide consultations about any scalability and performance related aspects of
Kubernetes.&lt;/p></description></item><item><title>SIG Scheduling Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/scheduling/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/scheduling/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Scheduling is responsible for the components that make Pod placement decisions.
We build Kubernetes schedulers and scheduling features for Pods. We design and
implement features that allows users to customize placement of Pods on the nodes
of a cluster. These features include those that improve reliability of workloads,
more efficient use of cluster resources, and/or enforces placement policies.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>SIG &lt;a href="https://github.com/kubernetes/community/tree/master/sig-scheduling"
 
 target="_blank" rel="noopener">readme&lt;/a>
&lt;/p>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>Scheduling related features (e.g. Node Affinity)&lt;/li>
&lt;li>Kube-scheduler performance and scalability (with &lt;a href="../sig-scalability"
 
 >sig-scalability&lt;/a>
)&lt;/li>
&lt;li>Kube-scheduler reliability (problem detection and remediation)&lt;/li>
&lt;li>Pod scheduling APIs (with &lt;a href="../sig-api-machinery"
 
 >sig-api-machinery&lt;/a>
)&lt;/li>
&lt;li>Node resource management (with &lt;a href="../sig-node"
 
 >sig-node&lt;/a>
)&lt;/li>
&lt;li>Cluster resource management (with &lt;a href="../sig-node"
 
 >sig-node&lt;/a>
)&lt;/li>
&lt;li>Pod scheduling policies (with &lt;a href="../sig-auth"
 
 >sig-auth&lt;/a>
)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>This is NOT&lt;/strong> a list of specific code locations,
or projects. For those refer to &lt;a href="https://github.com/kubernetes/community/blob/master/sig-scheduling/README.md#subprojects"
 
 target="_blank" rel="noopener">SIG Subprojects&lt;/a>
.&lt;/p></description></item><item><title>SIG Security Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/security/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/security/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Security covers horizontal security initiatives for the Kubernetes project, including regular security audits, the vulnerability management process, cross-cutting security documentation, and security community management. As a process-oriented SIG, it does not directly own Kubernetes component code. This SIG replaces the Security Audit Working Group. Instead, SIG Security focuses on improving the security of the Kubernetes project across all components.&lt;/p>
&lt;p>This SIG grew out of the &lt;a href="https://github.com/kubernetes/sig-security/tree/main/sig-security-external-audit/security-audit-2019"
 
 target="_blank" rel="noopener">Third-Party Security Audit Working Group&lt;/a>
, which managed each recurrent Third-Party Security Audit over the course of the audit’s lifecycle. The Working Group worked closely with selected vendors, the Product Security Committee, and the CNCF. It created the RFP, selected the vendors, and managed the vendors’ engagement with other SIGs and subject matter experts.&lt;/p></description></item><item><title>SIG Storage Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/storage/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/storage/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Storage is responsible for ensuring that different types of file and block storage
(whether ephemeral or persistent, local or remote) are available wherever a container is
scheduled (including provisioning/creating, attaching, mounting, unmounting, detaching,
and deleting of volumes), storage capacity management (container ephemeral storage
usage, volume resizing, etc.), influencing scheduling of containers based on storage
(data gravity, availability, etc.), and generic operations on storage (snapshoting, etc.).&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;p>Some notable examples of features owned by SIG Storage:&lt;/p></description></item><item><title>SIG Testing Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/testing/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/testing/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG Testing is interested in effective testing of Kubernetes and automating
away project toil. We focus on creating and running tools and infrastructure
that make it easier for the community to write and run tests, and to
contribute, analyze and act upon test results.&lt;/p>
&lt;p>We define the overall testing standards, strategies and style guidelines for
the project. Each SIG is responsible for determining how those
guidelines apply to their work and implementing those parts
which make sense.&lt;/p></description></item><item><title>SIG UI Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/ui/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/ui/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>SIG-UI covers GUI-related aspects of the Kubernetes project. Efforts are centered around the Kubernetes Dashboard: a general purpose, web-based UI for Kubernetes clusters. It allows users to manage applications running in the cluster and troubleshoot them, as well as manage the cluster itself.&lt;/p>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>&lt;a href="https://github.com/kubernetes/dashboard"
 
 target="_blank" rel="noopener">Kubernetes Dashboard&lt;/a>
 (Archived)&lt;/li>
&lt;li>&lt;a href="https://github.com/kubernetes-sigs/headlamp"
 
 target="_blank" rel="noopener">Headlamp&lt;/a>
&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>Cutting a new release of the Dashboard&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of Scope&lt;/h3>
&lt;p>Tools that contributors use in support of the project (eg. Prow, Test Grid)&lt;/p></description></item><item><title>SIG Windows Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/windows/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/sigs/windows/charter/</guid><description>&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The scope of SIG Windows is the operation of Kubernetes on the Windows operating system.
This includes maintaining the interface between Kubernetes and containers on Windows
as well as maintaining the pieces of Kubernetes (e.g. the kube-proxy) where there is a
Windows specific implementation.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;h4 id="code-binaries-and-services">Code, Binaries and Services&lt;/h4>
&lt;ul>
&lt;li>Windows specific code in all parts of the codebase.&lt;/li>
&lt;li>Testing of Windows specific features and clusters&lt;/li>
&lt;/ul>
&lt;h4 id="cross-cutting-and-externally-facing-processes">Cross-cutting and Externally Facing Processes&lt;/h4>
&lt;ul>
&lt;li>Work with other SIGs on areas where Windows and Linux (and possibly other OSes in the future) deviate from one another in terms of functionality.&lt;/li>
&lt;/ul>
&lt;h2 id="roles-and-organization-management">Roles and Organization Management&lt;/h2>
&lt;p>This sig follows adheres to the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>

and opts-in to updates and modifications to &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p></description></item><item><title>Signing release artifacts</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3031/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3031/</guid><description>&lt;h1 id="kep-3031-signing-release-artifacts">KEP-3031: Signing release artifacts&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-implementation"
 
 >Alpha implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-graduation"
 
 >Beta graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Simplified Scheduler Config</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2891/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2891/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2891-simplified-scheduler-config">KEP-2891: Simplified Scheduler Config&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Size memory backed volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1967/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1967/</guid><description>&lt;h1 id="kep-1967-sizable-memory-backed-volumes">KEP-1967: Sizable memory backed volumes&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-this-feature-be-enabled--disabled-in-a-live-cluster"
 
 >How can this feature be enabled / disabled in a live cluster?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#does-enabling-the-feature-change-any-default-behavior"
 
 >Does enabling the feature change any default behavior?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-the-feature-be-disabled-once-it-has-been-enabled-ie-can-we-roll-back-the-enablement"
 
 >Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-happens-if-we-reenable-the-feature-if-it-was-previously-rolled-back"
 
 >What happens if we reenable the feature if it was previously rolled back?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-tests-for-feature-enablementdisablement"
 
 >Are there any tests for feature enablement/disablement?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-a-rollout-fail-can-it-impact-already-running-workloads"
 
 >How can a rollout fail? Can it impact already running workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-specific-metrics-should-inform-a-rollback"
 
 >What specific metrics should inform a rollback?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#were-upgrade-and-rollback-tested-was-the-upgrade-downgrade-upgrade-path-tested"
 
 >Were upgrade and rollback tested? Was the upgrade-&amp;gt;downgrade-&amp;gt;upgrade path tested?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#is-the-rollout-accompanied-by-any-deprecations-andor-removals-of-features-apis-fields-of-api-types-flags-etc"
 
 >Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-can-an-operator-determine-if-the-feature-is-in-use-by-workloads"
 
 >How can an operator determine if the feature is in use by workloads?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-slis-service-level-indicators-an-operator-can-use-to-determine-the-health-of-the-service"
 
 >What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-can-someone-using-this-feature-know-that-it-is-working-for-their-instance"
 
 >How can someone using this feature know that it is working for their instance?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-the-reasonable-slos-service-level-objectives-for-the-above-slis"
 
 >What are the reasonable SLOs (Service Level Objectives) for the above SLIs?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#are-there-any-missing-metrics-that-would-be-useful-to-have-to-improve-observability-of-this-feature"
 
 >Are there any missing metrics that would be useful to have to improve observability of this feature?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#does-this-feature-depend-on-any-specific-services-running-in-the-cluster"
 
 >Does this feature depend on any specific services running in the cluster?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-api-calls"
 
 >Will enabling / using this feature result in any new API calls?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-introducing-new-api-types"
 
 >Will enabling / using this feature result in introducing new API types?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-any-new-calls-to-the-cloud-provider"
 
 >Will enabling / using this feature result in any new calls to the cloud provider?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-size-or-count-of-the-existing-api-objects"
 
 >Will enabling / using this feature result in increasing size or count of the existing API objects?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-increasing-time-taken-by-any-operations-covered-by-existing-slisslos"
 
 >Will enabling / using this feature result in increasing time taken by any operations covered by [existing SLIs/SLOs]?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#will-enabling--using-this-feature-result-in-non-negligible-increase-of-resource-usage-cpu-ram-disk-io--in-any-components"
 
 >Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, &amp;hellip;) in any components?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#can-enabling--using-this-feature-result-in-resource-exhaustion-of-some-node-resources-pids-sockets-inodes-etc"
 
 >Can enabling / using this feature result in resource exhaustion of some node resources (PIDs, sockets, inodes, etc.)?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#how-does-this-feature-react-if-the-api-server-andor-etcd-is-unavailable"
 
 >How does this feature react if the API server and/or etcd is unavailable?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-are-other-known-failure-modes"
 
 >What are other known failure modes?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-steps-should-be-taken-if-slos-are-not-being-met-to-determine-the-problem"
 
 >What steps should be taken if SLOs are not being met to determine the problem?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Skip attach for non-attachable CSI volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/770/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/770/</guid><description>&lt;h1 id="skip-attach-for-non-attachable-csi-volumes">Skip attach for non-attachable CSI volumes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This document presents a design to be able to skip the attach/detach flow in
Kubernetes for CSI plugins that don&amp;rsquo;t support attaching.&lt;/p>
&lt;p>The detailed design was originally implemented as a &lt;a href="https://github.com/kubernetes/design-proposals-archive/blob/master/storage/container-storage-interface-skip-attach.md"
 
 target="_blank" rel="noopener">design
proposal&lt;/a>
.&lt;/p>
&lt;p>This KEP contains details that are missing from the design proposal.&lt;/p></description></item><item><title>Skip SELinux relabeling of volumes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1710/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1710/</guid><description>&lt;h1 id="speed-up-selinux-volume-relabeling-using-mounts">Speed up SELinux volume relabeling using mounts&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#selinux-intro"
 
 >SELinux intro&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#selinux-label-assignment"
 
 >SELinux label assignment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volume-mounting"
 
 >Volume mounting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#selinux-support-in-kubernetes-volumes"
 
 >SELinux support in Kubernetes volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#privileged-containers"
 
 >Privileged containers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csidriver"
 
 >&lt;code>CSIDriver&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#podsecuritycontext"
 
 >&lt;code>PodSecurityContext&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#conflicts-with-other-pods"
 
 >Conflicts with other Pods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#single-node-conflicts"
 
 >Single-node conflicts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multiple-node-conflicts"
 
 >Multiple-node conflicts&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#csidriver-examples"
 
 >&lt;code>CSIDriver&lt;/code> examples&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-default-pod"
 
 >Story 1: default Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-mount-with--o-context-option"
 
 >Story 2: Mount with &lt;code>-o context&lt;/code> option&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-cluster-upgrade"
 
 >Story 3: cluster upgrade&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#csi-driver-considerations"
 
 >CSI driver considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#required-kubelet-changes"
 
 >Required kubelet changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volume-reconstruction"
 
 >Volume Reconstruction&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#selinuxcontroller"
 
 >SELinuxController&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-phases"
 
 >Implementation phases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1"
 
 >Phase 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2"
 
 >Phase 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3"
 
 >Phase 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#fsgroupchangepolicy-approach"
 
 >&lt;code>FSGroupChangePolicy&lt;/code> approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#change-container-runtime"
 
 >Change container runtime&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#move-selinux-label-management-to-kubelet"
 
 >Move SELinux label management to kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#merge-fsgroupchangepolicy-and-selinuxrelabelpolicy"
 
 >Merge &lt;code>FSGroupChangePolicy&lt;/code> and &lt;code>SELinuxRelabelPolicy&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implement-kubelet-admission"
 
 >Implement kubelet admission&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mount-all-volumes-with--o-context-without-any-selinuxchangepolicy"
 
 >Mount &lt;strong>all&lt;/strong> volumes with &lt;code>-o context&lt;/code>, without any &lt;code>SELinuxChangePolicy&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#make-selinuxmount-opt-in-and-not-opt-out"
 
 >Make SELinuxMount opt-in and not opt-out&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-opt-in-or-opt-out-globally-via-kubelet-flags"
 
 >Allow opt-in (or opt-out) globally via kubelet flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-state-metrics"
 
 >kube-state-metrics&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#promql"
 
 >PromQL&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Skip Volume Ownership Change</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1682/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1682/</guid><description>&lt;h1 id="kep-1682-allow-csidriver-opt-in-to-volume-ownership-and-permission-changes">KEP-1682: Allow CSIDriver opt-in to volume ownership and permission changes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Skip Volume Ownership Change</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/695/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/695/</guid><description>&lt;h1 id="skip-volume-ownership-change">Skip Volume Ownership Change&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring"
 
 >Monitoring&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> (R) Production readiness review completed&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Currently before a volume is bind-mounted inside a container the permissions on
that volume are changed recursively to the provided fsGroup value. This change
in ownership can take an excessively long time to complete, especially for very
large volumes (&amp;gt;=1TB) as well as a few other reasons detailed in &lt;a href="#motivation"
 
 >Motivation&lt;/a>
.
To solve this issue we will add a new field called &lt;code>pod.Spec.SecurityContext.FSGroupChangePolicy&lt;/code> and
allow the user to specify how they want the permission and ownership change for volumes used by pod to happen.&lt;/p></description></item><item><title>Slack Guidelines</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/slack/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/slack/</guid><description>&lt;p>Slack serves as the main communication platform for the Kubernetes community
outside of the mailing lists. It&amp;rsquo;s important that conversations stay on topic in
each channel, and that everyone abides by the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct"
 
 >Code of Conduct&lt;/a>
. There are
over 200,000 members who should all expect to have a positive experience. You
are a part of building and keeping a positive community.&lt;/p>
&lt;p>Chat is searchable and public. It&amp;rsquo;s best not to make comments that you would not
say on a video recording or in another public space. Please be courteous to
others.&lt;/p></description></item><item><title>SMT aware cpumanager policy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2625/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2625/</guid><description>&lt;h1 id="cpu-manager-extension-to-reject-non-smt-aligned-workload">cpu manager extension to reject non SMT-aligned workload&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#latency-sensitive-applications-runtime-guarantees"
 
 >Latency-sensitive applications runtime guarantees&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#improve-the-density-of-running-containers"
 
 >Improve the density of running containers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-strategy-of-full-pcpus-only-cpu-manager-policy-option"
 
 >Implementation strategy of full-pcpus-only CPU Manager policy option&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-accounting"
 
 >Resource Accounting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan-1"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria-of-options"
 
 >Graduation Criteria of Options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#graduation-of-options-to-beta-quality-non-hidden"
 
 >Graduation of Options to &lt;code>Beta-quality&lt;/code> (non-hidden)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-of-options-from-beta-quality-to-ga-quality"
 
 >Graduation of Options from &lt;code>Beta-quality&lt;/code> to &lt;code>G.A-quality&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#removal-of-the-cpumanagerpolicyalphaoptions-and-cpumanagerpolicybetaoptions-feature-gates"
 
 >Removal of the CPUManagerPolicyAlphaOptions and CPUManagerPolicyBetaOptions feature gates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#add-extra-resources"
 
 >Add extra resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-a-new-unit-for-cpu-resources"
 
 >Add a new unit for CPU resources&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-extension-obsolete-recorded-for-the-sake-of-history"
 
 >Future extension (obsolete, recorded for the sake of history)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#allowing-external-agents-to-detect-the-cpumanager-behaviour"
 
 >Allowing external agents to detect the cpumanager behaviour&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#emulating-non-smt-on-smt-systems"
 
 >Emulating Non-SMT on SMT systems&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Snapshottable API server cache</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4988/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4988/</guid><description>&lt;h1 id="kep-4988-snapshottable-api-server-cache">KEP-4988 Snapshottable API server cache&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#serving-list-from-snapshots"
 
 >Serving list from snapshots&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#watch-cache-compaction"
 
 >Watch cache compaction&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cache-inconsistency-detection-mechanism"
 
 >Cache Inconsistency Detection Mechanism&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#snapshot-memory-overhead"
 
 >Snapshot memory overhead&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#consistency-checking-overhead"
 
 >Consistency checking overhead&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#snapshotting-algorithm"
 
 >Snapshotting algorithm&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#hasing-algorithm"
 
 >Hasing algorithm&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Split Image Filesystem</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4191/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4191/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4191-split-image-filesystem">KEP-4191: Split Image Filesystem&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possible-extensions-in-post-alpha"
 
 >Possible Extensions in Post Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-deployment-options"
 
 >User Deployment Options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#current-deployment-options"
 
 >Current Deployment Options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#image-file-system-imagefs-and-nodefs-kubelet-same"
 
 >Image File system (ImageFs) and NodeFs (kubelet) same&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#nodefs-and-image-filesystem-imagefs-separated"
 
 >NodeFs and Image Filesystem (ImageFs) separated&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#new-deployment-options"
 
 >New Deployment Options&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#node-and-writeable-layer-on-same-disk-while-images-stored-on-separate-disk"
 
 >Node And Writeable Layer on same disk while Images stored on separate disk&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#comment-on-future-extensions"
 
 >Comment on Future Extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri"
 
 >CRI&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stats-summary"
 
 >Stats Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stats-provider"
 
 >Stats Provider&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cadvisor-stats-provider"
 
 >CAdvisor Stats Provider&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-stats-provider"
 
 >CRI Stats Provider&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#eviction-manager"
 
 >Eviction Manager&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#end-to-end-tests"
 
 >End-to-End tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-milestone-1-release-the-cri-api-and-kubelet-changes"
 
 >Alpha Milestone #1 [Release the CRI API and kubelet changes]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-milestone-2-cri-o-e2e-tests-and-cri-tools"
 
 >Alpha Milestone #2 [CRI-O, E2E Tests and CRI tools]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha-to-beta-graduation"
 
 >Alpha To Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-disk-stats-in-cri"
 
 >kubelet Disk Stats in CRI&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#add-container-filesystem-usage-to-image-filesystem-array"
 
 >Add container filesystem usage to image filesystem array&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Split Stdout and Stderr Log Stream of Container</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3288/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3288/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3288-split-stdout-and-stderr-log-stream-of-container">KEP-3288: Split Stdout and Stderr Log Stream of Container&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changes-of-kube-apiserver"
 
 >Changes of kube-apiserver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-of-kubelet"
 
 >Changes of kubelet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-of-kubectl"
 
 >Changes of kubectl&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Split UnCoreCache Toplogy Awareness in CPU Manager</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4800/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4800/</guid><description>&lt;h1 id="kep-4800-split-uncorecache-toplogy-awareness-in-cpu-manager">KEP-4800: Split UncoreCache Toplogy Awareness in CPU Manager&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#stable"
 
 >Stable&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Stale Controller Handling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5647/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5647/</guid><description>&lt;h1 id="kep-5647-stale-controller-detection-and-mitigation">KEP-5647: Stale Controller Detection and Mitigation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#informer-and-cache-update"
 
 >Informer and Cache Update&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#staleness-mitigation-in-controllers"
 
 >Staleness Mitigation in Controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#circuit-breaking-pattern-in-controllers"
 
 >Circuit Breaking Pattern in Controllers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Standard for communicating a local registry</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1755/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1755/</guid><description/></item><item><title>Standard Topology Labels</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1659/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1659/</guid><description>&lt;h1 id="kep-1659-standard-topology-labels">KEP-1659: Standard Topology Labels&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#reserve-a-label-prefix"
 
 >Reserve a label prefix&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defining-the-meaning-of-existing-labels"
 
 >Defining the meaning of existing labels&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#redefining-kubernetesiohostname"
 
 >Redefining kubernetes.io/hostname&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#defining-a-third-key-or-not"
 
 >Defining a third key (or not)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#followup-work-or-optionally-part-of-this"
 
 >Followup work (or optionally part of this)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Kubernetes has always taken the position that &amp;ldquo;topology is arbitrary&amp;rdquo;, and
designs dealing with topology have had to take that into account. Even so, the
project has two commonly assumed labels - &lt;code>topology.kubernetes.io/region&lt;/code> and
&lt;code>topology.kubernetes.io/zone&lt;/code> - which are used in many components, generally
hard-coded and not extensible. Those labels have relatively well understood
meanings, and (so far) have been sufficient to represent what most people need.&lt;/p></description></item><item><title>standard-application-protocols</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3726/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3726/</guid><description>&lt;h1 id="kep-3726-standard-application-protocols">KEP-3726: Standard Application Protocols&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-standard-protocols"
 
 >New Standard Protocols&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adding-new-protocols"
 
 >Adding new protocols&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#followup-work"
 
 >Followup work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation-change"
 
 >Documentation change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>There are cases where implementations implement different things for the same application protocol names. That has already caused issues for certain implementations to interoperate, with the possibility of more in the future. (See the example with GKE and Istio under &lt;a href="#motivation"
 
 >Motivation&lt;/a>
)&lt;/p></description></item><item><title>Standardize Conditions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1623/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1623/</guid><description>&lt;h1 id="kep-1623-standardize-conditions">KEP-1623: Standardize Conditions.&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#noteworthy-choices"
 
 >Noteworthy choices&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR): &lt;a href="https://github.com/kubernetes/enhancements/issues/1623"
 
 target="_blank" rel="noopener">https://github.com/kubernetes/enhancements/issues/1623&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;!--
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
-->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>While many Kubernetes APIs have &lt;code>.status.conditions&lt;/code>, the schema of &lt;code>condition&lt;/code> varies a lot between them.
There is very little commonality at the level of serialization, proto-encoding, and required vs optional.
Conditions are central enough to the API to make a common golang type with a fixed schema.
The schema can be a strong recommendation to all API authors.&lt;/p></description></item><item><title>StatefulSet Slice</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3335/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3335/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3335-statefulset-start-ordinal">KEP-3335: StatefulSet Start Ordinal&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >E2E tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternative-api-changes"
 
 >Alternative API changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-without-any-api-changes"
 
 >Alternatives without any API changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Stay on supported go versions</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3744/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3744/</guid><description>&lt;h1 id="kep-3744-stay-on-supported-go-versions">KEP-3744: Stay on supported go versions&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#request-the-go-team-backport-security-fixes-to-more-than-two-minor-versions"
 
 >Request the go team backport security fixes to more than two minor versions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#maintain-a-custom-patched-version-of-older-go-minor-versions-with-security-fix-backports"
 
 >Maintain a custom patched version of older go minor versions with security fix backports&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Storage Capacity Constraints for Pod Scheduling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1472/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1472/</guid><description>&lt;h1 id="storage-capacity-constraints-for-pod-scheduling">Storage Capacity Constraints for Pod Scheduling&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ephemeral-pmem-volume-for-redis-or-memcached"
 
 >Ephemeral PMEM volume for Redis or memcached&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#different-lvm-configurations"
 
 >Different LVM configurations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#network-attached-storage"
 
 >Network attached storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#custom-schedulers"
 
 >Custom schedulers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#caching-remaining-capacity-via-the-api-server"
 
 >Caching remaining capacity via the API server&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gathering-capacity-information"
 
 >Gathering capacity information&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-scheduling"
 
 >Pod scheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csistoragecapacity"
 
 >CSIStorageCapacity&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-local-storage"
 
 >Example: local storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-affect-of-storage-classes"
 
 >Example: affect of storage classes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-network-attached-storage"
 
 >Example: network attached storage&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#csidriverspecstoragecapacity"
 
 >CSIDriver.spec.storageCapacity&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#updating-capacity-information-with-external-provisioner"
 
 >Updating capacity information with external-provisioner&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#available-capacity-vs-maximum-volume-size"
 
 >Available capacity vs. maximum volume size&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#without-central-controller"
 
 >Without central controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#with-central-controller"
 
 >With central controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#determining-parameters"
 
 >Determining parameters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csistoragecapacity-lifecycle"
 
 >CSIStorageCapacity lifecycle&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#using-capacity-information"
 
 >Using capacity information&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#no-modeling-of-storage-capacity-usage"
 
 >No modeling of storage capacity usage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prioritization-of-nodes"
 
 >Prioritization of nodes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-with-cluster-autoscaler"
 
 >Integration with &lt;a href="https://github.com/kubernetes/autoscaler">Cluster Autoscaler&lt;/a>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternative-solutions"
 
 >Alternative solutions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csi-drivers-without-topology-support"
 
 >CSI drivers without topology support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storage-class-parameters-that-never-affect-capacity"
 
 >Storage class parameters that never affect capacity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#multiple-capacity-values"
 
 >Multiple capacity values&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-list"
 
 >Node list&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csidriverstatus"
 
 >CSIDriver.Status&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-local-storage-1"
 
 >Example: local storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-affect-of-storage-classes-1"
 
 >Example: affect of storage classes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-network-attached-storage-1"
 
 >Example: network attached storage&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#csistoragepool"
 
 >CSIStoragePool&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-local-storage-2"
 
 >Example: local storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-affect-of-storage-classes-2"
 
 >Example: affect of storage classes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-network-attached-storage-2"
 
 >Example: network attached storage&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#generic-autoscaler-support"
 
 >Generic autoscaler support&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#prior-work"
 
 >Prior work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Storage Capacity Scoring of Nodes for Dynamic Provisioning</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4049/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4049/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning">KEP-4049: Storage Capacity Scoring of Nodes for Dynamic Provisioning&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-optional"
 
 >Story 1 (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-optional"
 
 >Story 2 (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#modify-statedata-to-be-able-to-store-storagecapacity"
 
 >Modify stateData to be able to store StorageCapacity&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#get-the-capacity-of-nodes-for-dynamic-provisioning"
 
 >Get the capacity of nodes for dynamic provisioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scoring-of-nodes-for-dynamic-provisioning"
 
 >Scoring of nodes for dynamic provisioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#conditions-for-scoring-static-or-dynamic-provisioning"
 
 >Conditions for scoring static or dynamic provisioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate-consolidation"
 
 >Feature Gate Consolidation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#weighting-static-provisioning-scores-and-dynamic-provisioning-scores"
 
 >Weighting Static Provisioning Scores and Dynamic Provisioning Scores&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>StorageVersion API for HA API servers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2339/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2339/</guid><description>&lt;h1 id="kep-2339-storageversion-api-for-ha-api-servers">KEP-2339: StorageVersion API for HA API servers&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#resource-version-api"
 
 >Resource Version API&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#changes-to-api-servers"
 
 >Changes to API servers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#curating-a-list-of-participating-api-servers-in-ha-master"
 
 >Curating a list of participating API servers in HA master&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#updating-storageversion"
 
 >Updating StorageVersion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#garbage-collection"
 
 >Garbage collection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#crds"
 
 >CRDs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#aggregated-api-servers"
 
 >Aggregated API servers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#consuming-the-storageversion-api"
 
 >Consuming the StorageVersion API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storageversion-api-vs-storageversionhash-in-the-discovery-document"
 
 >StorageVersion API vs. StorageVersionHash in the discovery document&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backwards-compatibility"
 
 >Backwards Compatibility&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#letting-api-servers-vote-on-the-storage-version"
 
 >Letting API servers vote on the storage version&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#letting-the-storage-migrator-detect-if-api-server-instances-are-in-agreement"
 
 >Letting the storage migrator detect if API server instances are in agreement&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#appendix"
 
 >Appendix&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#accuracy-of-the-discovery-document-of-crds"
 
 >Accuracy of the discovery document of CRDs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Streaming JSON Encoding for LIST Responses</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5116/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5116/</guid><description>&lt;h1 id="kep-5116-streaming-encoding-for-list-responses">KEP-5116: Streaming Encoding for LIST Responses&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#streaming-collections-and-gzip-encoding"
 
 >Streaming collections and gzip encoding&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Structured authentication config</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3331/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3331/</guid><description>&lt;h1 id="kep-3331-structured-authentication-config">KEP-3331: Structured Authentication Config&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configuration-file"
 
 >Configuration file&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cel"
 
 >CEL&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flags"
 
 >Flags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pre-ga-follow-up"
 
 >Pre-GA follow-up&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possible-future-work"
 
 >Possible future work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#questions"
 
 >Questions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Structured Authorization Configuration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3221/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3221/</guid><description>&lt;h1 id="kep-3221-structured-authorization-configuration">KEP-3221: Structured Authorization Configuration&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-protecting-installed-crds"
 
 >Story 1: Protecting installed CRDs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-preventing-unnecessarily-nested-webhooks"
 
 >Story 2: Preventing unnecessarily nested webhooks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-denying-requests-on-certain-scenarios"
 
 >Story 3: Denying requests on certain scenarios&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-controlling-access-of-a-privileged-rbac-role"
 
 >Story 4: Controlling access of a privileged RBAC role&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-varying-defaults-across-versions-of-the-api"
 
 >Story 5: Varying defaults across versions of the API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-6-conditionally-filtering-requests-to-webhooks"
 
 >Story 6: Conditionally filtering requests to webhooks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#monitoring"
 
 >Monitoring&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-129"
 
 >Alpha (1.29)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Structured Logging</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1602/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1602/</guid><description>&lt;h1 id="structured-logging">Structured Logging&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#log-message-structure"
 
 >Log message structure&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#new-klog-methods"
 
 >New klog methods&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references-to-kubernetes-objects"
 
 >References to Kubernetes objects&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#object-reference-format-in-logs"
 
 >Object reference format in Logs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#helper-functions-for-log-format"
 
 >Helper functions for log format&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#selecting-most-important-logs"
 
 >Selecting most important logs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#json-output-format"
 
 >JSON output format&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#reserved-json-keys"
 
 >Reserved JSON keys&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#serialization-strategy"
 
 >Serialization strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#logging-configuration"
 
 >Logging configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#migration--graduation-criteria"
 
 >Migration / Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#performance"
 
 >Performance&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#logger-implementation-performance"
 
 >Logger implementation performance&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#log-volume-increase-analysis"
 
 >Log volume increase analysis&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#migration-being-abandoned-halfway"
 
 >Migration being abandoned halfway&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#huge-increase-of-log-volume"
 
 >Huge increase of log volume&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposed-list-of-log-messages-to-change"
 
 >Proposed list of log messages to change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-of-migrating-klog-call"
 
 >Example of migrating klog call&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#just-write-guideline-and-update-log-messages"
 
 >Just write guideline and update log messages&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#replace-klog-with-some-other-structured-logging-library"
 
 >Replace klog with some other structured logging library&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-glogr-instead-of-proposed-message-structure"
 
 >Use glogr instead of proposed message structure&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#code-organisation"
 
 >Code organisation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes to define standard structure for Kubernetes log messages, add methods to klog to enforce this structure, add ability to configure Kubernetes components to produce logs in JSON format and initiate migration to structured logging.&lt;/p></description></item><item><title>Support Default Pod Sysctls in Kubelet Configuration</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5996/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5996/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-5996-support-default-pod-sysctls-in-kubelet-configuration">KEP-5996: Support Default Pod Sysctls in Kubelet Configuration&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-configuration-changes"
 
 >Kubelet Configuration Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#application-logic"
 
 >Application Logic&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#oci-runtimes"
 
 >OCI Runtimes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#node-resource-interface-nri"
 
 >Node Resource Interface (NRI)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutating-admission-webhooks"
 
 >Mutating Admission Webhooks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mutating-admission-policy"
 
 >Mutating Admission Policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Support external signing of service account tokens</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/740/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/740/</guid><description>&lt;h1 id="support-external-signing-of-service-account-tokens">Support external signing of service account tokens&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#preserve-existing-behavior"
 
 >Preserve existing behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-api"
 
 >New API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#plugins"
 
 >Plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#updates-for-token-generation"
 
 >Updates for token generation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#updates-for-supported-public-keys"
 
 >Updates for supported public keys&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#support-for-legacy-tokens"
 
 >Support for Legacy Tokens&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#externaljwtsigner-rpc"
 
 >ExternalJWTSigner RPC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgradedowngrade-strategy"
 
 >Upgrade/Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#different-kube-apiserver-versions-running-at-the-same-time"
 
 >Different kube-apiserver versions running at the same time&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#possible-future-work"
 
 >Possible Future Work&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Support for CSI Plugins on Windows Nodes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1122/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1122/</guid><description>&lt;h1 id="support-for-csi-plugins-on-windows-nodes">Support for CSI Plugins on Windows Nodes&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deploy-csi-node-plugin-daemonset-targeting-windows-nodes"
 
 >Deploy CSI Node Plugin DaemonSet targeting Windows nodes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deploy-windows-workloads-that-consume-persistent-storage-managed-by-a-csi-plugin"
 
 >Deploy Windows workloads that consume persistent storage managed by a CSI plugin&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#enhancements-in-kubelet-plugin-watcher"
 
 >Enhancements in Kubelet Plugin Watcher&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enhancements-in-csi-node-driver-registrar"
 
 >Enhancements in CSI Node Driver Registrar&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#new-component-csi-proxy"
 
 >New Component: CSI Proxy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csi-proxy-named-pipes"
 
 >CSI Proxy Named Pipes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-proxy-configuration"
 
 >CSI Proxy Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-proxy-grpc-api-groups"
 
 >CSI Proxy GRPC API Groups&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-proxy-grpc-api-graduation-and-deprecation-policy"
 
 >CSI Proxy GRPC API Graduation and Deprecation Policy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#enhancements-in-kubernetesutilsmounter"
 
 >Enhancements in Kubernetes/Utils/mounter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enhancements-in-csi-node-plugins"
 
 >Enhancements in CSI Node Plugins&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#mitigation-using-psp"
 
 >Mitigation using PSP&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#mitigation-using-a-webhook"
 
 >Mitigation using a webhook&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#comparison-of-risks-with-csi-node-plugins-in-linux"
 
 >Comparison of risks with CSI Node Plugins in Linux&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-alternatives"
 
 >API Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deployment-alternatives"
 
 >Deployment Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#deploying-csi-node-plugins-as-binaries-and-deployed-as-processes-running-on-the-host"
 
 >Deploying CSI Node Plugins as binaries and deployed as processes running on the host:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#package-csi-node-plugins-as-containers-and-deployed-as-processes-running-on-the-host"
 
 >Package CSI Node Plugins as containers and deployed as processes running on the host:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-for-privileged-operations-and-bi-directional-mount-propagation-in-windows-containers"
 
 >Support for Privileged Operations and Bi-directional mount propagation in Windows containers:&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Production readiness review completed&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Production readiness review approved&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Container Storage Interface (&lt;a href="https://github.com/container-storage-interface/spec/blob/master/spec.md"
 
 target="_blank" rel="noopener">CSI&lt;/a>
) is a modern GRPC based standard for implementing external storage plugins (maintained by storage vendors, cloud providers, etc.) for container orchestrators like Kubernetes. Persistent storage requirements of containerized workloads can be satisfied from a diverse array of storage systems by installing and configuring the CSI plugins supported by the desired storage system. This KEP covers the enhancements necessary in Kubernetes core and CSI related out-of-tree components (specific to Kubernetes) to support CSI plugins for Windows nodes in a Kubernetes cluster. With the enhancements proposed in this KEP, Kubernetes operators will be able to leverage modern CSI plugins to satisfy the persistent storage requirements of Windows workloads in Kubernetes.&lt;/p></description></item><item><title>Support for CSI volume resizing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/556/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/556/</guid><description>&lt;h1 id="support-for-csi-volume-resizing">Support for CSI volume resizing&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#external-resize-controller"
 
 >External resize controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#expansion-on-kubelet"
 
 >Expansion on Kubelet&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#offline-volume-resizing-on-kubelet"
 
 >Offline volume resizing on kubelet:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#online-volume-resizing-on-kubelet"
 
 >Online volume resizing on kubelet:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#supporting-per-pvc-secret-refs"
 
 >Supporting per-PVC secret refs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>To bring CSI volumes in feature parity with in-tree volumes we need to implement support for resizing of CSI volumes.&lt;/p></description></item><item><title>Support for env files.</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3721/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3721/</guid><description>&lt;h1 id="kep-3721-support-for-env-files">KEP-3721: Support for env files&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-api"
 
 >Pod API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#env-file"
 
 >Env File&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#failure-and-fallback-strategy"
 
 >Failure and Fallback Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#security-considerations"
 
 >Security Considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Support Instance Metadata Service with Cloud Controller Manager</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2328/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2328/</guid><description/></item><item><title>Support Oldest Node And Newest Control Plane</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3935/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3935/</guid><description>&lt;h1 id="kep-3935-support-oldest-node-and-newest-control-plane">KEP-3935: Support Oldest Node And Newest Control Plane&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#types-of-changes"
 
 >Types of changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#evaluate-previous-control-plane-releases"
 
 >Evaluate previous control plane releases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#planned-control-plane-changes"
 
 >Planned control plane changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#impact-summary"
 
 >Impact summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#related-work"
 
 >Related work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Support Out-of-Tree Azure Cloud Provider</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/667/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/667/</guid><description/></item><item><title>Support Out-of-Tree OpenStack Cloud Provider</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/669/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/669/</guid><description>&lt;h1 id="supporting-out-of-tree-openstack-cloud-provider">Supporting Out-of-Tree OpenStack Cloud Provider&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> k/enhancements issue in release milestone and linked to KEP (&lt;a href="https://github.com/kubernetes/enhancements/issues/669"
 
 target="_blank" rel="noopener">https://github.com/kubernetes/enhancements/issues/669&lt;/a>
)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documentedbs&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Build support for the out-of-tree OpenStack cloud provider. This involves a well-tested version of the cloud-controller-manager
that has feature parity to the kube-controller-manager.&lt;/p></description></item><item><title>Support Out-of-Tree vSphere Cloud Provider</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/670/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/670/</guid><description>&lt;h1 id="supporting-out-of-tree-vsphere-cloud-provider">Supporting Out-of-Tree vSphere Cloud Provider&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> k/enhancements issue in release milestone and linked to KEP (&lt;a href="https://github.com/kubernetes/enhancements/issues/670"
 
 target="_blank" rel="noopener">https://github.com/kubernetes/enhancements/issues/670&lt;/a>
)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Build support for the out-of-tree vSphere cloud provider. This involves a well-tested version of the cloud-controller-manager
that has feature parity to the kube-controller-manager. This KEP captures mostly implemented work already completed in the
&lt;a href="https://github.com/kubernetes/cloud-provider-vsphere"
 
 target="_blank" rel="noopener">Cloud Provider vSphere repository&lt;/a>
.&lt;/p></description></item><item><title>Support User Namespaces</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/127/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/127/</guid><description>&lt;h1 id="kep-127-support-user-namespaces">KEP-127: Support User Namespaces&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5"
 
 >Story 5&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#podspec-changes"
 
 >Pod.spec changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-changes"
 
 >CRI changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#support-for-pods"
 
 >Support for pods&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#configuration-of-ranges"
 
 >Configuration of ranges&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#handling-of-volumes"
 
 >Handling of volumes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-of-how-idmap-mounts-work"
 
 >Example of how idmap mounts work&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-without-idmap-mounts"
 
 >Example without idmap mounts&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-with-idmap-mounts"
 
 >Example with idmap mounts&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#regarding-the-previous-implementation-for-volumes"
 
 >Regarding the previous implementation for volumes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-conformant-volume-types"
 
 >Non-conformant volume types&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-security-standards-pss-integration"
 
 >Pod Security Standards (PSS) integration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#critests"
 
 >critests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-and-kube-apiserver-skew"
 
 >Kubelet and Kube-apiserver skew&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-and-container-runtime-skews"
 
 >Kubelet and container runtime skews&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dont-use-idmap-mounts-and-rely-chown-all-the-files-correctly"
 
 >Don&amp;rsquo;t use idmap mounts and rely chown all the files correctly&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#64k-mappings"
 
 >64k mappings?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#allow-runtimes-to-pick-the-mapping"
 
 >Allow runtimes to pick the mapping&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Supporting CRI-containerD on Windows</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1001/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1001/</guid><description>&lt;h1 id="supporting-cri-containerd-on-windows">Supporting CRI-ContainerD on Windows&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- TOC -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#improving-kubernetes-integration-for-windows-server-containers"
 
 >Improving Kubernetes integration for Windows Server containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#improved-isolation-and-compatibility-between-windows-pods-using-hyper-v"
 
 >Improved isolation and compatibility between Windows pods using Hyper-V&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#improve-control-over-memory--cpu-resources-with-hyper-v"
 
 >Improve Control over Memory &amp;amp; CPU Resources with Hyper-V&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#improved-storage-control-with-hyper-v"
 
 >Improved Storage Control with Hyper-V&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enable-runtime-resizing-of-container-resources"
 
 >Enable runtime resizing of container resources&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#proposal-use-runtimeclass-scheduler-to-simplify-deployments-based-on-os-version-requirements"
 
 >Proposal: Use Runtimeclass Scheduler to simplify deployments based on OS version requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-standardize-hypervisor-annotations"
 
 >Proposal: Standardize hypervisor annotations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#windows-server-2019"
 
 >Windows Server 2019&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cri-containerd"
 
 >CRI-ContainerD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cni-flannel"
 
 >CNI: Flannel&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cni-kubenet"
 
 >CNI: Kubenet&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cni-gce"
 
 >CNI: GCE&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storage-in-tree-azurefile-azuredisk-google-pd"
 
 >Storage: in-tree AzureFile, AzureDisk, Google PD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#storage-flexvolume-for-iscsi--smb"
 
 >Storage: FlexVolume for iSCSI &amp;amp; SMB&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-containerd-availability"
 
 >CRI-ContainerD availability&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-release"
 
 >Alpha release&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies-1"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-o"
 
 >CRI-O&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /TOC -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Suspend Job</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2232/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2232/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [x] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-2322-suspend-jobs">KEP-2322: Suspend Jobs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#update-related-to-kep-5440"
 
 >Update related to KEP-5440&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Switch CoreDNS to the default DNS</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/566/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/566/</guid><description>&lt;h1 id="switch-coredns-to-the-default-dns">Switch CoreDNS to the default DNS&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-cases"
 
 >Use Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubeadm"
 
 >Kubeadm&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-up"
 
 >Kube-up&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#minikube"
 
 >Minikube&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kops"
 
 >Kops&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>CoreDNS is now well-established in Kubernetes as the DNS service, with CoreDNS starting as an alpha feature from Kubernetes v1.9 to now being GA in v1.11.
After successfully implementing the road-map defined &lt;a href="https://github.com/kubernetes/features/issues/427"
 
 target="_blank" rel="noopener">here&lt;/a>
, CoreDNS is GA in Kubernetes v1.11, which can be installed as an alternate to kube-dns in tools like kubeadm, kops, minikube and kube-up.
Following the &lt;a href="https://github.com/kubernetes/community/pull/1956"
 
 target="_blank" rel="noopener">KEP to graduate CoreDNS to GA&lt;/a>
, the purpose of this proposal is to make CoreDNS as the default DNS for Kubernetes, replacing kube-dns.&lt;/p></description></item><item><title>Take taints/tolerations into consideration when calculating PodTopologySpread skew</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3094/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3094/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-3094-take-taintstolerations-into-consideration-when-calculating-podtopologyspread-skew">KEP-3094: Take taints/tolerations into consideration when calculating PodTopologySpread skew&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>TimeZone support in CronJob</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3140/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3140/</guid><description>&lt;h1 id="kep-3140-timezone-support-in-cronjob">KEP-3140: TimeZone support in CronJob&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cronjob-api"
 
 >CronJob API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#cronjob-controller"
 
 >CronJob controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>TLS Credentials in gRPC Probe</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4939/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4939/</guid><description>&lt;h1 id="kep-4939-tls-credentials-in-grpc-probe">KEP-4939: TLS Credentials in gRPC Probe&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-design"
 
 >API Design&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate-behavior"
 
 >Feature Gate Behavior&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-probe-execution"
 
 >Kubelet Probe Execution&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#grpc-transport-credentials"
 
 >gRPC Transport Credentials&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Topology Aware Hints</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2433/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2433/</guid><description>&lt;h1 id="kep-topology-aware-hints">KEP: Topology Aware Hints&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#important-scope-reduction-feb-2025"
 
 >IMPORTANT: Scope Reduction (Feb 2025)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#future-api-expansion"
 
 >Future API Expansion&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#configuration"
 
 >Configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#interoperability"
 
 >Interoperability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy"
 
 >Kube-Proxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#endpointslice-controller"
 
 >EndpointSlice Controller&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#heuristics"
 
 >Heuristics&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#identifying-zones"
 
 >Identifying Zones&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#excluding-control-plane-nodes"
 
 >Excluding Control Plane Nodes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#overload"
 
 >Overload&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#handling-node-updates"
 
 >Handling Node Updates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proportional-cpu-heuristic"
 
 >Proportional CPU Heuristic&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#assumptions"
 
 >Assumptions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example"
 
 >Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#preferzone-heuristic"
 
 >PreferZone Heuristic&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#assumptions-1"
 
 >Assumptions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-1"
 
 >Example&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#additional-heuristics"
 
 >Additional Heuristics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-expansion"
 
 >Future Expansion&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#controller-unit-tests"
 
 >Controller Unit Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kube-proxy-unit-tests"
 
 >Kube-Proxy Unit Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#observability"
 
 >Observability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#events"
 
 >Events&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#logic"
 
 >Logic&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sample-events"
 
 >Sample Events&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#documentation"
 
 >Documentation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#limitations"
 
 >Limitations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="important-scope-reduction-feb-2025">IMPORTANT: Scope Reduction (Feb 2025)&lt;/h2>
&lt;p>This KEP&amp;rsquo;s GA scope has been significantly reduced. While originally the KEP
proposed both the &lt;code>hints&lt;/code> field in &lt;code>EndpointSlice&lt;/code> &lt;em>and&lt;/em> a topology-aware
routing implementation using Service annotation
&lt;code>service.kubernetes.io/topology-mode=Auto&lt;/code>, &lt;em>only the &lt;code>hints&lt;/code> field is being
graduated to GA&lt;/em>. The topology-aware routing aspects, including the
&lt;code>service.kubernetes.io/topology-mode&lt;/code> annotation and associated heuristics, are
not part of this GA release.&lt;/p></description></item><item><title>Topology For Volume Snapshots</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5943/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5943/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

Follow the guidelines of the [documentation style guide].
In particular, wrap lines to a reasonable length, to make it
easier for reviewers to cite specific portions, and to minimize diff churn on
updates.

[documentation style guide]: https://github.com/kubernetes/community/blob/master/contributors/guide/style-guide.md

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="5943-topology-for-volume-snapshot-topology-for-volume-snapshot">5943-topology-for-volume-snapshot: Topology For Volume Snapshot&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-spec-changes"
 
 >CSI Spec Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volume-snapshot-components-changes"
 
 >Volume Snapshot Components Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volume-snapshot-crd"
 
 >Volume Snapshot CRD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumesnapshotclass-crd"
 
 >VolumeSnapshotClass CRD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#snapshotter-pkgsnapshotter"
 
 >Snapshotter (pkg/snapshotter)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-handler-pkgsidecar-controllercsi_handlergo"
 
 >CSI Handler (pkg/sidecar-controller/csi_handler.go)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-snapshotter-pkgsidecar-controllersnapshot_controllergo"
 
 >CSI Snapshotter (pkg/sidecar-controller/snapshot_controller.go)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduler-plugin-at-kubernetes-sigsscheduler-plugins-repo"
 
 >Scheduler Plugin (at kubernetes-sigs/scheduler-plugins repo)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#why-a-scheduler-plugin-is-necessary"
 
 >Why a scheduler plugin is necessary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#high-level-plugin-design-based-on-scheduling-framework"
 
 >High Level Plugin design (&lt;a href="https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework/">Based on Scheduling Framework&lt;/a>)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#external-provisioner-changes-immediate-volume-binding"
 
 >External-Provisioner Changes (Immediate Volume Binding)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-happens-with-statically-provisioned-snapshots"
 
 >What happens with statically provisioned snapshots?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#error-handling"
 
 >Error Handling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#inherit-topology-from-the-source-persistentvolume"
 
 >Inherit topology from the source PersistentVolume&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Topology-aware workload scheduling</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5732/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5732/</guid><description>&lt;h1 id="kep-5732-topology-aware-workload-scheduling">KEP-5732: Topology-aware workload scheduling&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-ai-training-in-a-single-rack"
 
 >Story 1: AI Training in a Single Rack&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#workload-api-changes"
 
 >Workload API Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scheduling-framework-extensions"
 
 >Scheduling Framework Extensions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-data-structures"
 
 >1. Data Structures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-new-plugin-interfaces"
 
 >2. New Plugin Interfaces&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduling-algorithm-phases"
 
 >Scheduling Algorithm Phases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1-candidate-placement-generation"
 
 >Phase 1: Candidate Placement Generation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2-pod-level-filtering-and-feasibility-check"
 
 >Phase 2: Pod-Level Filtering and Feasibility Check&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3-placement-scoring-and-selection"
 
 >Phase 3: Placement Scoring and Selection&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#scheduler-plugins"
 
 >Scheduler Plugins&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-extensions"
 
 >Beta Extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#future-extensions"
 
 >Future Extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-inter-affinities"
 
 >Pod Inter-Affinities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#standalone-schedulers-eg-volcano"
 
 >Standalone Schedulers (e.g., Volcano)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Track ready Pods in Job status</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2879/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2879/</guid><description>&lt;h1 id="kep-2879-track-ready-pods-in-job-status">KEP-2879: Track ready Pods in Job status&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-to-the-job-controller"
 
 >Changes to the Job controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Tracking Terminating Endpoints in EndpointSlice</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1672/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1672/</guid><description>&lt;h1 id="kep-1672-tracking-terminating-endpoints-in-the-endpointslice-api">KEP-1672: Tracking Terminating Endpoints in the EndpointSlice API&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Today, terminating endpoints are considered &amp;ldquo;not ready&amp;rdquo; regardless of their actual readiness.
Before any work is done in improving how terminating endpoints are handled, there must be a way
to track whether an endpoint is terminating without having to watch the associated pods. This
KEP proposes a means to track the terminating state of an endpoint via the EndpointSlice API.
This would enable consumers of the API to make smarter decisions when it comes to handling
terminating endpoints (see KEP-1669 as an example).&lt;/p></description></item><item><title>Traffic Distribution for Services</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4444/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4444/</guid><description>&lt;h1 id="kep-4444-traffic-distribution-for-services">KEP-4444: Traffic Distribution for Services&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#topology-keys"
 
 >Topology Keys&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#topology-aware-routing-and-internaltrafficpolicy"
 
 >Topology Aware Routing and InternalTrafficPolicy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#standard-heuristic-implementation-kube-proxy-dataplane"
 
 >Standard Heuristic Implementation (kube-proxy dataplane)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#default-ie-trafficdistribution-is-not-configured"
 
 >Default (i.e. &lt;code>trafficDistribution&lt;/code> is not configured)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preferclose"
 
 >&lt;code>PreferClose&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#changes-within-kube-proxy"
 
 >Changes within kube-proxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#choice-of-field-name"
 
 >Choice of field name&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#intersection-with-internalexternaltrafficpolicy"
 
 >Intersection with internal/externalTrafficPolicy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#possible-future-expansions"
 
 >Possible future expansions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#status-reporting"
 
 >Status Reporting&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#condition-usage-by-other-implementations"
 
 >Condition usage by other implementations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-specific-heuristics"
 
 >Implementation specific heuristics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#an-alternative-definition-of-preferclose"
 
 >An alternative definition of &lt;code>PreferClose&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#repurpose-the-existing-topology-annotation-to-recognize-additional-values"
 
 >Repurpose the existing topology annotation to recognize additional values&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reuse-the-fields-internalexternaltrafficpolicy-to-offer-these-routing-preferences"
 
 >Reuse the fields internal/externalTrafficPolicy to offer these routing preferences&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#granular-routing-controls"
 
 >Granular Routing Controls&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reuse-pod-topology-spread-constraints-for-traffic-distribution"
 
 >Reuse Pod Topology Spread Constraints for Traffic Distribution&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#complementary-use-of-pod-topology-spread-constraints-and-trafficdistribution"
 
 >Complementary Use of Pod Topology Spread Constraints and trafficDistribution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP proposes introducing a new field, &lt;code>trafficDistribution&lt;/code>, to the
Kubernetes Service spec. It will supersede the functionality currently provided
by the &lt;code>service.kubernetes.io/topology-mode&lt;/code> annotation and it’s precursor
&lt;code>topologyKeys&lt;/code> field (which has been deprecated since Kubernetes 1.21)&lt;/p></description></item><item><title>Transition from SPDY to Websockets</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4006/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4006/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [X] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [X] **Create an issue in kubernetes/enhancements** (Issue #4006).
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [X] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [X] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [X] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [X] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [X] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4006-transition-from-spdy-to-websockets">KEP-4006: Transition from SPDY to WebSockets&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background-streaming-protocol-basics"
 
 >Background: Streaming Protocol Basics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#background-remotecommand-subprotocol"
 
 >Background: &lt;code>RemoteCommand&lt;/code> Subprotocol&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#background-api-server-and-kubelet-upgradeawareproxy"
 
 >Background: API Server and Kubelet &lt;code>UpgradeAwareProxy&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-kubectl-websocket-executor-and-fallback-executor"
 
 >Proposal: &lt;code>kubectl&lt;/code> WebSocket Executor and Fallback Executor&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-new-remotecommand-sub-protocol-version---v5channelk8sio"
 
 >Proposal: New &lt;code>RemoteCommand&lt;/code> Sub-Protocol Version - &lt;code>v5.channel.k8s.io&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-api-server-remotecommand-streamtranslatorproxy"
 
 >Proposal: API Server RemoteCommand &lt;code>StreamTranslatorProxy&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#background-portforward-subprotocol"
 
 >Background: &lt;code>PortForward&lt;/code> Subprotocol&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-new-portforward-tunneling-subprotocol-version---v2portforwardk8sio"
 
 >Proposal: New &lt;code>PortForward&lt;/code> Tunneling Subprotocol Version - &lt;code>v2.portforward.k8s.io&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-api-server-portforward----stream-tunnel-proxy"
 
 >Proposal: API Server PortForward &amp;ndash; Stream Tunnel Proxy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-synthetic-rbac-create-authorization-check"
 
 >Proposal: Synthetic RBAC CREATE Authorization Check&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proposal-transitioning-the-api-server-to-kubelet-connection"
 
 >Proposal: Transitioning the API Server-to-Kubelet Connection&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v129-remotecommand-subprotocol-exec-cp-and-attach"
 
 >v1.29 RemoteCommand Subprotocol (exec, cp, and attach)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v130-portforward-subprotocol-port-forward"
 
 >v1.30 PortForward Subprotocol (port-forward)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v130-remotecommand-subprotocol-exec-cp-and-attach"
 
 >v1.30 RemoteCommand Subprotocol (exec, cp, and attach)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v131-portforward-subprotocol-port-forward"
 
 >v1.31 PortForward Subprotocol (port-forward)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v135-synthetic-rbac-create-authorization-check"
 
 >v1.35 Synthetic RBAC CREATE Authorization Check&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v136-extend-websockets-to-kubelet"
 
 >v1.36 Extend WebSockets to Kubelet&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#remotecommand-subprotocol"
 
 >RemoteCommand Subprotocol&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#portforward-subprotocol"
 
 >PortForward Subprotocol&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-within-the-control-plane-and-nodes"
 
 >Version Skew within the Control Plane and Nodes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#extend-websocket-streaming-to-the-kubelet-try-websockets-and-fallback-to-spdy"
 
 >Extend WebSocket Streaming to the Kubelet: Try WebSockets and Fallback to SPDY&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#report-protocol-support-per-subresource"
 
 >Report Protocol Support Per-Subresource&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-metadataannotations"
 
 >Use &lt;code>metadata.annotations&lt;/code>&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>TTL After Finished</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/592/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/592/</guid><description>&lt;h1 id="ttl-after-finished-controller">TTL After Finished Controller&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#concrete-use-cases"
 
 >Concrete Use Cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#detailed-design"
 
 >Detailed Design&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature Gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-object"
 
 >API Object&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ttl-controller"
 
 >TTL Controller&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#finished-jobs"
 
 >Finished Jobs&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#owner-references"
 
 >Owner References&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-work"
 
 >Future Work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>We propose a TTL mechanism to limit the lifetime of finished resource objects,
including Jobs and Pods, to make it easy for users to clean up old Jobs/Pods
after they finish. The TTL timer starts when the Job/Pod finishes, and the
finished Job/Pod will be cleaned up after the TTL expires.&lt;/p></description></item><item><title>Tune Crashloop Backoff</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4603/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4603/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [x] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [x] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [x] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [x] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [x] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [x] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-4603-tune-crashloopbackoff">KEP-4603: Tune CrashLoopBackoff&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#existing-backoff-curve-change-front-loaded-decay-lower-maximum-backoff"
 
 >Existing backoff curve change: front loaded decay, lower maximum backoff&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#refactor-and-flat-rate-to-10-minutes-for-the-backoff-counter-reset-threshold"
 
 >Refactor and flat rate to 10 minutes for the backoff counter reset threshold&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#task-isolation"
 
 >Task isolation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#fast-restart-on-failure"
 
 >Fast restart on failure&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#sidecar-containers-fast-restart"
 
 >Sidecar containers fast restart&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#front-loaded-decay-curve-modified-maximum-backoff-methodology"
 
 >Front loaded decay curve, modified maximum backoff methodology&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#refactor-of-recovery-threshold"
 
 >Refactor of recovery threshold&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-overhead-analysis"
 
 >Kubelet overhead analysis&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#benchmarking"
 
 >Benchmarking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-job-api-podfailurepolicy-and-backofflimit"
 
 >Relationship with Job API podFailurePolicy and backoffLimit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-imagepullbackoff"
 
 >Relationship with ImagePullBackOff&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relationship-with-kk123602"
 
 >Relationship with k/k#123602&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#conflict-resolution"
 
 >Conflict resolution&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#global-override"
 
 >Global override&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#per-exit-code-configuration"
 
 >Per exit code configuration&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restartpolicy-rapid"
 
 >&lt;code>RestartPolicy: Rapid&lt;/code>&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#flat-rate-restarts-for-succeeded-pods"
 
 >Flat-rate restarts for &lt;code>Succeeded&lt;/code> Pods&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#on-success-and-the-10-minute-recovery-threshold"
 
 >On Success and the 10 minute recovery threshold&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#related-api-opt-in-for-flat-ratequick-restarts-when-transitioning-from-succeeded-phase"
 
 >Related: API opt-in for flat rate/quick restarts when transitioning from &lt;code>Succeeded&lt;/code> phase&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#related-succeeded-vs-rapidly-failing-whos-getting-the-better-deal"
 
 >Related: &lt;code>Succeeded&lt;/code> vs &lt;code>Rapid&lt;/code>ly failing: who&amp;rsquo;s getting the better deal?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#front-loaded-decay-with-interval"
 
 >Front loaded decay with interval&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#late-recovery"
 
 >Late recovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#more-complex-heuristics"
 
 >More complex heuristics&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#appendix-a"
 
 >Appendix A&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-syncpod"
 
 >Kubelet SyncPod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtime-syncpod"
 
 >Runtime SyncPod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-syncterminatingpod--runtime-killpod"
 
 >Kubelet SyncTerminatingPod + runtime killPod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubelet-syncterminatedpod"
 
 >Kubelet SyncTerminatedPod&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Tuning the number of domains in PodTopologySpread</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3022/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3022/</guid><description>&lt;h1 id="kep-3022-min-domains-in-pod-topology-spread">KEP-3022: min domains in Pod Topology Spread&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-story"
 
 >User Story&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api"
 
 >API&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-details"
 
 >Implementation details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-user-stories-are-addressed"
 
 >How user stories are addressed&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-v124"
 
 >Alpha (v1.24):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta-v125"
 
 >Beta (v1.25):&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga-v130"
 
 >GA (v1.30):&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#support-mindomains-in-scheduleanyway-as-well"
 
 >Support &lt;code>minDomains&lt;/code> in ScheduleAnyway as well&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Union types</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1027/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1027/</guid><description>&lt;h1 id="kep-1027-union-types">KEP-1027: Union types&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#discriminator-field"
 
 >Discriminator Field&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#go-markers"
 
 >Go Markers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#discriminator-values"
 
 >Discriminator Values&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#empty-union-members"
 
 >Empty Union Members&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#examples"
 
 >Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#openapi"
 
 >OpenAPI&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#normalization-and-validation"
 
 >Normalization and Validation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#normalization"
 
 >Normalization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#validation"
 
 >Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ratcheting-validation"
 
 >Ratcheting Validation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#migrating-existing-unions"
 
 >Migrating existing unions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-graduation"
 
 >Alpha Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Unknown Version Interoperability Proxy</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4020/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4020/</guid><description>&lt;h1 id="kep-4020-unknown-version-interoperability-proxy">KEP-4020: Unknown Version Interoperability Proxy&lt;/h1>
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#garbage-collector"
 
 >Garbage Collector&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#namespace-lifecycle-controller"
 
 >Namespace Lifecycle Controller&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#aggregation-layer"
 
 >Aggregation Layer&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#identifying-destination-apiservers-network-location"
 
 >Identifying destination apiserver&amp;rsquo;s network location&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#proxy-transport-between-apiservers-and-authn"
 
 >Proxy transport between apiservers and authn&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#discovery-merging"
 
 >Discovery Merging&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#caching-and-consistency"
 
 >Caching and consistency&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#network-location-of-apiservers"
 
 >Network location of apiservers&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Use etcd's learner mode in kubeadm</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3614/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3614/</guid><description/></item><item><title>Vanilla CRD OpenAPI Subset: Structural Schemas</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2335/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2335/</guid><description>&lt;h1 id="vanilla-crd-openapi-subset-structural-schemas">Vanilla CRD OpenAPI subset: structural schemas&lt;/h1>
&lt;p>OpenAPI has the goal of describing every API possible. CRDs have the goal of presenting a consistent API to users of Kubernetes. This KEP proposes a restriction of permissible CRD OpenAPI validation schemas to match the later and to enable us add advanced CRD features like server-side pruning, defaulting, apply and potentially Protobuf support in the future.&lt;/p>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#context"
 
 >Context&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#consumers-of-the-restricted-openapi-schema"
 
 >Consumers of the restricted OpenAPI Schema&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#producers-of-the-restricted-openapi-schema"
 
 >Producers of the restricted OpenAPI Schema&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#criteria"
 
 >Criteria&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#formal-definition"
 
 >Formal Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metadata"
 
 >Metadata&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unfolding-the-extensions"
 
 >Unfolding the Extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#litmus-test-examples"
 
 >Litmus Test Examples&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scope-of-necessary-changes"
 
 >Scope of necessary Changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-compatibility-plan"
 
 >API Compatibility Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-plan"
 
 >Implementation Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>The CRD validation schemas today support nearly the whole OpenAPI v3 schema language. Here, we propose to impose a restriction called &lt;em>structural schema&lt;/em> to that language, which will&lt;/p></description></item><item><title>Versioning Policy for External Cloud Providers</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1771/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1771/</guid><description>&lt;h1 id="kep-1771-versioning-policy-for-external-cloud-providers">KEP-1771: Versioning Policy for External Cloud Providers&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Today we have many external (a.k.a out-of-tree) cloud providers, each responsible for managing releases for components
such as cloud-controller-manger, but possibly others. Thus far there has been no standard on how providers should be
semantically versioning their releases. Likewise, there has been no version skew policy indicating what versions of Kubernetes
is supported by a version of a cloud-controller-manager (though it is assumed based on the vendored version of
k8s.io/kubernetes). This KEP proposes to standardize all external cloud providers on a semantic versioning policy that ensures
the vendored version of the cloud-controller-manager library is likely to match the version of the Kubernetes control plane.
More concretely, releases for external cloud providers should track the major and minor versions of the Kubernetes version they
intend to support. Patch releases are not required to match. For example, release v1.18.X of cloud-controller-manager for provider
Foo should support Kubernetes clusters on v1.18.X.&lt;/p></description></item><item><title>Volume Group Snapshot</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3476/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/3476/</guid><description>&lt;h1 id="kep-3476-volume-group-snapshot">KEP-3476: Volume Group Snapshot&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal-for-volumegroupsnapshot"
 
 >Proposal for VolumeGroupSnapshot&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#create-volumegroupsnapshot"
 
 >Create VolumeGroupSnapshot&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#dynamic-provisioning"
 
 >Dynamic provisioning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pre-provisioned-volumegroupsnapshot"
 
 >Pre-provisioned VolumeGroupSnapshot&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#delete-volumegroupsnapshot"
 
 >Delete VolumeGroupSnapshot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#restore"
 
 >Restore&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta"
 
 >Alpha -&amp;gt; Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga"
 
 >Beta -&amp;gt; GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-definitions"
 
 >API Definitions&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#volumegroupsnapshotclass"
 
 >VolumeGroupSnapshotClass&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumegroupsnapshot"
 
 >VolumeGroupSnapshot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumegroupsnapshotcontent"
 
 >VolumeGroupSnapshotContent&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumesnapshot-and-volumesnapshotcontent"
 
 >VolumeSnapshot and VolumeSnapshotContent&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#example-yaml-files"
 
 >Example Yaml Files&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#create-volumegroupsnapshot-1"
 
 >Create VolumeGroupSnapshot&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#csi-changes"
 
 >CSI Changes&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#csi-capabilities"
 
 >CSI Capabilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#csi-group-controller-rpc"
 
 >CSI Group Controller RPC&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#createvolumegroupsnapshot"
 
 >CreateVolumeGroupSnapshot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deletevolumegroupsnapshot"
 
 >DeleteVolumeGroupSnapshot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#getvolumegroupsnapshot"
 
 >GetVolumeGroupSnapshot&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#getsnapshot"
 
 >GetSnapshot&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature enablement and rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#immutable-volumegroup"
 
 >Immutable VolumeGroup&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#modifyvolume"
 
 >ModifyVolume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#volumegroup-api-definitions"
 
 >VolumeGroup API Definitions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Volume Health Monitor</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1432/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1432/</guid><description>&lt;h1 id="kep-1432-volume-health-monitor">KEP-1432: Volume Health Monitor&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-volume-deleted-out-of-band"
 
 >Story 1: Volume deleted out-of-band&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-backend-unreachable-from-a-subset-of-nodes"
 
 >Story 2: Backend unreachable from a subset of nodes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-local-storage-volume-with-degraded-lvm-backend"
 
 >Story 3: Local-storage volume with degraded LVM backend&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4-cross-driver-dashboards"
 
 >Story 4: Cross-driver dashboards&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-5-database-operator-with-local-pv-resilience"
 
 >Story 5. Database operator with local PV resilience&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#where-reports-live-and-why"
 
 >Where reports live, and why&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-csi-surface"
 
 >The CSI surface&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-kubernetes-surface"
 
 >The Kubernetes surface&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#reconciliation-contract"
 
 >Reconciliation contract&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#authorization"
 
 >Authorization&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gate"
 
 >Feature gate&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-only-metrics-and-events-for-health-reporting"
 
 >Use only metrics and events for health reporting&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#embed-volumecondition-in-existing-rpcs-the-original-alpha"
 
 >Embed VolumeCondition in existing RPCs (the original alpha)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#a-standalone-per-pvc-volumehealth-crd"
 
 >A standalone per-PVC VolumeHealth CRD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#a-per-pvc-mapnodehealth-directly-on-pvcstatus"
 
 >A per-PVC map[node]Health directly on pvc.status&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pv-taints-with-noeffect"
 
 >PV taints with NoEffect&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dra-style-device-taints-for-storage-kep-5055"
 
 >DRA-style device taints for storage (KEP-5055)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#push-based-health-ingest"
 
 >Push-based health ingest&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#a-richer-error-enum"
 
 >A richer error enum&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-enhancement"
 
 >Future enhancement&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#remediation"
 
 >Remediation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#scheduler-integrated-backend-health-filtering"
 
 >Scheduler-integrated backend health filtering&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#external-operator-remediation"
 
 >External operator remediation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed"
 
 >Infrastructure Needed&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Volume Populators</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1495/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1495/</guid><description>&lt;h1 id="volume-populators">Volume Populators&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#vm-images"
 
 >VM Images&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#backuprestore"
 
 >Backup/Restore&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validating-webhook"
 
 >Validating webhook&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Volume scale testing</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2263/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2263/</guid><description>&lt;h1 id="volume-scale-and-performance-testing-plan">Volume Scale and Performance Testing Plan&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-framework"
 
 >Test Framework&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-rollout"
 
 >Test Rollout&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-portability"
 
 >Test Portability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-cases"
 
 >Test Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-startup"
 
 >Pod Startup&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#wip-future-test-cases"
 
 >WIP Future Test Cases&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-teardown"
 
 >Pod Teardown&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pv-binding-tests"
 
 >PV Binding Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pv-provisioning-tests"
 
 >PV Provisioning Tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pv-deletion-tests"
 
 >PV Deletion Tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#phase-1"
 
 >Phase 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-2"
 
 >Phase 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#phase-3"
 
 >Phase 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This KEP outlines a plan for testing scalability and performance of K8s storage components.&lt;/p></description></item><item><title>Volume Scheduling Limits</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/554/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/554/</guid><description>&lt;h1 id="volume-scheduling-limits">Volume Scheduling Limits&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-change"
 
 >API Change&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-detail-for-all-csi-drivers"
 
 >Implementation Detail for all CSI Drivers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detail-for-in-tree-drivers-with-csi-migration-disabled"
 
 >Implementation detail for in-tree Drivers with CSI migration disabled&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#when-no-csi-driver-for-same-underlying-storage-type-is-installed-on-the-node"
 
 >When no CSI driver for same underlying storage type is installed on the node.&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#when-csi-driver-for-same-underlying-storage-type-is-installed-on-the-node"
 
 >When CSI driver for same underlying storage type is installed on the node.&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detail-for-in-tree-drivers-with-csi-migration-enabled"
 
 >Implementation detail for in-tree Drivers with CSI migration enabled&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade--version-skew-strategy"
 
 >Upgrade / Downgrade / Version Skew Strategy&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#interaction-with-old-attachvolumelimit-implementation"
 
 >Interaction with old &lt;code>AttachVolumeLimit&lt;/code> implementation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Note:&lt;/strong> Any PRs to move a KEP to &lt;code>implementable&lt;/code> or significant changes once it is marked &lt;code>implementable&lt;/code> should be approved by each of the KEP approvers. If any of those approvers is no longer appropriate than changes to that list should be approved by the remaining approvers and/or the owning SIG (or SIG-arch for cross cutting KEPs).&lt;/p></description></item><item><title>Volume Subpath Env Expansion</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/559/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/559/</guid><description>&lt;h1 id="volume-subpath-env-expansion">Volume Subpath Env Expansion&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#current-workarounds---k8s-193"
 
 >Current workarounds - k8s &amp;lt;=1.9.3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workarounds---k8s-193"
 
 >Workarounds - k8s &amp;gt;1.9.3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives---using-subpath-directly"
 
 >Alternatives - using subPath directly&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives---using-subpathfrom"
 
 >Alternatives - Using subPathFrom&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Legacy systems create all manner of log files and these are not easily streamed into stdout&lt;/p></description></item><item><title>Warning mechanism for use of deprecated APIs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1693/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1693/</guid><description>&lt;h1 id="kep-1693-warning-mechanism-for-use-of-deprecated-apis">KEP-1693: Warning mechanism for use of deprecated APIs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#server-side-changes"
 
 >Server-side changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-side-changes"
 
 >Client-side changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#server-side"
 
 >Server-side&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#client-side"
 
 >Client-side&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#references"
 
 >References&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Enhancement issue in release milestone, which links to KEP dir in &lt;a href="https://git.k8s.io/enhancements"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 (not the initial KEP PR)&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> KEP approvers have approved the KEP status as &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> User-facing documentation has been created in &lt;a href="https://git.k8s.io/website"
 
 target="_blank" rel="noopener">kubernetes/website&lt;/a>
, for publication to &lt;a href="https://kubernetes.io/"
 
 target="_blank" rel="noopener">kubernetes.io&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!--
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
-->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>This enhancement makes it easier for users and cluster administrators
to recognize and remedy problematic API use, including use of deprecated APIs.
Users are presented with informative warnings at time of use.
Administrators are given metrics that show deprecated API use,
and audit annotations that can be used to identify particular API clients.&lt;/p></description></item><item><title>Watch Bookmark</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/956/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/956/</guid><description>&lt;h1 id="watch-bookmark">Watch bookmark&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rejected-alternatives"
 
 >Rejected alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cache-in-kube-apiserver"
 
 >Cache in kube-apiserver&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-for-send-bookmark"
 
 >API for send bookmark&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Watch API is one of the fundaments of Kubernetes API. The recommended pattern
for using watch API is to retrieve a collection of resources using consistent
list and then initiate a watch starting from a resourceVersion returned by the
list operation. If the client watch is disconnected, a new one can be restarted
from the last returned resourceVersion.&lt;/p></description></item><item><title>Watch-based route controller reconciliation</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5237/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5237/</guid><description>&lt;h1 id="kep-5237-convert-route-controller-to-watch-based-reconciliation">KEP-5237: Convert route controller to watch-based reconciliation&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#changed-field-filters"
 
 >Changed Field Filters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relying-only-on-events"
 
 >Relying only on Events&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#full-reconcile"
 
 >Full reconcile&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#periodic-reconcile"
 
 >Periodic reconcile&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#workqueue-singleton"
 
 >Workqueue singleton&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#node-update-filters"
 
 >Node update filters&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#metrics"
 
 >Metrics&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#reconcile-individual-nodes-and-avoid-filtering-events"
 
 >Reconcile individual nodes and avoid filtering events&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>WG AI Gateway Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/ai-gateway/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/ai-gateway/charter/</guid><description>&lt;h1 id="wg-ai-gateway-charter">WG AI Gateway Charter&lt;/h1>
&lt;p>This charter adheres to the conventions described in the &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md"
 
 target="_blank" rel="noopener">Kubernetes Charter
README&lt;/a>
 and uses the Roles and Organization Management outlined in
&lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md"
 
 target="_blank" rel="noopener">wg-governance&lt;/a>
.&lt;/p>
&lt;h2 id="background">Background&lt;/h2>
&lt;p>We’ve seen large growth in the number of “AI Gateways” that have been launched
in the last couple of years which deploy and operate on Kubernetes, often
utilizing Gateway API. This WG aims to determine if the relevant features have
staying power and will be commonly useful to users for years to come, and if we
should expand the Kubernetes standards around this.&lt;/p></description></item><item><title>WG Batch Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/batch/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/batch/charter/</guid><description>&lt;h1 id="wg-batch-charter">WG Batch Charter&lt;/h1>
&lt;p>This charter adheres to the conventions described in the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/committee-steering/governance/README.md"
 
 >Kubernetes Charter README&lt;/a>
 and uses
the Roles and Organization Management outlined in &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/committee-steering/governance/wg-governance.md"
 
 >wg-governance&lt;/a>
.&lt;/p>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>Discuss and enhance the support for Batch (eg. HPC, AI/ML, data analytics, CI)
workloads in core Kubernetes. We want to unify the way users deploy batch
workloads to improve portability and to simplify supportability for Kubernetes
providers.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;ul>
&lt;li>To reduce fragmentation in the k8s batch ecosystem: congregate leads and users from
different external and internal projects and user groups (CNCF TAGs, k8s sub-projects
focused on batch-related features such as topology-aware scheduling) in the batch ecosystem to
gather requirements, validate designs and encourage reutilization of core kubernetes APIs.&lt;/li>
&lt;li>The following recommendations for enhancements:
&lt;ul>
&lt;li>Additions to the batch API group, currently including Job and CronJob resources
that benefit batch use cases such as HPC, AI/ML, data analytics and CI.&lt;/li>
&lt;li>Primitives for job-level queueing, not limited to the k8s Job resource. Long-term,
this could include multi-cluster support.&lt;/li>
&lt;li>Primitives to control and maximize utilization of resources in fixed-size clusters
(on-prem) and elastic clusters (cloud).&lt;/li>
&lt;li>Runtime and scheduling support for specialized hardware (GPUs, NUMA, RDMA, etc.)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>Addition of new API kinds that serve a specialized type of workload. The focus
should be on general APIs that specialized controllers can build on top of.&lt;/li>
&lt;li>Uses of the batch APIs as support for serving workloads (eg. backups,
upgrades, migrations). These can be served by existing SIGs.&lt;/li>
&lt;li>Proposals that duplicate the functionality of core kubernetes components
(job-controller, kube-scheduler, cluster-autoscaler).&lt;/li>
&lt;li>Job workflows or pipelines. Mature third party frameworks serve these
use cases with the current kubernetes primitives. But additional primitives
to support these frameworks could be in scope.&lt;/li>
&lt;/ul>
&lt;h2 id="stakeholders">Stakeholders&lt;/h2>
&lt;p>Stakeholders in this working group span multiple SIGs that own parts of the
code in core kubernetes components and addons.&lt;/p></description></item><item><title>WG Checkpoint Restore Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/checkpoint-restore/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/checkpoint-restore/charter/</guid><description>&lt;h1 id="wg-checkpoint-restore-charter">WG Checkpoint Restore Charter&lt;/h1>
&lt;p>This charter adheres to the conventions described in the &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md"
 
 target="_blank" rel="noopener">Kubernetes Charter README&lt;/a>
 and uses
the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md"
 
 target="_blank" rel="noopener">wg-governance&lt;/a>
.&lt;/p>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The Checkpoint/Restore Working Group aims to solve the problem of transparently
checkpointing and restoring workloads in Kubernetes, a &lt;a href="https://github.com/kubernetes/enhancements/issues/2008"
 
 target="_blank" rel="noopener">functionality discussed
for over five years&lt;/a>
. The group will deliver the design and
implementation of Checkpoint/Restore functionality in Kubernetes, serving as a
central hub for community information and discussion. This initiative addresses
a wide range of problems, including fault tolerance, improved resource
utilization, and accelerated application startup times.&lt;/p></description></item><item><title>WG Data Protection Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/data-protection/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/data-protection/charter/</guid><description>&lt;h1 id="wg-data-protection-charter">WG Data Protection Charter&lt;/h1>
&lt;p>This charter adheres to the &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md"
 
 target="_blank" rel="noopener">wg-governance&lt;/a>
 guidance as well as
the general conventions described in the &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md"
 
 target="_blank" rel="noopener">Kubernetes Charter README&lt;/a>
 and
the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
, where
applicable to a Working Group.&lt;/p>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The purpose of Data Protection is to ensure that application and its associated
data can be restored quickly after any corruption or loss.&lt;/p>
&lt;p>Data protection in Kubernetes context typically involves backup and recovery
of two types of entities:&lt;/p></description></item><item><title>WG Device Management Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/device-management/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/device-management/charter/</guid><description>&lt;h1 id="wg-device-management-charter">WG Device Management Charter&lt;/h1>
&lt;p>This charter adheres to the conventions described in the &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md"
 
 target="_blank" rel="noopener">Kubernetes Charter
README&lt;/a>
 and uses the Roles and Organization Management outlined in
&lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md"
 
 target="_blank" rel="noopener">wg-governance&lt;/a>
.&lt;/p>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>Enable simple and efficient configuration, sharing, and allocation of
accelerators and other specialized devices. This working group focuses on the
APIs, abstractions, and feature designs needed to configure, target, and share
the necessary hardware for both batch and serving (inference) workloads.&lt;/p>
&lt;h3 id="in-scope">In scope&lt;/h3>
&lt;ul>
&lt;li>Enable efficient utilization of specialized hardware devices. This includes
sharing one or more resources effectively (many workloads sharing a pool of
devices), as well as sharing individual devices effectively (several workloads
dividing up a single device for sharing).&lt;/li>
&lt;li>Enable workload authors to specify “just enough” details about their workload
requirements to ensure it runs optimally, without having to understand exactly
how the infrastructure team has provisioned the cluster.&lt;/li>
&lt;li>Enable the scheduler to choose the correct place to run a workload the vast
majority of the time (rejections should be extremely rare).&lt;/li>
&lt;li>Enable cluster autoscalers and other node auto-provisioning components to
predict whether creating additional resources will satisfy workload needs,
before provisioning those resources.&lt;/li>
&lt;li>Enable the shift from “pods run on nodes” to “workloads consume capacity”.
This allows Kubernetes to provision sets of pods on top of sets of nodes and
specialized hardware, while taking into account the relationships between
those infrastructure components.&lt;/li>
&lt;li>Enable in-node devices as well as network-accessible devices.&lt;/li>
&lt;li>Minimize workload disruption due to hardware failures.&lt;/li>
&lt;li>Address fragmentation of accelerator due to fractional use.&lt;/li>
&lt;li>Additional problems that may be identified and deemed in scope as we gather
use cases and requirements from WG Serving, WG Batch, and other stakeholders.&lt;/li>
&lt;li>Address all of the above while with a simple API that is a natural extension
of the existing Kubernetes APIs, and avoids or minimizes any transition
effort.&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of Scope&lt;/h3>
&lt;ul>
&lt;li>Higher-level workload controller APIs (for example, the equivalent of
Deployment, StatefulSet, or DaemonSet) for specific types of workloads.&lt;/li>
&lt;li>General resource management requirements not related to devices.&lt;/li>
&lt;/ul>
&lt;h2 id="deliverables">Deliverables&lt;/h2>
&lt;p>The WG will coordinate the delivery of KEPs and their implementations by the
participating SIGs. Interim artifacts will include documents capturing use
cases, requirements, and designs; however, all of those will eventually result
in KEPs and code owned by SIGs.&lt;/p></description></item><item><title>WG etcd Operator Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/etcd-operator/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/etcd-operator/charter/</guid><description>&lt;h1 id="wg-etcd-operator">WG etcd operator&lt;/h1>
&lt;p>This charter adheres to the conventions described in the &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md"
 
 target="_blank" rel="noopener">Kubernetes Charter README&lt;/a>

and uses the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md"
 
 target="_blank" rel="noopener">sig-governance&lt;/a>
.&lt;/p>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The purpose of an etcd-operator is to operate automatically etcd clusters which run in the Kubernetes environment.
It minimizes human intervention as much as possible. Note it excludes the case of etcd backing Kubernetes cluster;
instead, etcd runs as POD as normal workloads.&lt;/p>
&lt;h3 id="in-scope">In Scope&lt;/h3>
&lt;ul>
&lt;li>Collect requirements &amp;amp; use cases with a &lt;a href="https://forms.gle/5gBpzaxYtuQPWdBo9"
 
 target="_blank" rel="noopener">survey&lt;/a>
 to better understand what users care about the most.&lt;/li>
&lt;li>Prioritize the tasks based on feedback and create a roadmap.&lt;/li>
&lt;li>Bootstrap a project &amp;ldquo;etcd-operator&amp;rdquo; owned by SIG etcd which resides in the etcd-io or kubernetes-sigs Github orgs.
&lt;ul>
&lt;li>Review existing etcd operators to see if any could be forked or referenced to advance the project.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Discuss and design the core reconciliation workflow, and potentially provide a proof of concept (PoC).&lt;/li>
&lt;li>Figure out how to get resource for following dev/test, i.e. AWS S3.&lt;/li>
&lt;/ul>
&lt;h3 id="out-of-scope">Out of scope&lt;/h3>
&lt;ul>
&lt;li>Manage etcd clusters running within non-Kubernetes environments.&lt;/li>
&lt;li>Manage etcd clusters which are used as the storage backend of a host (non-nested) kube-apiserver.&lt;/li>
&lt;/ul>
&lt;h2 id="stakeholders">Stakeholders&lt;/h2>
&lt;p>Stakeholders for this working group include members in the following SIGs:&lt;/p></description></item><item><title>WG Node Lifecycle Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/node-lifecycle/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/node-lifecycle/charter/</guid><description>&lt;h1 id="wg-node-lifecycle-charter">WG Node Lifecycle Charter&lt;/h1>
&lt;p>This charter adheres to the conventions described in the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/committee-steering/governance/README.md"
 
 >Kubernetes Charter README&lt;/a>
 and uses
the Roles and Organization Management outlined in &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/committee-steering/governance/wg-governance.md"
 
 >wg-governance&lt;/a>
.&lt;/p>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>The Kubernetes ecosystem currently faces challenges in node maintenance scenarios, with multiple
projects independently addressing similar issues. The goal of this working group is to develop
unified APIs that the entire ecosystem can depend on, reducing the maintenance burden across
projects and addressing scenarios that impede node drain or cause improper pod termination. Our
objective is to create easily configurable, out-of-the-box solutions that seamlessly integrate with
existing APIs and behaviors. We will strive to make these solutions minimalistic and extensible to
support advanced use cases across the ecosystem.&lt;/p></description></item><item><title>WG Workload-aware Scheduling Charter</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/workload-aware-scheduling/charter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/community/community-groups/wg/workload-aware-scheduling/charter/</guid><description>&lt;h1 id="wg-workload-aware-scheduling-charter">WG Workload-aware Scheduling Charter&lt;/h1>
&lt;p>This charter adheres to the conventions described in the &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md"
 
 target="_blank" rel="noopener">Kubernetes Charter README&lt;/a>
 and uses
the Roles and Organization Management outlined in &lt;a href="https://github.com/kubernetes/community/blob/master/committee-steering/governance/wg-governance.md"
 
 target="_blank" rel="noopener">wg-governance&lt;/a>
.&lt;/p>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>Native support for workload-aware and topology-aware scheduling in core Kubernetes. Today,
these concerns are spread across multiple SIGs and ecosystem projects, and the lack of a
shared model for expressing workload-level requirements and infrastructure topology makes it
difficult to coordinate placement decisions consistently and efficiently.&lt;/p></description></item><item><title>Windows Conformance</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2578/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/2578/</guid><description>&lt;h1 id="kep-2578-windows-operational-readiness-specification">KEP-2578: Windows Operational Readiness Specification&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3"
 
 >Story 3&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-4"
 
 >Story 4&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#specification-of-windows-operational-readiness-kubernetes-124"
 
 >Specification of Windows Operational Readiness (Kubernetes 1.24)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#basic-networking"
 
 >Basic Networking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#basic-service-accounts-and-local-storage"
 
 >Basic Service accounts and local storage&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#basic-scheduling"
 
 >Basic Scheduling&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#basic-concurrent-functionality"
 
 >Basic concurrent functionality&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#sub-specifications-of-windows-operational-readiness-kubernetes-124"
 
 >Sub-specifications of Windows Operational Readiness (Kubernetes 1.24)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#windows-hostprocess-operational-readiness"
 
 >Windows HostProcess Operational Readiness&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#active-directory"
 
 >Active Directory&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#network-policies"
 
 >Network Policies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-advanced-networking-and-service-proxying"
 
 >Windows Advanced Networking and Service Proxying&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-worker-configuration"
 
 >Windows Worker Configuration&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#option-1---test-tags"
 
 >Option 1 - Test tags&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#option-2---sonobuoy-implementation-for-convenience"
 
 >Option 2 - Sonobuoy implementation for convenience&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#implementation-details-for-sonobuoy"
 
 >Implementation details for Sonobuoy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Windows CPU and Memory Affinity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4885/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4885/</guid><description>&lt;h1 id="kep-4885-windows-cpu-and-memory-affinity">KEP-4885: Windows CPU and Memory Affinity&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#windows-cpu-discovery"
 
 >Windows CPU Discovery&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-memory-considerations"
 
 >Windows Memory considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#kubelet-memory-management"
 
 >Kubelet memory management&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#windows-topology-manager-considerations"
 
 >Windows Topology manager considerations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#deprecation"
 
 >Deprecation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Windows Graceful Node Shutdown</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4802/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/4802/</guid><description>&lt;h1 id="kep-4802-graceful-node-shutdown-for-windows-node">KEP-4802: Graceful Node Shutdown for Windows Node&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories-optional"
 
 >User Stories (Optional)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1"
 
 >Story 1&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2"
 
 >Story 2&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#background-on-windows-shutdown"
 
 >Background on Windows Shutdown&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation"
 
 >Implementation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha-graduation"
 
 >Alpha Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Windows Group Managed Service Accounts for Container Identity</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/689/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/689/</guid><description>&lt;h1 id="windows-group-managed-service-accounts-for-container-identity">Windows Group Managed Service Accounts for Container Identity&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#background"
 
 >Background&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-is-active-directory"
 
 >What is Active Directory?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#what-is-a-windows-service-account"
 
 >What is a Windows service account?&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#how-is-it-applied-to-containers"
 
 >How is it applied to containers?&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#web-applications-with-ms-sql-server"
 
 >Web Applications with MS SQL Server&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#gmsa-specification-for-pods-and-containers"
 
 >GMSA specification for pods and containers&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gmsaexpander-webhook"
 
 >GMSAExpander webhook&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#gmsaexpander-and-gmsaauthorizer-webhooks"
 
 >GMSAExpander and GMSAAuthorizer Webhooks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-in-kubeletkuberuntime-for-windows"
 
 >Changes in Kubelet/kuberuntime for Windows:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-in-cri-api"
 
 >Changes in CRI API:&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-in-dockershim"
 
 >Changes in Dockershim&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-in-cricontainerd"
 
 >Changes in CRIContainerD&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-in-windows-oci-runtime"
 
 >Changes in Windows OCI runtime&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#threat-vectors-and-countermeasures"
 
 >Threat vectors and countermeasures&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#transitioning-from-alpha-annotations-to-betastable-fields"
 
 >Transitioning from Alpha annotations to Beta/Stable fields&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#other-authentication-methods"
 
 >Other authentication methods&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#injecting-credentials-from-a-volume"
 
 >Injecting credentials from a volume&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#specifying-only-the-name-of-gmsacredentialspec-objects-in-pod-spec-fieldsannotations"
 
 >Specifying only the name of GMSACredentialSpec objects in pod spec fields/annotations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#enforce-presence-of-gmsaauthorizer-and-rbac-mode-to-enable-gmsa-functionality-in-kubelet"
 
 >Enforce presence of GMSAAuthorizer and RBAC mode to enable GMSA functionality in Kubelet&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>Active Directory is a service that is built-in and commonly used on Windows Server deployments for user and computer identity. Apps are run using Active Directory identities to enable common user to service, and service to service authentication and authorization. This proposal aims to support a specific type of identity, Group Managed Service Accounts (GMSA), for use with Windows Server containers. This will allow an operator to choose a GMSA at deployment time, and run containers using it to connect to existing applications such as a database or API server without changing how the authentication and authorization are performed.&lt;/p></description></item><item><title>Windows node support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/116/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/116/</guid><description>&lt;h1 id="windows-node-support">Windows node support&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#what-works-today"
 
 >What works today&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-node-roadmap-post-ga-work"
 
 >Windows Node Roadmap (post-GA work)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#custom-dns-updates-for-cni-plugins"
 
 >Custom DNS updates for CNI plugins&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#what-will-never-work"
 
 >What will never work&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-container-compatibility"
 
 >Windows Container Compatibility&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#relevant-resourcesconversations"
 
 >Relevant resources/conversations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#ensuring-os-specific-workloads-land-on-appropriate-container-host"
 
 >Ensuring OS-specific workloads land on appropriate container host&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#memory-overprovisioning"
 
 >Memory Overprovisioning&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#testing-plan"
 
 >Testing Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-dashboard"
 
 >Test Dashboard&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-environment"
 
 >Test Environment&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-approach"
 
 >Test Approach&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adapting-existing-tests"
 
 >Adapting existing tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#substitute-test-cases"
 
 >Substitute test cases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#windows-specific-tests"
 
 >Windows specific tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#conformance-testing"
 
 >Conformance Testing&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#api-reference"
 
 >API Reference&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#v1container"
 
 >V1.Container&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v1pod"
 
 >V1.Pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#v1podsecuritycontext"
 
 >V1.PodSecurityContext&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#other-references"
 
 >Other references&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>There is strong interest in the community for adding support for workloads running on Microsoft Windows. This is non-trivial due to the significant differences in the implementation of Windows from the Linux-based OSes that have so far been supported by Kubernetes. This KEP will allow Windows nodes to be added to a Kubernetes cluster as compute nodes. With the introduction of Windows nodes, developers will be able to schedule Windows Server containers and run Windows-based applications on Kubernetes.&lt;/p></description></item><item><title>Windows Privileged Container Support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1981/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1981/</guid><description>&lt;!--
**Note:** When your KEP is complete, all of these comment blocks should be removed.

To get started with this template:

- [ ] **Pick a hosting SIG.**
 Make sure that the problem space is something the SIG is interested in taking
 up. KEPs should not be checked in without a sponsoring SIG.
- [ ] **Create an issue in kubernetes/enhancements**
 When filing an enhancement tracking issue, please make sure to complete all
 fields in that template. One of the fields asks for a link to the KEP. You
 can leave that blank until this KEP is filed, and then go back to the
 enhancement and add the link.
- [ ] **Make a copy of this template directory.**
 Copy this template into the owning SIG's directory and name it
 `NNNN-short-descriptive-title`, where `NNNN` is the issue number (with no
 leading-zero padding) assigned to your enhancement above.
- [ ] **Fill out as much of the kep.yaml file as you can.**
 At minimum, you should fill in the "Title", "Authors", "Owning-sig",
 "Status", and date-related fields.
- [ ] **Fill out this file as best you can.**
 At minimum, you should fill in the "Summary" and "Motivation" sections.
 These should be easy if you've preflighted the idea of the KEP with the
 appropriate SIG(s).
- [ ] **Create a PR for this KEP.**
 Assign it to people in the SIG who are sponsoring this process.
- [ ] **Merge early and iterate.**
 Avoid getting hung up on specific details and instead aim to get the goals of
 the KEP clarified and merged quickly. The best way to do this is to just
 start with the high-level sections and fill out details incrementally in
 subsequent PRs.

Just because a KEP is merged does not mean it is complete or approved. Any KEP
marked as `provisional` is a working document and subject to change. You can
denote sections that are under active debate as follows:

```
&lt;&lt;[UNRESOLVED optional short context or usernames ]>>
Stuff that is being argued.
&lt;&lt;[/UNRESOLVED]>>
```

When editing KEPS, aim for tightly-scoped, single-topic PRs to keep discussions
focused. If you disagree with what is already in a document, open a new PR
with suggested changes.

One KEP corresponds to one "feature" or "enhancement" for its whole lifecycle.
You do not need a new KEP to move from beta to GA, for example. If
new details emerge that belong in the KEP, edit the KEP. Once a feature has become
"implemented", major changes should get new KEPs.

The canonical place for the latest set of instructions (and the likely source
of this file) is [here](https://raw.githubusercontent.com/kubernetes/enhancements/master/keps/NNNN-kep-template/README.md).

**Note:** Any PRs to move a KEP to `implementable`, or significant changes once
it is marked `implementable`, must be approved by each of the KEP approvers.
If none of those approvers are still appropriate, then changes to that list
should be approved by the remaining approvers and/or the owning SIG (or
SIG Architecture for cross-cutting KEPs).
-->
&lt;h1 id="kep-1981-windows-privileged-containers-and-host-networking-mode">KEP-1981: Windows Privileged Containers and Host Networking Mode&lt;/h1>
&lt;!--
This is the title of your KEP. Keep it short, simple, and descriptive. A good
title can help communicate what the KEP is and should be considered as part of
any review.
-->
&lt;!--
A table of contents is helpful for quickly jumping to sections of a KEP and for
highlighting any additional information provided beyond the standard KEP
template.

Ensure the TOC is wrapped with
 &lt;code>&amp;lt;!-- toc --&amp;rt;&amp;lt;!-- /toc --&amp;rt;&lt;/code>
tags, and then generate with `hack/update-toc.sh`.
-->
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#use-case-1-privileged-daemon-sets"
 
 >Use case 1: Privileged Daemon Sets&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#use-case-2-administrative-tasks"
 
 >Use case 2: Administrative tasks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats-optional"
 
 >Notes/Constraints/Caveats (Optional)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-security-implications"
 
 >Pod Security Implications&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#overview"
 
 >Overview&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#networking"
 
 >Networking&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#resource-limits"
 
 >Resource Limits&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-lifecycle"
 
 >Container Lifecycle&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-users"
 
 >Container users&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-mounts"
 
 >Container Mounts&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#compatibility"
 
 >Compatibility&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#container-images"
 
 >Container Images&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#container-image-builddefinition"
 
 >Container Image Build/Definition&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#cri-implementation-details"
 
 >CRI Implementation Details&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#kubernetes-api-updates"
 
 >Kubernetes API updates&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#windowssecuritycontextoptionshostprocess-flag"
 
 >WindowsSecurityContextOptions.HostProcess Flag&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#host-network-mode"
 
 >Host Network Mode&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-deployment-spec"
 
 >Example deployment spec&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#kubelet-implementation-details"
 
 >Kubelet Implementation Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#cri-support-only"
 
 >CRI Support Only&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#feature-gates"
 
 >Feature Gates&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-1"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#open-questions"
 
 >Open Questions&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Windows RuntimeClass Support</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1301/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1301/</guid><description>&lt;h1 id="runtimeclass-support-for-windows">RuntimeClass Support for Windows&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1---easy-selection-of-windows-server-releases"
 
 >Story 1 - Easy selection of Windows Server releases&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2---forward-compatibility-with-hyper-v"
 
 >Story 2 - Forward compatibility with Hyper-V&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3---choosing-a-specific-multi-arch-image"
 
 >Story 3 - Choosing a specific multi-arch image&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints"
 
 >Implementation Details/Notes/Constraints&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adding-new-label-nodekubernetesiowindows-build-done"
 
 >Adding new label node.kubernetes.io/windows-build (done)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#adding-annotations-to-imagespec"
 
 >Adding annotations to ImageSpec&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#imagespec-changes"
 
 >ImageSpec changes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#imagespec-as-part-of-the-image-struct"
 
 >ImageSpec as part of the Image struct&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scenarios"
 
 >Scenarios&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#adding-new-node-label"
 
 >Adding new node label&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#annotations-in-imagespec"
 
 >Annotations in ImageSpec&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#e2e-testing-with-cri-containerd-and-kubernetes"
 
 >E2E Testing with CRI-ContainerD and Kubernetes&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-testing-with-critest"
 
 >Unit testing with CRITest&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alpha---beta-graduation"
 
 >Alpha -&amp;gt; Beta Graduation&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta---ga-graduation"
 
 >Beta -&amp;gt; GA Graduation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#removing-a-deprecated-flag"
 
 >Removing a deprecated flag&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#support-multiarch-osarchversion-in-cri"
 
 >Support multiarch os/arch/version in CRI&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#make-the-scheduler-aware-of-multi-arch-images"
 
 >Make the scheduler aware of Multi-arch images&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#create-a-multi-arch-mutating-admission-controller"
 
 >Create a multi-arch Mutating admission controller&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#future-considerations"
 
 >Future Considerations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#pod-overhead"
 
 >Pod Overhead&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#runtimeclass-parameters"
 
 >RuntimeClass Parameters&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#reference--examples"
 
 >Reference &amp;amp; Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#multi-arch-container-image-overview"
 
 >Multi-arch container image overview&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>&lt;strong>ACTION REQUIRED:&lt;/strong> In order to merge code into a release, there must be an issue in &lt;a href="https://github.com/kubernetes/enhancements/issues"
 
 target="_blank" rel="noopener">kubernetes/enhancements&lt;/a>
 referencing this KEP and targeting a release milestone &lt;strong>before &lt;a href="https://github.com/kubernetes/sig-release/tree/master/releases"
 
 target="_blank" rel="noopener">Enhancement Freeze&lt;/a>

of the targeted release&lt;/strong>.&lt;/p></description></item><item><title>Windows security context API changes</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1043/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/1043/</guid><description>&lt;h1 id="windows-specific-options-in-pod-security-context-and-container-security-context">Windows specific options in Pod Security Context and Container Security Context&lt;/h1>
&lt;h2 id="table-of-contents">Table of Contents&lt;/h2>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#specify-gmsa-credential-spec-and-runasusername-for-a-pod"
 
 >Specify GMSA credential spec and RunAsUserName for a pod&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#specify-distinct-gmsa-credential-spec-for-a-container-in-a-pod-while-retaining-runasusername-from-pod-spec"
 
 >Specify distinct GMSA credential spec for a container in a pod (while retaining RunAsUserName from pod spec)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-detailsnotesconstraints-optional"
 
 >Implementation Details/Notes/Constraints [optional]&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#validation-of-fields"
 
 >Validation of fields&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#specification-of-both-gmsa-credspec-and-runasusername"
 
 >Specification of both GMSA credspec and RunAsUserName&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#changes-in-kubelet"
 
 >Changes in kubelet&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-and-version-skew-strategy"
 
 >Upgrade / Downgrade and Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#implementation-roadmap"
 
 >Implementation Roadmap&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks-optional"
 
 >Drawbacks [optional]&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives-optional"
 
 >Alternatives [optional]&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;ul>
&lt;li>&lt;input checked="" disabled="" type="checkbox"> kubernetes/enhancements issue in release milestone, which links to KEP (this should be a link to the KEP location in kubernetes/enhancements, not the initial KEP PR)&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> KEP approvers have set the KEP status to &lt;code>implementable&lt;/code>&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Design details are appropriately documented&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Test plan is in place, giving consideration to SIG Architecture and SIG Testing input&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Graduation criteria is in place&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> &amp;ldquo;Implementation History&amp;rdquo; section is up-to-date for milestone&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]&lt;/li>
&lt;li>&lt;input disabled="" type="checkbox"> Supporting documentation e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes&lt;/li>
&lt;/ul>
&lt;h2 id="summary">Summary&lt;/h2>
&lt;p>In this KEP, we propose API enhancements in the Kubernetes pod spec to capture Windows OS specific security options from the perspective of Windows workload identity in containers. Initially the enhancements will cover fields pertinent to GMSA credential specs and the username with which to execute the container entry-point. More fields may be added in the future. Please note that this is a KEP with a very limited scope focussing mainly on the API enhancements needed to support GMSA credential spec details and the RunAsUsername field. Details around overall GMSA functionality can be found in the &lt;a href="https://github.com/kubernetes/enhancements/blob/master/keps/sig-windows/20181221-windows-group-managed-service-accounts-for-container-identity.md"
 
 target="_blank" rel="noopener">GMSA&lt;/a>
 KEP and are not repeated in this KEP.&lt;/p></description></item><item><title>Workload Aware Scheduling Controller APIs</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6089/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/6089/</guid><description>&lt;h1 id="kep-6089-workload-aware-scheduling-controller-apis">KEP-6089: Workload Aware Scheduling Controller APIs&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#reusable-api-building-blocks"
 
 >Reusable API Building Blocks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#shared-workloadbuilder-library"
 
 >Shared workloadbuilder Library&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-recommendations--controller-autonomy"
 
 >Integration Recommendations &amp;amp; Controller Autonomy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-integration---api-usage-examples"
 
 >Job Integration - API Usage Examples&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-1-job-with-gang-scheduling-zone-topology-and-atomic-disruption"
 
 >Example 1: Job with Gang Scheduling, Zone Topology, and Atomic Disruption&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#example-2-backward-compatibility-and-sane-defaulting-implicit-opt-out"
 
 >Example 2: Backward Compatibility and Sane Defaulting (Implicit Opt-Out)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#story-1-the-end-user"
 
 >Story 1: The End-User&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-2-the-controller-maintainer"
 
 >Story 2: The Controller Maintainer&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#story-3-the-multi-level-controller-maintainer"
 
 >Story 3: The Multi-Level Controller Maintainer&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#core-principles--assumptions"
 
 >Core Principles &amp;amp; Assumptions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#standardized-building-blocks-definitions-schedulingk8sio"
 
 >Standardized Building Blocks Definitions (&lt;code>scheduling.k8s.io&lt;/code>)&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#job-integration-batchv1"
 
 >Job Integration (batch/v1)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#api-changes"
 
 >API Changes&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#shared-workloadbuilder-go-translation-library"
 
 >Shared workloadbuilder Go Translation Library&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-design--architecture"
 
 >1. Design &amp;amp; Architecture&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-controller-opt-in-for-new-scheduling-capabilities"
 
 >2. Controller Opt-In for New Scheduling Capabilities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#3-library-api-definition"
 
 >3. Library API Definition&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#4-library-usage-example-job"
 
 >4. Library Usage Example (Job)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#reference-integration-examples-jobset-multi-level"
 
 >Reference Integration Examples: JobSet (Multi-Level)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-option-a-template-delegation-model-nested-configuration"
 
 >1. Option A: Template Delegation Model (Nested Configuration)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-yaml-manifest"
 
 >Example YAML Manifest&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#2-option-b-centralized-targeted-policies-model-root-only-configuration"
 
 >2. Option B: Centralized &amp;lsquo;Targeted Policies&amp;rsquo; Model (Root-only Configuration)&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#example-yaml-manifest-1"
 
 >Example YAML Manifest&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#3-controller-integration-and-workloadbuilder-mapping-go-code"
 
 >3. Controller Integration and workloadbuilder Mapping Go Code&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#recommendations-for-multi-level-composite-controllers"
 
 >Recommendations for Multi-Level Composite Controllers&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-runtime-podgroup-and-compositepodgroup-lifecycle-management"
 
 >1. Runtime PodGroup and CompositePodGroup Lifecycle Management&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-downward-template-and-parent-mapping-via-well-known-annotations"
 
 >2. Downward Template and Parent Mapping via Well-Known Annotations&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#the-solution-downward-mapping-annotations"
 
 >The Solution: Downward Mapping Annotations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#go-package-placement--graduation-strategy"
 
 >Go Package Placement &amp;amp; Graduation Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#1-implementation-complexity--the-transitive-capability-leak"
 
 >1. Implementation Complexity &amp;amp; The &amp;quot;Transitive Capability Leak&amp;quot;&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#2-the-upstream-dependency-bottleneck"
 
 >2. The Upstream Dependency Bottleneck&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#the-chosen-solution-autonomous-composed-configurations--conscious-trade-offs"
 
 >The Chosen Solution: Autonomous Composed Configurations &amp;amp; Conscious Trade-offs&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>Workload-aware preemption</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5710/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/resources/keps/5710/</guid><description>&lt;h1 id="kep-5710-workload-aware-preemption">KEP-5710: Workload-aware preemption&lt;/h1>
&lt;!-- toc -->
&lt;ul>
&lt;li>&lt;a href="#release-signoff-checklist"
 
 >Release Signoff Checklist&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#summary"
 
 >Summary&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#motivation"
 
 >Motivation&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#goals"
 
 >Goals&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#non-goals"
 
 >Non-Goals&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#proposal"
 
 >Proposal&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#principles"
 
 >Principles&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#high-level-approach"
 
 >High-level approach&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#user-stories"
 
 >User Stories&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#preemption-of-ai-training-job"
 
 >Preemption of AI Training job&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ai-training-job-as-preemptor"
 
 >AI Training Job as preemptor&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preemption-of-multihost-inference"
 
 >Preemption of Multihost Inference&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preemption-of-multihost-inference-that-can-run-in-a-degraded-mode"
 
 >Preemption of Multihost Inference that can run in a degraded mode&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#notesconstraintscaveats"
 
 >Notes/Constraints/Caveats&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#risks-and-mitigations"
 
 >Risks and Mitigations&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#design-details"
 
 >Design Details&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#preemption-unit"
 
 >Preemption unit&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#pod-group-priorities"
 
 >Pod Group priorities&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#preemption-algorithm"
 
 >Preemption algorithm&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#in-place-victim-reprieval"
 
 >In place victim reprieval&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#topologyawarescheduling"
 
 >TopologyAwareScheduling&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#compositepodgroup"
 
 >CompositePodGroup&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#pod-group-post-filter"
 
 >Pod Group Post Filter&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#potential-future-extensions"
 
 >Potential future extensions&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#test-plan"
 
 >Test Plan&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#prerequisite-testing-updates"
 
 >Prerequisite testing updates&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#unit-tests"
 
 >Unit tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#integration-tests"
 
 >Integration tests&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#e2e-tests"
 
 >e2e tests&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#graduation-criteria"
 
 >Graduation Criteria&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#alpha"
 
 >Alpha&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#beta"
 
 >Beta&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#ga"
 
 >GA&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#upgrade--downgrade-strategy"
 
 >Upgrade / Downgrade Strategy&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#version-skew-strategy"
 
 >Version Skew Strategy&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#production-readiness-review-questionnaire"
 
 >Production Readiness Review Questionnaire&lt;/a>

&lt;ul>
&lt;li>&lt;a href="#feature-enablement-and-rollback"
 
 >Feature Enablement and Rollback&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#rollout-upgrade-and-rollback-planning"
 
 >Rollout, Upgrade and Rollback Planning&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#monitoring-requirements"
 
 >Monitoring Requirements&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#dependencies"
 
 >Dependencies&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#scalability"
 
 >Scalability&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#troubleshooting"
 
 >Troubleshooting&lt;/a>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="#implementation-history"
 
 >Implementation History&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#drawbacks"
 
 >Drawbacks&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#alternatives"
 
 >Alternatives&lt;/a>
&lt;/li>
&lt;li>&lt;a href="#infrastructure-needed-optional"
 
 >Infrastructure Needed (Optional)&lt;/a>
&lt;/li>
&lt;/ul>
&lt;!-- /toc -->
&lt;h2 id="release-signoff-checklist">Release Signoff Checklist&lt;/h2>
&lt;!--
**ACTION REQUIRED:** In order to merge code into a release, there must be an
issue in [kubernetes/enhancements] referencing this KEP and targeting a release
milestone **before the [Enhancement Freeze](https://git.k8s.io/sig-release/releases)
of the targeted release**.

For enhancements that make changes to code or processes/procedures in core
Kubernetes—i.e., [kubernetes/kubernetes], we require the following Release
Signoff checklist to be completed.

Check these off as they are completed for the Release Team to track. These
checklist items _must_ be updated for the enhancement to be released.
-->
&lt;p>Items marked with (R) are required &lt;em>prior to targeting to a milestone / release&lt;/em>.&lt;/p></description></item><item><title>YouTube Channel Guidelines</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/youtube/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/youtube/</guid><description>&lt;p>YouTube serves as the primary means of distribution for recorded Kubernetes
community content including Zoom recordings, official project workshops and
Contributor Summit sessions.&lt;/p>
&lt;h2 id="code-of-conduct">Code of Conduct&lt;/h2>
&lt;p>Kubernetes adheres to the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct"
 
 >Kubernetes Code of Conduct&lt;/a>
 throughout the project,
and includes all communications such as YouTube.&lt;/p>
&lt;h2 id="admins">Admins&lt;/h2>
&lt;ul>
&lt;li>Check the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/moderators"
 
 >centralized list of administrators&lt;/a>
 for contact information.&lt;/li>
&lt;li>To contact the admin group in Slack, ping &lt;code>@youtube-admins&lt;/code> in the
&lt;code>#sig-contribex&lt;/code> Slack channel.&lt;/li>
&lt;/ul>
&lt;h2 id="meeting-playlists">Meeting Playlists&lt;/h2>
&lt;p>The &lt;a href="https://www.youtube.com/channel/UCZ2bu0qutTOM0tHYa_jkIwg"
 
 target="_blank" rel="noopener">Kubernetes YouTube Channel&lt;/a>
 has separate playlists for each SIG
or WG meeting recordings, as well as recordings of other recurring
events such as the &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/orientation"
 
 >New Contributor Orientation&lt;/a>
.&lt;/p></description></item><item><title>Zoom Guidelines</title><link>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/zoom/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-846--kubernetes-contributor.netlify.app/docs/comms/zoom/</guid><description>&lt;p>Zoom is the main video communication platform for Kubernetes. It is used for
running the &lt;a href="https://github.com/kubernetes/community/blob/main/sig-list.md"
 
 target="_blank" rel="noopener">SIG/WG/Committee meetings&lt;/a>
, and many other Kubernetes online events.
Since the Zoom meetings are open to the general public, a Zoom host or co-host
must moderate in every sense of the word, from starting to stopping
the meeting to address &lt;a href="https://deploy-preview-846--kubernetes-contributor.netlify.app/includes/cncf-code-of-conduct"
 
 >Kubernetes code of conduct&lt;/a>
 issues.&lt;/p>
&lt;p>These guidelines are meant as a tool to help Kubernetes members manage their
Zoom resources.&lt;/p></description></item></channel></rss>