├── .github └── ISSUE_TEMPLATE │ ├── general-issue.md │ ├── one-time-funding-over--200usd.md │ ├── one-time-funding-under--200usd.md │ └── recurring_expense.md ├── CONTRIBUTING.md ├── LICENSE ├── OWNERS ├── OWNERS_ALIASES ├── README.md ├── SECURITY.md ├── SECURITY_CONTACTS ├── charter.md ├── code-of-conduct.md ├── elections.md ├── funding-requests.md ├── operations ├── bosun.md ├── changes.md ├── cncf-and-k8s.md ├── onboarding.md └── service-desk.md └── reports ├── summary-2020.md └── summary-2021.md /.github/ISSUE_TEMPLATE/general-issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: General Issue 3 | about: Cross cutting Kubernetes org issues, policy issues, etc 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Problem Statement 11 | Try to keep the problem statement clear and concise. Where possible, open separate issues. 12 | 13 | ### Proposed Solution 14 | How would you like to see this handled 15 | 16 | ### Cost 17 | If you are requesting funding please file requests issues [here](https://github.com/kubernetes/funding) , otherwise please add any associated costs with your request if it is applicable. 18 | 19 | ### Open Questions 20 | - [ ] Open 21 | - [ ] Questions 22 | 23 | ### Next Steps 24 | - [ ] Next 25 | - [ ] Steps 26 | 27 | ### Other Considerations, Notes, or References 28 | - [ ] Fixes # 29 | - [ ] xref # 30 | 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/one-time-funding-over--200usd.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: One-time funding over $200USD 3 | about: a non-recurring request with more questions 4 | title: 'request: one-time $NNNUSD to fund MMM' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 13 | 14 | - **Description**: 15 | - **Requesting SIG**: 16 | - **SIG approval**: 17 | - **Cost**: 18 | - **Alternatives considered**: -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/one-time-funding-under--200usd.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: One-time funding under $200USD 3 | about: a non-recurring request with easiest process 4 | title: 'request: one-time $NNNUSD to fund MMM' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 13 | 14 | - **Description**: 15 | - **Requesting SIG**: 16 | - **SIG approval**: 17 | - **Cost**: -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/recurring_expense.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Recurring expense 3 | about: a recurring request with lots of questions 4 | title: 'request: recurring $NNNUSD/month to fund MMM' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 13 | 14 | - **Description**: 15 | - **Requesting SIG**: 16 | - **SIG approval**: 17 | - **Cost**: 18 | - Frequency: 19 | - Scale function: 20 | - **SIG approval list archive URL**: 21 | - **Owners for renewal**: 22 | - **Cancellation criteria**: 23 | - **Alternatives considered**: -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Steering 2 | This repo and the committee itself 3 | 4 | This repo is for the use of the steering committee to organize itself and record 5 | decisions and processes. 6 | 7 | The right mode to contribute depends on the type of change that you are 8 | proposing or engagement level you are seeking with the committee. 9 | 10 | # Steering Committee Members 11 | 12 | Members have direct access to this repo and so have more options. 13 | 14 | ## Small changes that are non controversial 15 | 16 | Make a direct commit to the repo. Feel free to use the built in github editor. 17 | 18 | ## Medium changes that might benefit from discussion 19 | 20 | Create a PR. 21 | Send mail to steering@kubernetes.io if appropriate. 22 | If it is clear that there is no disagreement feel free to self merge. 23 | 24 | ## Large changes or new policies 25 | 26 | Create a PR. 27 | Discuss at length and have decisions ratified by the larger group. 28 | Ensure there is live discussion by a quorum of members. 29 | 30 | # Non-members 31 | 32 | - Open an issue in this repo and follow up an email to steering@kubernetes.io. 33 | We do watch the repo but this gives us a better heads up to prepare in case we 34 | need to find or ask for more information. 35 | - If you need guidance (example: SIG Chairs, funding*) or have a governance 36 | discussion topic, please join us at our monthly public meeting! By joining the 37 | mailing list, you'll also get the calendar invite. Check our [README] to get the 38 | info, too. 39 | - In order for us to best serve you, please email us steering@kubernetes.io 40 | with the topic you'd like to address, supporting documentation and context, 41 | the solution you are seeking (if known) and what month you'd like to visit. 42 | - To communicate sensitive items with the steering committee privately, send an 43 | email to steering-private@kubernetes.io. 44 | 45 | *all funding inquires should start here -> https://github.com/kubernetes/funding 46 | 47 | 48 | [README]: ./README.md 49 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /OWNERS: -------------------------------------------------------------------------------- 1 | # See the OWNERS docs at https://go.k8s.io/owners 2 | 3 | approvers: 4 | - steering-committee 5 | -------------------------------------------------------------------------------- /OWNERS_ALIASES: -------------------------------------------------------------------------------- 1 | # See the OWNERS docs: https://git.k8s.io/community/docs/devel/owners.md 2 | 3 | aliases: 4 | steering-committee: 5 | - BenTheElder 6 | - aojea 7 | - justaugustus 8 | - pacoxu 9 | - pohly 10 | - saschagrunert 11 | - soltysh 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Steering Committee 2 | 3 | ## Members 4 | 5 | The Steering Committee is a 7 member body, overseeing the governance of the 6 | Kubernetes project. See the [Steering Committee Charter](charter.md) for 7 | specific committee structure information. 8 | 9 | ### Term ends in October 2026 10 | 11 | | Name | Profile | Affiliation | 12 | | ---- | ------- | ----------- | 13 | | Antonio Ojea | **[@aojea](https://github.com/aojea)** | Google | 14 | | Benjamin Elder | **[@BenTheElder](https://github.com/bentheelder)** | Google | 15 | | Sascha Grunert | **[@saschagrunert](https://github.com/saschagrunert)** | Red Hat | 16 | 17 | ### Term ends in October 2025 18 | 19 | | Name | Profile | Affiliation | 20 | | ---- | ------- | ----------- | 21 | | Maciej Szulik | **[@soltysh](https://github.com/soltysh)** | Defense Unicorns | 22 | | Paco Xu 徐俊杰 | **[@pacoxu](https://github.com/pacoxu)** | DaoCloud | 23 | | Patrick Ohly | **[@pohly](https://github.com/pohly)** | Intel | 24 | | Stephen Augustus | **[@justaugustus](https://github.com/justaugustus)** | Bloomberg | 25 | 26 | ### Emeritus 27 | 28 | | Name | Profile | 29 | | ---- | ------- | 30 | | Aaron Crickenberger | **[@spiffxp](https://github.com/spiffxp)** | 31 | | Bob Killen | **[@mrbobbytables](https://github.com/mrbobbytables)** | 32 | | Brandon Philips | **[@philips](https://github.com/philips)** | 33 | | Brendan Burns | **[@brendandburns](https://github.com/brendandburns)** | 34 | | Brian Grant | **[@bgrant0607](https://github.com/bgrant0607)** | 35 | | Carlos Tadeu Panato Jr. | **[@cpanato](https://github.com/cpanato)** | 36 | | Christoph Blecker | **[@cblecker](https://github.com/cblecker)** | 37 | | Clayton Coleman | **[@smarterclayton](https://github.com/smarterclayton)** | 38 | | Davanum Srinivas | **[@dims](https://github.com/dims)** | 39 | | Derek Carr | **[@derekwaynecarr](https://github.com/derekwaynecarr)** | 40 | | Joe Beda | **[@jbeda](https://github.com/jbeda)** | 41 | | Jordan Liggitt | **[@liggitt](https://github.com/liggitt)** | 42 | | Lachlan Evenson | **[@lachie83](https://github.com/lachie83)** | 43 | | Michelle Dhanani | **[@michelleN](https://github.com/michelleN)** | 44 | | Nabarun Pal | **[@palnabarun](https://github.com/palnabarun)** | 45 | | Nikhita Raghunath | **[@nikhita](https://github.com/nikhita)** | 46 | | Paris Pittman | **[@parispittman](https://github.com/parispittman)** | 47 | | Phillip Wittrock | **[@pwittrock](https://github.com/pwittrock)** | 48 | | Quinton Hoole | **[@quinton-hoole](https://github.com/quinton-hoole)** | 49 | | Sarah Novotny | **[@sarahnovotny](https://github.com/sarahnovotny)** | 50 | | Tim Hockin | **[@thockin](https://github.com/thockin)** | 51 | | Tim Pepper | **[@tpepper](https://github.com/tpepper)** | 52 | | Timothy St. Clair | **[@timothysc](https://github.com/timothysc)** | 53 | 54 | ## Kubernetes CNCF Governing Board Representative 55 | 56 | The Kubernetes Project is granted one of the two [Developer Representative] 57 | seats on the [CNCF Governing Board]. This seat may be held by current and 58 | former Kubernetes Steering Members and is elected to a two year term. 59 | 60 | | Name | Profile | Term | 61 | | ---- | ------- | ---- | 62 | | Christoph Blecker | **[@cblecker](https://github.com/cblecker)** | 2025 | 63 | 64 | ### Emeritus Kubernetes CNCF Governing Board Representatives 65 | 66 | | Name | Profile | 67 | | ---- | ------- | 68 | | Michelle Dhanani | **[@michelleN](https://github.com/michelleN)** | 69 | | Paris Pittman | **[@parispittman](https://github.com/parispittman)** | 70 | 71 | [Developer Representative]: https://github.com/cncf/foundation/blob/main/maintainers-election-policy.md#developer-representation-on-the-cncf-gb 72 | [CNCF Governing Board]: https://www.cncf.io/people/governing-board/ 73 | 74 | ## CNCF Representative 75 | 76 | There are various cases when the Steering Committee may require interactions 77 | with CNCF, so a dedicated person from the CNCF Staff acts a primary 78 | communication point between Steering and CNCF. 79 | 80 | | Name | Profile | 81 | | ---- | ------- | 82 | | Jeff Sica | **[@jeefy](https://github.com/jeefy)** | 83 | 84 | For more details on the relationship between Steering and CNCF, please see a 85 | dedicated document [Relationship with the CNCF](operations/cncf-and-k8s.md). 86 | 87 | ## Communication Channels 88 | 89 | - Public Slack: [#steering-committee](https://kubernetes.slack.com/messages/steering-committee) 90 | - Mailing List: steering@kubernetes.io ([archive](https://groups.google.com/a/kubernetes.io/forum/#!forum/steering)) 91 | - Private Mailing List: steering-private@kubernetes.io 92 | - [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/committee%2Fsteering) 93 | - GitHub Teams: 94 | - [@kubernetes/steering-committee](https://github.com/orgs/kubernetes/teams/steering-committee) - General Discussion 95 | 96 | ### Private Communication Channels 97 | 98 | The Steering Committee often deals with sensitive topics and has several 99 | private slack channels to discuss and coordinate with our project representatives. 100 | 101 | - `#steering-private` - Private channel for Steering Members 102 | - `#steering-cncf-rep-private` - Private channel between Steering and the 103 | current CNCF Representative. 104 | - `#steering-gb-rep-private` - Private channel between Steering and the current 105 | Kubernetes CNCF Governing Board Representative. 106 | 107 | ## Meetings 108 | 109 | We have two meetings every month. 110 | 111 | - We hold an open and recorded online meeting where the community is welcome to join the first Wednesday at 8am PT of every month if there is [quorum](charter.md#quorum). 112 | - We have a closed and not recorded online meeting every 3rd Wednesday of the month at 8am PT if there is [quorum](charter.md#quorum). 113 | 114 | ### Resources 115 | 116 | - [Recordings of our meetings](https://www.youtube.com/watch?v=YAzgJRQxsdc&list=PL69nYSiGNLP1yP1B_nd9-drjoxp0Q14qM) are publicly available on youtube 117 | - [Meeting notes](https://bit.ly/k8s-steering-wd) are available to members of the [kubernetes-dev mailing list](https://groups.google.com/forum/#!forum/kubernetes-dev) 118 | 119 | ## Projects 120 | 121 | - [Charter](charter.md) 122 | - [Backlog](https://github.com/orgs/kubernetes/projects/40) 123 | 124 | ### CNCF ServiceDesk access 125 | 126 | The CNCF ServiceDesk policy for Kubernetes community is defined at [ServiceDesk](operations/service-desk.md). 127 | 128 | ## Top-level Accounts 129 | 130 | The steering committee delegates ownership of various Kubernetes community accounts like GitHub, domain names, etc to SIGs and sub-projects. However, the committee also reserves top-level account access for service governance in some cases. 131 | 132 | ### Google Workspace 133 | 134 | 137 | 138 | | Account | Owner | 139 | | ------- | ----- | 140 | | sc1@kubernetes.io | Stephen Augustus | 141 | | sc2@kubernetes.io | Antonio Ojea | 142 | | sc3@kubernetes.io | Maciej Szulik | 143 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Security Announcements 4 | 5 | Join the [kubernetes-security-announce] group for security and vulnerability announcements. 6 | 7 | You can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss]. 8 | 9 | ## Reporting a Vulnerability 10 | 11 | Instructions for reporting a vulnerability can be found on the 12 | [Kubernetes Security and Disclosure Information] page. 13 | 14 | ## Supported Versions 15 | 16 | Information about supported Kubernetes versions can be found on the 17 | [Kubernetes version and version skew support policy] page on the Kubernetes website. 18 | 19 | [kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce 20 | [kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50 21 | [Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions 22 | [Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability 23 | -------------------------------------------------------------------------------- /SECURITY_CONTACTS: -------------------------------------------------------------------------------- 1 | # Defined below are the security contacts for this repo. 2 | # 3 | # They are the contact point for the Product Security Committee to reach out 4 | # to for triaging and handling of incoming issues. 5 | # 6 | # The below names agree to abide by the 7 | # [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) 8 | # and will be removed and replaced if they violate that agreement. 9 | # 10 | # DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE 11 | # INSTRUCTIONS AT https://kubernetes.io/security/ 12 | 13 | BenTheElder 14 | cblecker 15 | cpanato 16 | justaugustus 17 | mrbobbytables 18 | palnabarun 19 | tpepper 20 | -------------------------------------------------------------------------------- /charter.md: -------------------------------------------------------------------------------- 1 | # Kubernetes Steering Committee Charter 2 | 3 | This document outlines the mission, scope, and objectives of the Kubernetes 4 | Steering Committee. 5 | 6 | ## Mission 7 | 8 | The Kubernetes Steering Committee is the governing body of the Kubernetes 9 | project, providing decision-making and oversight pertaining to the Kubernetes 10 | project bylaws, sub-organizations, and financial planning. The Steering 11 | Committee also defines the project values and structure. 12 | 13 | ## How 14 | 15 | * Adapt the role and structure of the Steering Committee as needed to meet the 16 | needs of the project. 17 | * Responsibilities not explicitly delegated to other 18 | parties[2](#footnote2) through their charters reside with 19 | the Steering Committee. 20 | * All management[1](#footnote1) responsibilities should be delegated to other 21 | parties[2](#footnote2). 22 | * All technical responsibilities should be delegated to SIGs (i.e. the SC shouldn't 23 | retain technical responsibilities itself). 24 | 25 | ## Direct responsibilities of the Steering Committee 26 | 27 | The following responsibilities belong directly to the Steering Committee. 28 | 29 | * Through the chartering review process, delegate ownership of, responsibility for 30 | and authority over areas of the project to specific entities[2](#footnote2). 31 | * Define, evolve, and defend the non-technical vision / mission and the values 32 | of the project. 33 | * Charter and refine policy for defining new community groups[3](#footnote3), 34 | and establish transparency and accountability policies for such groups 35 | * Define and evolve project and group[3](#footnote3) governance 36 | structures and policies[4](#footnote4). 37 | * Act as a final non-technical escalation point for any Kubernetes repository[5](#footnote5). 38 | * Request funds and other support from the CNCF (e.g. marketing, press, etc.) 39 | * Define and enforce requirements for community groups[3](#footnote3) 40 | to be in good standing such as having an approved charter. 41 | 42 | ### Not yet delegated responsibilities 43 | 44 | The following responsibilities belong to the Steering Committe, but may be delegated in the future. 45 | 46 | * Coordinate with the CNCF regarding usage of the Kubernetes brand and deciding 47 | which things can be called “Kubernetes”, as well as how that mark can be used 48 | in relation to other efforts or vendors. 49 | * Decide, for the purpose of elections, who is a member of standing of the 50 | Kubernetes project, and what privileges that entails. 51 | * Control and delegate access to and establish processes regarding 52 | any Kubernetes repository[5](#footnote5) 53 | * Control and delegate access to and establish processes regarding 54 | project resources/assets[6](#footnote6) 55 | 56 | ## Changes 57 | 58 | In instances where a process is not already specified within this document, 59 | changes to the Steering Committee charter will be considered according to the 60 | processes set forth in the committee's [operations documentation][changes]. 61 | 62 | [changes]: /operations/changes.md 63 | 64 | ## Membership 65 | 66 | ### Composition 67 | 68 | The Steering Committee is composed of seven (7) members. 69 | 70 | ### Elections 71 | 72 | Every year, the Steering Committee holds a general election for open seats. 73 | 74 | Our [election policy document][general-elections] covers the details for how 75 | this works. 76 | 77 | [general-elections]: /elections.md 78 | 79 | ### Vacancies 80 | 81 | In the event of a resignation or other loss of an elected committee member, the 82 | next most preferred candidate from the previous election will be offered the 83 | seat. 84 | 85 | A maximum of one (1) committee member may be selected this way between 86 | elections. 87 | 88 | In case this fails to fill the seat, a special election for that position will 89 | be held as soon as possible. 90 | 91 | [Eligible voters][voter-eligibility] from the most recent election will vote in 92 | the special election i.e., eligibility will not be redetermined at the time of 93 | the special election. 94 | 95 | A committee member elected in a special election will serve out the remainder 96 | of the term for the person they are replacing, regardless of the length of that 97 | remainder. 98 | 99 | [maximal-representation]: /elections.md#maximal-representation 100 | [voter-eligibility]: /elections.md#eligibility-for-voting 101 | 102 | ### Resignation 103 | 104 | If a committee member chooses not to continue in their role, for whatever 105 | self-elected reason, they must notify the committee in writing. 106 | 107 | ### Removal 108 | 109 | #### No confidence 110 | 111 | A Steering Committee member may be removed by an affirmative vote of a 112 | **_three-quarters supermajority of the 113 | [fixed membership of the committee](#composition)_**. 114 | 115 | Example: 116 | 117 | * 7 (members) / 4 = 1.75 118 | * 1.75 * 3 = 5.25 119 | * Round up to the nearest whole number (6) 120 | * Six (6) affirmative votes would be required to remove a member through a vote 121 | of no confidence 122 | 123 | The call for a vote of no confidence will happen in a public Steering Committee 124 | meeting and must be documented as a GitHub issue in the committee's 125 | [repository][steering-repo]. 126 | 127 | The call for a vote of no confidence must be made by a current member of the 128 | committee and must be seconded by another current member. 129 | 130 | The committee member who calls for the vote will prepare a statement which 131 | provides context on the reason for the vote. This statement must be seconded by 132 | the committee member who seconded the vote. 133 | 134 | Once a vote of no confidence has been called, the committee will notify the 135 | community through the following channels: 136 | 137 | * the [community mailing list][dev-list] 138 | * the [Steering Committee public mailing list][steering-public-list] 139 | 140 | This notification will include: 141 | 142 | * a link to the aforementioned GitHub issue 143 | * the statement providing context on the reason for the vote 144 | 145 | There will be a period of two weeks for members of the community to reach 146 | out to Steering Committee members to provide feedback. 147 | 148 | Community members may provide feedback by the following methods: 149 | 150 | * commenting on the GitHub issue 151 | * sending an email to the 152 | [Steering Committee private mailing list][steering-private-list] 153 | * sending a message to individual committee members 154 | 155 | After this feedback period, Steering Committee members must vote on the issue 156 | within 48 hours. 157 | 158 | If the vote of no confidence is passed, the member in question will be 159 | immediately removed from the committee. 160 | 161 | [dev-list]: mailto:dev@kubernetes.io 162 | [steering-private-list]: mailto:steering-private@kubernetes.io 163 | [steering-public-list]: mailto:steering@kubernetes.io 164 | [steering-repo]: https://git.k8s.io/steering 165 | 166 | ## Voting 167 | 168 | In the course of the committee's operations, members will be expected to vote 169 | on decisions within the body's purview. 170 | 171 | These votes may be called on agreed-upon platforms by the committee, such as: 172 | 173 | * a pull request 174 | * an issue 175 | * a Steering Committee [meeting](#meetings) 176 | * a mailing list 177 | 178 | For public business, the vote must be captured on an issue or pull request. 179 | 180 | ### Routine business 181 | 182 | Unless otherwise specified by a process, the requirement for passing a vote is 183 | a **_majority of the [fixed membership of the committee](#composition)_**. 184 | 185 | Example: 186 | 187 | * 7 (members) / 2 = 3.5 188 | * Round up to the nearest whole number (4) 189 | * 4 members would be required to pass a vote 190 | 191 | ### Abstention 192 | 193 | For any self-elected reason, members of the committee may decide to abstain 194 | from a vote. 195 | 196 | Abstaining members will only be considered as contributing to quorum, in the 197 | event that a vote is called in a meeting. 198 | 199 | ## Meetings 200 | 201 | Steering Committee members are generally expected to attend every meeting. We 202 | use the following guidelines to determine whether we have reached quorum and 203 | are able to proceed with a meeting. 204 | 205 | ### Quorum 206 | 207 | Quorum **to meet** is a **_majority of the 208 | [fixed membership of the committee](#composition)_**. 209 | 210 | Example: 211 | 212 | * 7 (members) / 2 = 3.5 213 | * Round up to the nearest whole number (4) 214 | * 4 members in attendance would be required to meet 215 | 216 | Quorum **to vote in a meeting** is a **_two-thirds supermajority of the 217 | [fixed membership of the committee](#composition)_**. 218 | 219 | Example: 220 | 221 | * 7 (members) / 3 = 2.333... 222 | * 2.333... * 2 = 4.666... 223 | * Round up to the nearest whole number (5) 224 | * 5 members in attendance would be required to vote during a meeting 225 | 226 | ## Inclusive Leadership Training 227 | 228 | Members of the committee must take an 229 | [Inclusive Open Source Community Orientation course](https://training.linuxfoundation.org/training/inclusive-open-source-community-orientation-lfc102/) 230 | in support of our community values. Members are required to report 231 | completion of the course as part of on-boarding within 30 days from 232 | the date of their appointment. 233 | 234 | 235 | --- 236 | 237 | 1: Decisions and work pertaining to the daily 238 | operations of the project. 239 | 240 | 2: Such as individuals, Special Interest Groups and 241 | Committees 242 | 243 | 3: Such as Special Interest Groups, Working Groups, 244 | and Committees 245 | 246 | 4: including how contributors become 247 | committers/maintainers, approvers, reviewers, members, etc. As well as 248 | responsibilities associated with these role 249 | 250 | 5: Currently includes all repositories under the 251 | github organizations kubernetes, kubernetes-sigs, kubernetes-incubator, 252 | kubernetes-security, kubernetes-client, etc. and is expected to expand in the 253 | future. 254 | 255 | 6: Including artifact repositories, build and test 256 | infrastructure, web sites and their domains, blogs, social-media accounts, 257 | etc. 258 | -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Kubernetes Community Code of Conduct 2 | 3 | Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) 4 | -------------------------------------------------------------------------------- /elections.md: -------------------------------------------------------------------------------- 1 | # Kubernetes Steering Committee Elections 2 | 3 | This document outlines the process for steering committee elections. 4 | 5 | ### For the current election, check the [Steering Elections][elections] directory 6 | 7 | ### Eligibility for voting 8 | 9 | Precise eligibility for voting in the current Election is 10 | [defined in the current year's voter guide][elections] 11 | 12 | Eligibility to vote for steering committee members is generally defined by: 13 | 14 | * [Kubernetes Org Members][members] who had at least a certain number of 15 | contributions to the Kubernetes project over the past year, according to a 16 | data snapshot taken shortly before the election starts, based on 17 | the [devstats developer activity counts dashboard][devstats-dashboard]. 18 | Contributions include GitHub events like creating issues, creating PRs, 19 | reviewing PRs, commenting on issues, etc. For full details see 20 | [the SQL query used by devstats for developer activity counts][devstats-sql]. 21 | 22 | * Members of certain committees that involve substantial contributions to 23 | Kubernetes that are frequently not recorded by DevStats, such as the 24 | Security Response Committee and the Code of Conduct Committee. 25 | 26 | * People who have submitted the voting exception form and are accepted by 27 | the election committee. We *explicitly* believe the above heuristic will be 28 | inaccurate and not represent the entire community. Thus we provide the form 29 | for those who have contributed to the project but may not meet the above 30 | criteria. Acceptance of a form submission will be defined by a simple 31 | majority vote, and the criteria used during this process will be used to 32 | help refine further elections. 33 | 34 | It is the responsibility of the steering committee to refine these criteria 35 | prior to each election, including setting the number of required contributions, 36 | and adding any additional committee memberships that include eligibility. 37 | 38 | ### Eligibility for candidacy 39 | 40 | Eligibility for candidacy is defined by: 41 | 42 | * Acceptance of a nomination, or self-nomination (anyone may nominate, anyone 43 | may be nominated) 44 | * Endorsement by three eligible voters from three different employers (the 45 | candidate can self-endorse if they are eligible to vote) 46 | 47 | Check the current [election Voters Guide][elections] for the exact 48 | nomination procedure. 49 | 50 | Nominators are free to nominate as many people as they wish to. Eligible 51 | voters may endorse multiple nominees, but we expect endorsements to be in 52 | good faith. If this turns out to be a problem, this will be reconsidered. 53 | 54 | ### Election process 55 | 56 | Elections will be held using an online preference election system which 57 | supports [Condorcet] elections. The most preferred candidates will be elected to 58 | the open seats. 59 | 60 | ### Maximal representation 61 | 62 | To encourage diversity there will be a maximum of one-third representation on 63 | the Steering Committee from any one company at any time. If the results of an 64 | election result in greater than 1/3 representation, the lowest vote getters 65 | from any particular company will be removed until representation on the 66 | committee is less than one-third. 67 | 68 | If percentages shift because of job changes, acquisitions, or other events, 69 | sufficient members of the committee must resign until max one-third 70 | representation is achieved. If it is impossible to find sufficient members to 71 | resign, the entire company’s representation will be removed and new special 72 | elections held. In the event of a question of company membership (for example 73 | evaluating independence of corporate subsidiaries) a majority of all 74 | non-involved Steering Committee members will decide. 75 | 76 | ### Terms and Election Cycles 77 | 78 | Steering committee members are elected to serve one, two year term. Members can 79 | serve two consecutive terms (4 years) and a lifetime of four terms (8 years). 80 | Bootstrap and terms that result in equal to or less than one year served are 81 | exempt. 82 | 83 | Election cycles are scheduled such that roughly half of the seats come up for 84 | re-election each year for purposes of continuity. The exact number of seats 85 | alternates between 3 and 4, with the first 3-seat election taking place in 86 | 2018. 87 | 88 | ## Emeritus Term 89 | 90 | Members of the steering committee will graduate to becoming Emeritus members of 91 | the steering committee upon vacating their seat. This confers honor on the 92 | recipient, acknowledging the significant contributions they have made to the 93 | project. Emeritus members have no binding vote, and no expectation of continued 94 | participation in steering committee affairs. 95 | 96 | ## Election schedule and operation 97 | 98 | The steering committee picks election officers to operate the election and 99 | circulate a timeline for nominations, and the vote. The steering committee 100 | should consider the following rough schedule: 101 | 102 | - End of July 103 | - Election officers 104 | - Voter eligibility criteria 105 | - Election preparation 106 | - September 107 | - Nomination period and election 108 | - October 109 | - Conclusion of Election 110 | - Results announced at first community meeting after the election concludes 111 | 112 | The election officers will choose exact dates for each step and propose the 113 | final schedule to steering per the [election procedure]. 114 | 115 | ### Election officer selection 116 | 117 | The steering committee should choose three election officers, ideally by the 118 | following criteria, so as to promote healthy rotation and diversity: 119 | 120 | - election officers must be eligible to vote 121 | - election officers should have been an org member for at least one year 122 | - at least one (ideally two) election officers should have served before 123 | - at least one election officer should have never served before 124 | - each officer should come from a different company to maintain 1/3 maximal 125 | representation 126 | 127 | Election officers follow the [election procedure] to administer the election. 128 | 129 | History of election officers: 130 | 2017: castrojo and parispittman 131 | 2018: castrojo, parispittman, idvoretskyi 132 | 2019: mrbobbytables, castrojo, idvoretskyi 133 | 2020: jberkus, jdumars, idvoretskyi 134 | 2021: jberkus, alisondy, coderanger 135 | 2022: coderanger, kaslin, dims 136 | 2023: kaslin, dims, bridgetkromhout 137 | 138 | ### Vacancies 139 | 140 | See [Steering Committee charter](/charter.md). 141 | 142 | ### Limiting Corporate Campaigning 143 | 144 | To reduce size of company advantages, candidates may not use their companies 145 | internal or external brand to campaign. Their employers cannot solicit votes 146 | on their behalf or endorse candidates from partner organizations. Simply put, 147 | elections highlight individuals outside of their corporate role and should be 148 | treated as “brand free” activities. 149 | 150 | ## Steering Committee and Election Officer Recusal 151 | 152 | Currently serving steering committee members and the appointed election officers 153 | pledge to recuse themselves from any form of electioneering, including 154 | campaigning, nominating, or endorsing. We would prefer that the community 155 | decide without our heavy influence. 156 | 157 | Steering committee members _may_ ask other contributors to consider running, 158 | and they _may_ vote, so long as this information is kept private. 159 | 160 | Steering committee members who intend to run for re-election _may_ 161 | self-nominate but are otherwise expected to adhere to this recusal. 162 | 163 | [Condorcet]: https://en.wikipedia.org/wiki/Condorcet_method 164 | 165 | [election procedure]: https://git.k8s.io/community/elections/README.md 166 | 167 | [devstats-sql]: https://github.com/cncf/devstats/blob/master/metrics/shared/project_developer_stats.sql 168 | [devstats-dashboard]: https://k8s.devstats.cncf.io/d/13/developer-activity-counts-by-repository-group?orgId=1&var-period_name=Last%20year&var-metric=contributions&var-repogroup_name=All 169 | 170 | [bootstrap committee member]: https://github.com/kubernetes/steering#initial-bootstrap-committee 171 | [elections]: https://github.com/kubernetes/community/tree/master/elections/steering 172 | [members]: https://github.com/kubernetes/community/blob/master/community-membership.md 173 | -------------------------------------------------------------------------------- /funding-requests.md: -------------------------------------------------------------------------------- 1 | # Funding Requests 2 | 3 | Need to pay for something on behalf of the Kubernetes Project? This is the 4 | document to read. In general there are a few rough types of costs that can be 5 | covered: 6 | 7 | - Infrastructure: testing infra, video conferencing, mailing lists, domains, etc 8 | - Events: SIG face-to-face meetings, developer summits, etc 9 | - Consulting services: docs writers, security auditors, etc 10 | - Community Gifts: swag codes, thank you cards, etc 11 | 12 | ## How to request funding 13 | 14 | Open a funding request issue using the most appropriate funding request issue 15 | template. 16 | 17 | After filing an issue please expect to wait 1 week for approval and potentially 18 | another week to a month for funding from the CNCF depending on the request size. 19 | 20 | ## SIG or Committee Approvals 21 | 22 | Please provide links to show the appropriate approval process was followed by 23 | including links to the relevant approvals (meeting minutes, e-mail thread, etc.) 24 | 25 | ## FAQ 26 | 27 | **What happens behind the scenes?** 28 | 29 | If the request is approved it will then go through the CNCF Service Desk 30 | however only a small number of people from the project can directly make 31 | requests. 32 | 33 | **Who Pays for this stuff?** 34 | 35 | The Kubernetes project relies on a number of paid services for day-to-day 36 | operations; this includes Zoom for video calls, Google cloud for test 37 | infrastructure, and Netlify for website deployments. Also, the project covers 38 | one-off costs like space for developer summits to bring developers together or 39 | swag incentivize and celebrate project successes. And these bills are paid for 40 | by CNCF members via their membership fees and at times in-kind donations. 41 | -------------------------------------------------------------------------------- /operations/bosun.md: -------------------------------------------------------------------------------- 1 | # Steering Committee Bosun Guide 2 | 3 | This doc is a guide to help the delegated Steering Committee (SC) Member bosun 4 | the public meeting. SC members will pick a new one for the next meeting at the 5 | end. 6 | 7 | ## Before / Prep for meeting 8 | 1. Create the skeleton meeting agenda: 9 | - copy the template on the meeting agenda 10 | - populate with: 11 | - follow up items the meeting prior, 12 | - parking lot topics at the top, 13 | - outreach to other steering and community members, 14 | - items that need votes and/or assignments 15 | 2. Assign timeboxes. Guidance: anything not needing discussion should be 1 min 16 | each - examples: voting, assigning. If it's a community member topic: ask. 17 | 3. Post a call for final topics with draft agenda at least 3 business days with 18 | a clear cut off to the following places as reminders: 19 | - leads@kubernetes.io, 20 | - steering@kubernetes.io with instructions to read any supporting materials 21 | ahead of time and come with discussion points/questions 22 | - #chairs-and-techleads, #steering-committee, #kubernetes-contributors 23 | Ideally this would be Wednesday before the meeting and closing the agenda by 24 | Friday to give time for everyone to prepare. 25 | 26 | ## Day of Meeting 27 | 28 | 1. Join ten minutes early to make sure all audio, video, and zoom 29 | administration (including capability to record) is right. You'll need the zoom 30 | host key at the very least and to record to the cloud. 31 | 2. Make sure that you have cleared your desktop and can be prepared to present 32 | if needed. Sometimes AV problems will require you to step in and present. 33 | ### Starting: 34 | 1. Before recording the meeting, tell the group “This is a Kubernetes meeting 35 | that will be posted publicly on YouTube, so please be mindful that what you say 36 | is being recorded. Please also mute if you are not speaking.” 37 | 2. Check on [quorum] and update the attendees with whats going on. We need 4 to 38 | meet and 5 to vote. 39 | 3. If the agenda has room, call on others to add topics and start recording. 40 | 4. Encourage Steering members to put [Steering] in front of their names and 41 | community members to do roll call on the agenda. 42 | #### After recording starts: 43 | 1. Hello! Welcome! [introduce yourself] This is the Kubernetes Steering 44 | Committee [public/private] Meeting for [month/year]. 45 | 2. Code of Conduct reminder with instructions. 46 | - DM you as bosun and/or conduct@kubernetes.io 47 | 3. Ask for a note-taker if you don't have one and for folks to raise hands when 48 | they have discussion points or comments. 49 | 4. Discuss that we may ask for further context, docs, etc. so that we can better 50 | understand larger issues or items. If there is a case where we don’t have 51 | enough or not prepared, we will set up a separate meeting, bump to the mailing 52 | list for further conversation, or invite to another meeting. 53 | #### Mid-meeting 54 | 1. Check on zoom chat to make sure voices are heard and acknowledged there. 55 | 2. Make sure Steering members who haven't had a chance to comment are given the 56 | opportunity for each discussion topic. 57 | 3. Adhere to timeboxes as much as possible. 58 | ## Ending: 59 | 1. Pick the next bosun. 60 | 2. Thank everyone for their time. 61 | 62 | ## After a month of meetings (2): 63 | 64 | - Clean up / format agenda 65 | - Set any issues and assign owners that arise 66 | - Forward notes and announcement of next bosun to steering@kubernetes.io 67 | 68 | 69 | [quorum]: ./charter.md#quorum 70 | -------------------------------------------------------------------------------- /operations/changes.md: -------------------------------------------------------------------------------- 1 | # Changes to the Steering Committee 2 | 3 | At any time, a steering committee member may propose a governance change for 4 | how the committee itself operates (e.g. charter, election process, etc.). 5 | This should be used sparingly, if ever, and in the presence of clear failures 6 | of the existing process. This process is intended to cover significant changes 7 | versus small tweaks. The steering committee does not allocate a role for 8 | the broader community in reformulating governance. The steering committee believes 9 | that in the presence of clear failures, the community will "vote with their feet" 10 | by either leaving or forking the project. 11 | 12 | To propose a change, the following process shall be followed: 13 | 14 | * Post a pull request to this repository describing the change. 15 | * Send a notice to steering@k8s.io announcing the proposed change. 16 | * If there is no protest after 4 weeks, the change is accepted. 17 | * At any time prior to acceptance, a steering committee member may call a vote. 18 | A vote is scheduled no later than 4 weeks after initial introduction of the change. 19 | A vote may be scheduled earlier if all committee members agree. 20 | * The change is accepted if three-fourths of the committee members vote in favor. 21 | * The pull request is merged or closed. 22 | -------------------------------------------------------------------------------- /operations/cncf-and-k8s.md: -------------------------------------------------------------------------------- 1 | # Relationship with CNCF 2 | 3 | The Kubernetes project is a CNCF project, graduated in March 6, 2018. 4 | 5 | The Steering Committee is the designated top-level project leadership body which serves 6 | as the project's interface to the foundation (as opposed to all of the maintainers of all 7 | repositories). The Kubernetes project aims to satisfy the CNCF graduation criteria, but is 8 | self-governing, and reserves the right to resolve conflicts within its community, set its 9 | own governance policies, define its own scope, determine how and when official releases of 10 | Kubernetes are made and what they include, specify its own conformance criteria, maintain 11 | its own marketing functions (e.g., its blog and Twitter account), establish its own resource 12 | access policies, manage its own assets (including trademark enforcement boundaries), accept 13 | contributions of additional subprojects, and so on. The Kubernetes project expects the CNCF 14 | to provide funds for essential assets and ongoing activities, requests for which must be 15 | approved by the Steering Committee, to provide legal and logistical assistance, and to provide 16 | other assistance within the bounds approved by the CNCF Governance Board and Technical Oversight 17 | Committee upon request from the Steering Committee. 18 | 19 | -------------------------------------------------------------------------------- /operations/onboarding.md: -------------------------------------------------------------------------------- 1 | # Onboarding 2 | 3 | This document covers steps needed to onboard new Steering Committee 4 | members and off-board emeritus members. 5 | 6 | - [ ] All new members must complete the [Inclusive Leadership Training] 7 | within 30 days from the date of their appointment. 8 | - [ ] Update the following files in the respective repos: 9 | - [ ] [kubernetes/steering]: `OWNERS_ALIASES` and `README.md` 10 | - [ ] [kubernetes/community]: 11 | - [ ]` sigs.yaml` (SC members and liaisons) and auto-generated content 12 | - [ ] slack usergroup - `communication/slack-config/usergroups.yaml`, 13 | `communication/slack-config/users.yaml` 14 | - [ ] [kubernetes/org]: `OWNERS_ALIASES` and the `steering-committee` 15 | - [ ] [kubernetes/website]: `OWNERS_ALIASES` 16 | GitHub team 17 | - [ ] [kubernetes/funding]: `OWNERS_ALIASES` 18 | - [ ] [kubernetes/k8s.io] - update steering@kubernetes.io and 19 | steering-private@kubernetes.io in `groups/groups.yaml` 20 | - [ ] Add new members to the `steering-private`, `steering-gp-rep-private` and, 21 | slack channel and `steering-cncf-rep-private` remove emeritus members. 22 | - [ ] Add new members to the CNCF Service Desk and remove emeritus 23 | members. 24 | - [ ] Add new members to the [cncf-kubernetes-maintainers] mailing list. 25 | - [ ] Add new members to the [Public CNCF Maintainer List] and remove emeritus 26 | members. 27 | - [ ] Transfer Community Group [liaison assignments] from emeritus members to 28 | new members. 29 | - [ ] If a GSuite [top-level account] is owned by an emeritus member, 30 | transfer it to an existing member. 31 | - [ ] Reach out to SIG-ContribEx to add new members to 1password and remove 32 | emeritus members. 33 | - [ ] Set up a private meeting to go over backlog. 34 | 35 | 36 | [Inclusive Leadership Training]: /charter.md#inclusive-leadership-training 37 | [kubernetes/steering]: https://github.com/kubernetes/steering 38 | [kubernetes/community]: https://github.com/kubernetes/community 39 | [kubernetes/org]: https://github.com/kubernetes/org 40 | [kubernetes/website]: https://github.com/kubernetes/website 41 | [kubernetes/funding]: https://github.com/kubernetes/funding 42 | [kubernetes/k8s.io]: https://github.com/kubernetes/k8s.io 43 | [liaison assignments]: https://git.k8s.io/community/liaisons.md 44 | [cncf-kubernetes-maintainers]: https://lists.cncf.io/g/cncf-kubernetes-maintainers 45 | [Public CNCF Maintainer List]: https://docs.google.com/spreadsheets/d/1Pr8cyp8RLrNGx9WBAgQvBzUUmqyOv69R7QAFKhacJEM/edit 46 | [top-level account]: /README.md#top-level-accounts 47 | -------------------------------------------------------------------------------- /operations/service-desk.md: -------------------------------------------------------------------------------- 1 | # CNCF Service Desk 2 | 3 | [Members of the Steering Committee], and the leads of the listed community 4 | groups below may access or file tickets with the [CNCF Service Desk] on behalf 5 | of the Kubernetes project. 6 | 7 | **Community Groups:** 8 | - [SIG Contributor Experience](https://git.k8s.io/community/sig-contributor-experience#leadership) 9 | - [SIG etcd](https://git.k8s.io/community/sig-etcd#leadership) 10 | - [SIG Release](https://git.k8s.io/community/sig-release#leadership) 11 | 12 | 13 | [Members of the Steering Committee]: https://git.k8s.io/community/committee-steering#leadership 14 | [CNCF Service Desk]: https://github.com/cncf/servicedesk 15 | -------------------------------------------------------------------------------- /reports/summary-2020.md: -------------------------------------------------------------------------------- 1 | # Kubernetes Community Annual Report, 2020 2 | 3 | This is a summary of the Kubernetes project's contributor community and 4 | activities. This report documents both quantitative measures of community health 5 | (project milestones and snapshot) as well as qualitative measures of the 6 | community as reported by community leaders and contributors to the project. 7 | Please see Appendices for full reports and program goals. 8 | 9 | This report is a snapshot of the community as of December 2020. 10 | 11 | 1. [Terminology](#terminology) 12 | 2. [Contributor Snapshot](#contributor-snapshot) 13 | 3. [Community Milestones](#community-milestones) 14 | 4. [Governance](#governance) 15 | 5. [Accolades](#accolades) 16 | 6. [Themes](#themes) 17 | 7. [Growth Areas](#growth-areas) 18 | 8. [/help-wanted](#/help-wanted) 19 | 9. [Current Initiatives](#current-initiatives) 20 | 10. [Appendices](#appendices) 21 | 22 | ### Terminology 23 | 24 | This report uses the following terminology: 25 | 26 | - **Special Interest Group (SIG)**: a body of contributors, responsible on an 27 | ongoing basis for an area of work in the Kubernetes project. They own code, 28 | docs, and/or policy. 29 | - **Working Group (WG)**: a body of contributors, responsible for an area of 30 | work in the project. Unlike SIGs, WGs dissolve once the scoped work is 31 | complete. Working groups are cross-functional efforts sponsored by a SIG. 32 | - **Chair and/or Tech Lead**: a contributor who organizes and leads a community 33 | group. 34 | - **KEP**: [Kubernetes Enhancement Proposal][kep] 35 | - **OWNER/maintainer**: a GitHub user who reviews, approves, and/or merges commits. 36 | 37 | For more on SIG and WG governance, see: 38 | 39 | - [SIG governance] 40 | - [WG governance] 41 | 42 | For a list of all SIGs and WGs, their charters, meet times, ownership, and more, 43 | see: 44 | 45 | - [SIG list] 46 | - [WG list] 47 | 48 | [SIG governance]: https://git.k8s.io/community/committee-steering/governance/sig-governance.md 49 | [WG governance]: https://git.k8s.io/community/committee-steering/governance/wg-governance.md 50 | [SIG list]: https://www.kubernetes.dev/community/community-groups/#special-interest-groups 51 | [WG list]: https://www.kubernetes.dev/community/community-groups/#working-groups 52 | 53 | 54 | ### Data Collection 55 | 56 | The Kubernetes Steering Committee sent out a survey to all contributor group 57 | chairs and leads to collect data for this report. 58 | 59 | For more, see: 60 | 61 | - [Appendix A: Program Documentation](#Appendix-Program-documentation) 62 | - [Appendix B: Survey Questions](#Appendix-B-Survey-Questions) 63 | - [Appendix C: All SIG and WG Reports](#Appendix-C-All-SIG-and-WG-Reports) 64 | 65 | 66 | ## Contributor Snapshot 67 | 68 | As recorded in [devstats] and [sigs.yaml changes], in 2020 the 69 | Kubernetes project had: 70 | 71 | - `52,000` Contributors 72 | - `24` Special Interest Groups (SIGs)* 73 | - `9` Working Groups (WGs)* 74 | - `30` New Leaders (Chairs, Tech Leads, Organizers, and Committee Members) 75 | - `14` Emeritus Members of various roles 76 | 77 | *Welcome SIG Security and Working Groups: API Expression, Naming, and 78 | Reliabilty!* 79 | 80 | [devstats]: http://k8s.devstats.cncf.io/ 81 | [sigs.yaml changes]: https://github.com/kubernetes/community/commits/master/sigs.yaml 82 | 83 | 84 | ## Community Milestones 85 | 86 | - `100,000` Issues/pull requests in the `kubernetes/kubernetes` repository 87 | - `50000` Contributors mark 88 | - `75%`of [API Endpoints included in Conformance] 89 | - `43` Subproject additions or movements 90 | - `35` Stable graduations (KEPs that moved from beta to stable and were 91 | completed) 92 | - `66` KEPs reviewed by the new Production Readiness Review team 93 | 94 | [API Endpoints included in Conformance]: https://apisnoop.cncf.io/conformance-progress?stablechart=percentage 95 | 96 | ## Governance 97 | 98 | At the time of this survey, [all WGs and SIGs] have: 99 | 100 | - Up to date READMEs available in the `kubernetes/community` repository 101 | - Up to date group charters 102 | - Publicly listed meeting times and minutes 103 | 104 | [all WGs and SIGs]: https://k8s.dev/groups 105 | 106 | ## Accolades 107 | 108 | The Kubernetes project has achieved major goals and milestones every year. As we 109 | look back, the following accolades paint a picture of our journey in 2020: 110 | 111 | ### Consistent Feature Graduation to Stable Status 112 | 113 | Kubernetes had an issue with features remaining in beta for far 114 | longer than planned. During 2020, many SIGs started driving these long- 115 | standing beta features to completion, and collectively paying down some of their 116 | associated technical debt. 117 | 118 | A few features of note that graduated to stable status or made significant 119 | progress include: 120 | 121 | - Driving [`CronJobs`] and [`PodDisruptionBudgets`] (SIG Apps) 122 | - [Moving `kubectl` to a staging repo] (SIG CLI) 123 | - [containerd] and [Cluster API support for Windows] (SIG Windows) 124 | - [Ingress API] (SIG Network) 125 | 126 | SIG Architecture implemented [a new policy], and this resulted in many SIGs 127 | pushing features to completion. As a result, the project now has less tech debt 128 | and is more stable for end consumers. 129 | 130 | 131 | [a new policy]: https://kubernetes.io/blog/2020/08/21/moving-forward-from-beta/ 132 | [`CronJobs`]: https://git.k8s.io/enhancements/keps/sig-apps/19-Graduate-CronJob-to-Stable 133 | [`PodDisruptionBudgets`]: https://git.k8s.io/enhancements/keps/sig-apps/85-Graduate-PDB-to-Stable 134 | [Moving `kubectl` to a staging repo]: https://git.k8s.io/enhancements/keps/sig-cli/1020-kubectl-staging 135 | [containerd]: https://git.k8s.io/enhancements/keps/keps/sig-windows/1001-windows-cri-containerd 136 | [Cluster API support for Windows]: https://sigs.k8s.io/cluster-api/docs/proposals/20200804-windows-support.md 137 | [Ingress API]: https://git.k8s.io/enhancements/keps/keps/sig-network/1453-ingress-api 138 | 139 | ### Issue Triage Improvements 140 | 141 | The [kubernetes/kubernetes] repository has over 100,000 issues and pull requests at any time. 142 | To manage this, the community adopted [new triage workflows]. Several SIGs, such 143 | as SIG Node, SIG Network, and SIG API Machinery established their own triage 144 | processes and structure. This resulted in a noticeable reduction in 145 | [Inactive Issues] and [Inactive Pull Requests] open for 30 days or more. 146 | 147 | As SIGs improve their processes with the new workflow, many are having dedicated 148 | triage meetings. Those who have started triage meetings noted they serve as an 149 | excellent engagement point for new contributors. 150 | 151 | [kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes 152 | [new triage workflows]: https://git.k8s.io/enhancements/keps/sig-contributor-experience/1553-issue-triage 153 | [Inactive Issues]: https://k8s.devstats.cncf.io/d/77/inactive-issues-by-sig-and-repository?viewPanel=11&orgId=1&from=1577854800000&to=1609390800000 154 | [Inactive Pull Requests]: https://k8s.devstats.cncf.io/d/78/inactive-prs-by-sig-and-repository?viewPanel=11&orgId=1&from=1577854800000&to=1609390800000 155 | 156 | ### Testing, Continuous Integration, and Scalability 157 | 158 | SIG Testing improved the project's testing frameworks and infrastructure. Along 159 | with improvements to scalability tests and other test suites, the Kubernetes 160 | project has experienced significant improvements in CI Signal and general 161 | contributor experience. For example, the [5,000 node] scalability test went from 162 | 14 hours to completion to less than 5 hours, roughly 3x faster. The new test 163 | suite and infrastructure is less burdensome on maintainers, ensuring ongoing 164 | project stability. 165 | 166 | In addition to the speed improvements, this reduces the compute cost for testing 167 | Kubernetes patches and releases drastically. Thank you to [Google Cloud][credits] 168 | for both [funding][credits] and [staffing] such a critical piece of the project. 169 | 170 | [5,000 node]: https://kubernetes.io/docs/setup/best-practices/cluster-large/ 171 | [credits]: https://cloud.google.com/blog/products/containers-kubernetes/google-cloud-credits-support-cncf-work-on-kubernetes 172 | [staffing]: https://k8s.devstats.cncf.io/d/8/company-statistics-by-repository-group?orgId=1&var-period=d7&var-metric=contributions&var-repogroup_name=SIG%20Testing&var-repo_name=kubernetes%2Fkubernetes&var-companies=All&from=1577854800000&to=1609390800000 173 | 174 | ### Localization and Globalization 175 | 176 | The Kubernetes project community is distributed around the world, and there the 177 | end user community is the same. Over the past year, the number of international 178 | contributors has grown, as have initiatives to support localizations of the 179 | project. 180 | 181 | SIG Docs hosts all localizations of the documentation, but each localization 182 | has its own group of maintainers and leads. To manage the growing number of 183 | localizations, SIG Docs started the Localization subproject. Aditionally, SIG 184 | UI added support for several new localizations of the Kubernetes dashboard. 185 | 186 | ### Fostering Inclusivity 187 | 188 | The Kubernetes [core values] are critical to the success of project. 189 | In 2020 we reinforced our focus on inclusivity by [requiring our community 190 | leaders] 191 | to further their education on recognizing unconscious bias and working towards 192 | creating a more welcoming environment for every contributor. In addition to 193 | requiring our current leaders to take these steps, it is now a prerequisite for 194 | any future leads before they take a leadership position. 195 | 196 | Our talented moderation teams continue to ensure that all our communication 197 | channels are safe and inclusive spaces for our contributor base. 198 | 199 | During the Black Lives Matter protests in 2020, the project was introspective in 200 | how it's values intersected with a global movement around equality. We decided 201 | to make a statement about the importance of inclusivity to where the Kubernetes 202 | project is today, and how racism doesn't have a place in our project. 203 | 204 | [core values]: https://www.kubernetes.dev/community/values/ 205 | [requiring our community leaders]: https://groups.google.com/u/1/g/kubernetes-dev/c/5gRUxPi5XxY/m/1Ollffx4CQAJ 206 | 207 | ### #shoutouts 208 | 209 | A meta accolade. 210 | 211 | The #shoutouts channel on the [Kubernetes slack](slack.k8s.io) and highlights 212 | on [@k8scontributors] in the last year has kept us going. Thank a member of the 213 | community here and read the past achievements of many. 214 | 215 | [@k8scontributors]: https://twitter.com/K8sContributors 216 | 217 | ### Remembering Dan Kohn 218 | 219 | In [November of 2020, Dan Kohn], the former director of the CNCF sadly passed 220 | away from complications with Colon Cancer. Dan was instrumental in shaping both 221 | the Kubernetes project, the CNCF, and the Cloud Native community as a whole. He 222 | understood that a foundation built on a vibrant and diverse community was a 223 | requirement to be successful, and the project would not be what it is today 224 | without him. 225 | 226 | [November of 2020, Dan Kohn]: https://kubernetes.io/blog/2020/11/02/remembering-dan-kohn/ 227 | 228 | 229 | ## Themes 230 | 231 | The following themes emerged from multiple community groups reporting in with 232 | similar experiences - whether positive or challenging - and areas of research to 233 | explore more in the future. 234 | 235 | ### Project Communication Strategy 236 | 237 | During periods of significant contributor growth, [community groups were 238 | reporting internally and externally] regularly with the group's members, the 239 | project at large, and at KubeCons. This made sense as the project scaled ten thousand 240 | casual and active contributors, but it's resulted in 241 | duplicate meetings and too many update slides. The COVID-19 pandemic and an 242 | increase in contributors outside of the North America Pacific Timezone made 243 | regular meetings difficult. Chairs and other project leads asked for a more 244 | streamline and consistent reporting and feedback mechanism. 245 | 246 | #### What We've Done 247 | 248 | - Changed [Community Meeting] cadence from weekly to monthly, and changed 249 | meeting style from a "read out" of updates to more discussion oriented. 250 | - Encouraged groups to use asychronous methods for delivering updates and 251 | gathering feedback. For example: Slack "standup" theads which feed into larger 252 | scale reporting to a group on a mailing list. 253 | - Created an internal marketing group under SIG Contributor Experience to help 254 | facilitate community communication. 255 | 256 | 257 | [Community Meeting]: https://k8s.dev/events/community-meeting/ 258 | [community groups were reporting internally and externally]: https://git.k8s.io/community/committee-steering/governance/sig-governance.md 259 | [Governance requirements]: https://git.k8s.io/community/committee-steering/governance/sig-governance.md#chair 260 | 261 | #### Areas of Research 262 | 263 | - Review SIG charters to re-focus goals of each group at the current state of 264 | maturity 265 | - Expand on async meeting adoption and establish best practices 266 | - Improving subproject communication and connective glue back to the sponsoring 267 | SIG 268 | - Clarify conditions for archiving or putting a subproject in maintenance mode 269 | - Connecting with the end user community and understanding what they want to 270 | hear from upstream 271 | 272 | 273 | ### Refining the Contributor Lifecycle 274 | 275 | There are a number of ways to define membership to the Kubernetes project 276 | and its community groups. The project's community groups must define 277 | their own membership terms and any other roles within their group. 278 | 279 | Membership drives: 280 | 281 | - Kubernetes GitHub Organization membership 282 | - Consensus 283 | - Voting 284 | 285 | The project defines [membership] as contributors added to to one of the four GitHub 286 | organizations. Membership grants a contributor access to test their pull 287 | requests, among other benefits. Membership also defines a member's role within 288 | the project based on their place on the [Contributor Ladder][ldr]. Membership 289 | does not grant voting rights for Steering Committee and governance matters; 290 | there is a separate set of criteria for [elections]. 291 | 292 | These are guidelines for the project as a whole but do not translate to SIG or 293 | WG based membership, with each group defining membership in their own way. 294 | These methods vary widely and are often founded in the group's specific 295 | workflows. However, there is a common pattern throughout all of them, and that 296 | is the two types of members that are considered early membership (onboarding) 297 | and sustainable membership (ongoing contributor activity). 298 | 299 | **Voting and Consensus with Members** 300 | 301 | Voting typically doesn't happen in the project unless it's for a Committee role. 302 | Technical and nontechnical decisions are driven mostly by 303 | consensus of the maintainers in OWNERs files in the code, doc, or policy area of 304 | maintenance. However, in some cases, particularly SIG leadership transitions, 305 | there have been cases were voting was elected but defining membership and 306 | reaching out to those members outside of GitHub is difficult. 307 | 308 | #### What we've done 309 | 310 | **Sustainable Membership** 311 | 312 | While onboarding new contributors is a critical part of a sustainable open 313 | source project, contributors shift focus, change jobs, or 314 | step away from the project for a variety of other reasons. In late 2019, 315 | Steering Committee updated the project's guidelines to introduce an [emeritus status]. 316 | Emeritus community members have stepped away from the project, but are still 317 | recognized for their work. Giving people the ability to step away gracefully 318 | helps ensure an overall healthy and active community. 319 | 320 | In 2020, 185 members stepped down or were removed for inactivity (18 321 | months with 0 activity across any GitHub organization). The Kubernetes project 322 | has around 1300 active members at any given time. 323 | 324 | [elections]: https://github.com/kubernetes/steering/blob/master/elections.md#eligibility-for-voting 325 | [membership]: https://git.k8s.io/community/community-membership.md#member 326 | [emeritus status]: https://k8s.dev/docs/guide/owners/#emeritus 327 | [achievement for climbing the ladder]: https://github.com/kubernetes/test-infra/issues/11994 328 | [charter process]: https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-charter-template.md 329 | 330 | 331 | #### Areas of Research 332 | 333 | - Automation around suggesting when contributors may be ready to move to the 334 | next step in the lifecycle 335 | - Ways to promote a sustainable flow through the various stages of the lifecycle 336 | - Clarifying and/or simplifying definitions around the stages of the lifecycle 337 | - Prompts to assist contributors in knowing what they need to do to 'level up' 338 | to the next stage in the lifecycle (e.g. prompts when you join a mailing list) 339 | - Joining the project's GitHub organizations is celebrated, but 340 | there are no regular means of celebration or recognition for those that join a 341 | SIG, community group, or [achievement for climbing the ladder]. 342 | 343 | 344 | ### Growing a Diverse Group of OWNERs 345 | 346 | Moving up the contributor ladder – from contributor, to reviewer, to approver – involves work 347 | on the part of the contributor. Building trust is a key part of our values and is a 348 | step in the "contributor journey", called the Kubernetes [contributor 349 | ladder][ldr]. 350 | 351 | The Kubernetes project needs more diverse, trusted people from all backgrounds to grow 352 | as contributors. Balancing being welcoming and identifying contributors to 353 | encourage to stick around at scale is difficult, especially with tens of 354 | thousands of casual contributors, and many cultures that come 355 | together. 30 new leaders have stepped up to Chair and other roles in 2020, but 356 | bandwidth for the reviewers and approvers in many subprojects remains a 357 | challenge as does the diversity of those contributing. 358 | 359 | #### What We've Done 360 | 361 | - Applied consistent labeling of issues with `good-first-issue` and 362 | `help-wanted`. This was reported as the most successful way of landing new 363 | contributors. 364 | - Intentionally creating space at meetings for new contributors to get involved 365 | and/or a dedicated triage meeting that provide an overview of current 366 | priorities 367 | - Continued programs such as: 368 | - [Meet Our Contributors], an Office hours like space where aspiring and 369 | experienced contributors can ask questions live 370 | - Contributor Summits with new contibutor workshops, or Maintainer focused 371 | sessions at KubeCon. 372 | - Facilitated One-on-One sessions for dedicated contributors that have 373 | demonstrated a vested interest in contributing and climbing the contributor 374 | ladder and sticking around. 375 | - Created Group study groups for reviewers, approvers, and Chairs 376 | 377 | 378 | [Meet Our Contributors]: https://www.kubernetes.dev/events/meet-our-contributors/ 379 | 380 | 381 | #### Areas of Research 382 | 383 | - Specific outreach to new contributors from backgrounds that are 384 | underrepresented in the community, such as BIPOC contributors 385 | - GitHub automation that will suggest contributors to SIG leadership who are 386 | making steady contributions to the project that may not have visibility, direct 387 | access to OWNERs, or may feel ackward asking about maintainership 388 | - Encouraging regular review of who is actively reviewing in subprojects 389 | - Scaling the [group contributor ladder program] 390 | 391 | 392 | [group contributor ladder program]: https://git.k8s.io/community/mentoring/programs 393 | 394 | ## Growth Areas 395 | 396 | ### Focus on Reliability 397 | 398 | The community is excited to welcome the new lens on reliability through 399 | Production Readiness Reviews, KEPs, and the new Working Group for Reliability. 400 | This effort continues to increase confidence for end users use Kubernetes to 401 | manage production workloads by ensuring the core is stable and reliable. 402 | 403 | This means the features are: 404 | 405 | - Observable: you can tell that it is in use and working properly, and are 406 | able to define reasonable service level objectives for the feature. 407 | - Supportable: the feature is well documented with a playbook covering failure 408 | modes, dependencies and what happens when those fail or degrade, and a 409 | troubleshooting guide. 410 | - Scalable: the feature does not introduce scaling issues. 411 | - Recoverable: the feature can be disabled or rolled back easily and without 412 | data loss 413 | 414 | ### The Words We Use 415 | 416 | The Naming Working Group was spun up to undergo research and create decision 417 | making frameworks around the terminology we use in the technical components and 418 | the documentation. 419 | 420 | 421 | GitHub has also stepped up to help the open source community at large create a 422 | smooth path for `master->main` branch renaming. We discovered some gaps in our 423 | tooling and automation around this as well, but now have a [clear path]. A 424 | number of repos have already started this migration, and we will continue to 425 | roll 426 | it out to the remainder of the org. 427 | 428 | 429 | Not only is this a WG Naming initiative, but several parts of the project 430 | reported in ways they are examining the words we use. For example, SIG 431 | Contributor Experience's slack-infra team implemented a [new bot] for inclusive 432 | language. SIG Testing has made a significant effort to eliminate [`blacklist`] 433 | from the code base. 434 | 435 | There is still plenty of work however in evaluating further language, 436 | implementing changes to code and documentation, as well as the testing and 437 | validation that related code changes don't introduce unexpected regressions. 438 | 439 | [new bot]: https://sigs.k8s.io/slack-infra/slack-moderator-words 440 | [clear path]: https://www.kubernetes.dev/resources/rename/ 441 | [`blacklist`]: https://github.com/kubernetes/community/pull/5341 442 | 443 | 444 | ### All eyes on SECURITY.md 445 | 446 | This year brought the creation of [SIG Security], in response to the greater 447 | community and industry focus on the security of critical pieces of software 448 | like Kubernetes. This new SIG grew out of the previous Security Audit Working 449 | Group, and is designed to be a clear home for security-focused discussions 450 | across the project. 451 | 452 | This new group, partnering with the existing Product Security Committee, will 453 | focus on horizontal security initiatives for the Kubernetes project, including 454 | regular security audits, the vulnerability management process, cross-cutting 455 | security documentation, and security community management. 456 | 457 | The Product Security Committee is also currently discussing a 458 | [name change to "Security Response Committee"] to better reflect the role they 459 | play in security response. 460 | 461 | [SIG Security]: https://git.k8s.io/community/sig-security/charter.md 462 | [name change to "Security Response Committee"]: https://github.com/kubernetes/community/pull/5597 463 | 464 | 465 | ### Improving Kubernetes Enhancements 466 | 467 | Kubernetes Enhancement Proosals, the process by which the community proposes and 468 | approves new features, continues to evolve and mature. As we use and iterate on 469 | the process, we are consistently learning better ways to communicate, debate, 470 | and ultimately grow ideas within the project. 471 | 472 | In 2020, KEPs around process and policies have become a focus, and an area of 473 | future growth for KEPs themselves. For example, a KEP changing the 474 | [release cadence] of the Kubernetes project garnered attention from the 475 | community. 476 | 477 | [release cadence]: https://git.k8s.io/enhancements/keps/sig-release/2572-release-cadence 478 | 479 | ## /help-wanted 480 | 481 | The community groups report that they need to grow more contributors into 482 | maintainer-like roles of Reviewers, Approvers, and Subproject OWNERs. 483 | 484 | Below is list of specific contribution needs, special projects, roles available, 485 | and more. Building trust is key and we need folks to stick around. There are 486 | other ways of contributing outside of commits and you'll see those in the 487 | [Other Types of Upstream Contributions] section. 488 | 489 | Check out the contributor guide for a comprehensive guide to getting started: 490 | https://k8s.dev/guide. 491 | 492 | [Other types of upstream contributions]: #Other-types-of-upstream-contributions 493 | 494 | **SIG API Machinery**: 495 | - Performing triage (go to a triage meeting and you'll see it first hand) 496 | - Contributors to the Client Libraries like client-go, python-client 497 | 498 | **SIG Architecture**: 499 | - Site Reliability Engineers to review KEPs, Production Readiness Reviews, 500 | and API Reviewers 501 | - Contributors to help curate a mentoring program for people to work across SIGs 502 | 503 | **SIG Auth**: 504 | - Audit logging and testing contributors 505 | - KMS-Plugin contributors 506 | 507 | **SIG Autoscaling**: 508 | - Creating and running of a triage program 509 | 510 | **SIG CLI**: 511 | - A Product/Feature Manager 512 | 513 | **SIG Cloud Provider**: 514 | - More contributors from every cloud to form teams for triage and support, 515 | - Cloud Engineers at service providers to help run the cloud provider extraction 516 | working group: 517 | kubernetes/kubernetes "cluster" directory and resolving how we properly test 518 | kubernetes/kubernetes in the absence of a cloud provider 519 | 520 | **SIG Cluster Lifecycle**: 521 | Code contributors to: 522 | - Etcdadm 523 | - Cluster-addons 524 | - Kubeadm 525 | 526 | **SIG Contributor Experience**: 527 | - Full-time (or part-time) community managers 528 | - Automation Engineers: zoom to youtube automation, github automation, slack 529 | infrastructure, and more 530 | - Program Manager types for recognition and contributor ladder mentoring 531 | programs 532 | 533 | **SIG Instrumentation**: 534 | - Structured logging 535 | - promq contributors 536 | 537 | **SIG Node**: 538 | - Sustaining CI 539 | 540 | **SIG Scalability**: 541 | - Scalability Test Frameworks and Scalability and Performance tests and 542 | validation with a deep understanding of Kubernetes 543 | 544 | **SIG Scheduling**: 545 | - Docs for scheduler internals, cluster-admin best practices; standardize triage 546 | process 547 | 548 | **SIG Security**: 549 | - Future Tech Leads 550 | 551 | **SIG Storage**: 552 | - Reviewers 553 | - Issue triage (creating and running a program) 554 | - Feature work for things that are co-owned by sig-node, sig-apps, and 555 | sig-scheduling (ContainerNotifier, Volume expansion for stateful set, and more) 556 | 557 | **SIG Testing**: 558 | - Many more companies to invest in this area heavily and bring steady 559 | contributors to grow the contributor ladder in areas that are crucial to the 560 | projects infrastructure 561 | 562 | **SIG UI**: 563 | - Contributors who will stick around with AngularJS, golang, and knowledge of 564 | Kubernetes client-go package 565 | 566 | **SIG Usability**: 567 | - We are currently working on a jobs to be done study and an effort to define 568 | universal personas for the upstream project. 569 | - Any one is welcome to join and participate in these efforts, especially any 570 | user researchers, designers, and new contributors 571 | 572 | **SIG Windows**: 573 | - e2e test coverage and API reviewers 574 | 575 | **WG K8s Infra** 576 | - Help with migrating resources from Google owned infrastructure to community 577 | owned 578 | - At the time of this report, only 288 of the current 1780 prow jobs have 579 | been migrated 580 | 581 | **WG Multitenancy** 582 | - We have three main projects: Hierarchical Namespace, Virtual Cluster Project, 583 | and Multi-tenancy Profiles (think conformancy but for secure multi-tenant 584 | clusters). Contributors and interested parties welcome! 585 | 586 | ### Other Types of Upstream Contributions 587 | 588 | The above list is good for contributors who have the time or 589 | support from their employer to submit patches and participate in other upstream activities. 590 | Below are areas of the project that need help but require less dedicated time. 591 | 592 | - Comment on [KEPs][kep] with your use case (this is helpful from end users 593 | too!) 594 | - Tag `sig/security` on issues and pull requests that you review and have security 595 | concerns 596 | - [SIG Multicluster] needs use cases and validating our approaches for different 597 | environments and deployment models 598 | - [SIG Usability] would like more participants for their [Job Study] and many 599 | other studies that are going on. 600 | - [SIG Contributor Experience] would welcome part-time and full time contributor 601 | community managers; will mentor and grow dedicated contributors in a large 602 | environment 603 | - [SIG Architecture] would like cluster operators to take a 604 | [production readiness survey] 605 | 606 | 607 | [SIG Multicluster]: https://git.k8s.io/community/sig-multicluster 608 | [SIG Usability]: https://git.k8s.io/community/sig-usability 609 | [Job Study]: https://docs.google.com/document/d/1lkPQdBEw-Xb5GEZ48WnpBgQdZ01EmTBhjcxJBlu5qJs/edit#heading=h.xsg4f6e6yk0p 610 | [SIG Contributor Experience]: https://git.k8s.io/community/sig-contributor-experience 611 | [SIG Architecture]: https://git.k8s.io/community/sig-architecture 612 | [production readiness survey]: https://docs.google.com/forms/d/e/1FAIpQLSc-J-Ydu5vp5G9vdvV5gBcraEDN_Bl-HSkVm15vAlU_orDvoA/viewform 613 | 614 | ## Current Initiatives 615 | 616 | This section summarizes current initiatives from each SIG and WG. Click on the 617 | group for reported projects completed in 2020 and granular information for each 618 | initiative with supporting links to KEPs and more. 619 | 620 | - [SIG API-Machinery](https://git.k8s.io/community/sig-api-machinery/annual-report-2020.md#current-initiatives-and-project-health) 621 | - Mitigating the impact of removing beta APIs in 1.22 622 | - Server-side-apply to stable 623 | - Server-side-apply client 624 | - Optionally skip backend TLS verification 625 | - Namespace labels 626 | - CRD and admission webhook v1beta1 API removal: reminder on kubernetes-dev. 627 | - Immutable fields API 628 | - API unions 629 | - Warnings to stable 630 | - apiserver network proxy to beta 631 | - Priority and fairness to stable 632 | 633 | - [SIG Apps](https://git.k8s.io/community/sig-apps/annual-report-2020.md#current-initiatives-and-project-health) 634 | - Promoting CronJobs to GA 635 | - Promoting PodDisruptionBudgets to GA 636 | 637 | - [SIG Architecture](https://git.k8s.io/community/sig-architecture/annual-report-2020.md#current-initiatives-and-project-health) 638 | - Increased coverage of stable endpoints by conformance tests 639 | - Coordinating dependency updates across projects 640 | - Production Readiness Review process was made mandatory in 1.21, improving 641 | scalability, supportability, monitoring, and correct feature enablement 642 | - Set up cross-project policies to move features towards stable ([conformance without beta](https://git.k8s.io/enhancements/keps/sig-architecture/1333-conformance-without-beta), [preventing "permabeta"](https://git.k8s.io/enhancements/keps/sig-architecture/1635-prevent-permabeta)) 643 | - Enhancements subproject is working with sig-release to assist SIGs in 644 | taking greater ownership of their KEPs during the release cycle 645 | 646 | - [SIG Auth](https://git.k8s.io/community/sig-auth/annual-report-2020.md#current-initiatives-and-project-health) 647 | - BoundServiceAccountToken 648 | - CSR v1 649 | - Token Request / bound SA token admission 650 | - client-go auth plugins 651 | - external kubelet credential providers 652 | - New features in Secrets Store CSI driver 653 | - Pod Security Policy Replacement 654 | - Several other KEPs going to General Availability on the report 655 | 656 | - [SIG Autoscaling](https://git.k8s.io/community/sig-autoscaling/annual-report-2020.md#current-initiatives-and-project-health) 657 | - Promoting HPA v2 to stable 658 | - Promoting HPAScaleToZero to beta 659 | - Vertical pod autoscaler adding support for customized recommenders 660 | - Cluster autoscaler adding support for gRPC custom cloud providers 661 | 662 | - [SIG CLI](https://git.k8s.io/community/sig-cli/annual-report-2020.md#current-initiatives-and-project-health) 663 | - Moving kubectl package code to staging 664 | - Our multi-year effort to split out of the main kubernetes repository. 665 | - kubectl debug (beta) 666 | - Several smaller efforts to unify code across all the commands, and 667 | removing technical debt 668 | 669 | - [SIG Cloud Provider](https://git.k8s.io/community/sig-cloud-provider/annual-report-2020.md#current-initiatives-and-project-health) 670 | - Feature: implement the BackendManager list 671 | - Fix flag passing in CCM 672 | - Extending Apiserver Network Proxy to handle traffic originated from Node 673 | network 674 | 675 | - [SIG Cluster Lifecycle](https://git.k8s.io/community/sig-cluster-lifecycle/annual-report-2020.md#current-initiatives-and-project-health) 676 | - Standard for communicating a local registry 677 | - Several KEPs in a separate KEP process https://github.com/kubernetes-sigs/cluster-api/tree/master/docs/proposals 678 | 679 | - [SIG Contributor Experience](https://git.k8s.io/community/sig-contributor-experience/annual-report-2020.md#current-initiatives-and-project-health) 680 | - Community Management 681 | - Contributor Documentation 682 | - Contributor Comms 683 | - Devstats 684 | - Events 685 | - GitHub Management 686 | - Mentoring 687 | - Slack Infra 688 | - KEP for revamping the prow approval plugin 689 | - Migrating the default branch on GitHub from master to main 690 | 691 | - [SIG Docs](https://git.k8s.io/community/sig-docs/annual-report-2020.md#current-initiatives-and-project-health) 692 | - Coordination with WG naming for things like removing the word “slave” 693 | (and other problematic terms) from docs 694 | - Publishing better information about releases 695 | - Docsy theme work as well as the reference documentation generation 696 | - Doc policies for third party content 697 | 698 | - [SIG Instrumentation](https://git.k8s.io/community/sig-instrumentation/annual-report-2020.md#current-initiatives-and-project-health) 699 | - Reducing metrics exposed by the kubelet 700 | - Tracing 701 | - Structured Logging 702 | - and many other KEPs listed in the report 703 | 704 | - [SIG Multicluster](https://git.k8s.io/community/sig-multicluster/annual-report-2020.md#current-initiatives-and-project-health) 705 | - Cluster ID for ClusterSet identification 706 | - Multi Cluster Services API 707 | - Kubefed - support for pull-based reconciliation 708 | - Work API - road to alpha 709 | 710 | - [SIG Network](https://git.k8s.io/community/sig-network/annual-report-2020.md#current-initiatives-and-project-health) 711 | - No report 712 | 713 | - [SIG Node](https://git.k8s.io/community/sig-node/annual-report-2020.md#current-initiatives-and-project-health) 714 | - cgroups v2 715 | - Topology manager/device alignment 716 | - Many KEPs listed in their report 717 | 718 | - [SIG Release](https://git.k8s.io/community/sig-release/annual-report-2020.md#current-initiatives-and-project-health) 719 | - Release cadence 720 | - North Star Vision Roadmap 721 | - Enhancing tooling 722 | - New Program Manager role 723 | 724 | - [SIG Scalability](https://git.k8s.io/community/sig-scalability/annual-report-2020.md#current-initiatives-and-project-health) 725 | - Reduced time for 5k scalability tests from 14 hours to < 5 hours 726 | - Improved testing frameworks and extended scalability test coverage 727 | - [Efficient Watch Resumption](https://github.com/kubernetes/enhancements/issues/1904) 728 | - [Immutable Secrets and ConfigMaps](https://github.com/kubernetes/enhancements/issues/1412) 729 | 730 | - [SIG Scheduling](https://git.k8s.io/community/sig-scheduling/annual-report-2020.md#current-initiatives-and-project-health) 731 | - Continuing to refactor the core code around the scheduling framework 732 | - Graduating the scheduler's ComponentConfig to stable 733 | - Scheduler into a pluggable framework outside of the main repo 734 | - More alpha and beta features listed in the report 735 | 736 | - [SIG Security](https://git.k8s.io/community/sig-security/annual-report-2020.md#current-initiatives-and-project-health) 737 | - Kubernetes Hardening Guide 738 | - Third Party Security Audit 739 | - PodSecurityPolicy replacement: PodSecurity admission 740 | - Support for Windows privileged containers 741 | - Run control-plane as non-root in kubeadm 742 | - Defend against logging secrets via static analysis 743 | - More KEPs listed in their report 744 | 745 | - SIG Service Catalog 746 | - No report 747 | 748 | - [SIG Storage](https://git.k8s.io/community/sig-storage/annual-report-2020.md#current-initiatives-and-project-health) 749 | - Container Object Storage Interface 750 | - Generic Ephemeral Volumes 751 | - CSI Support for Windows 752 | - Volume Snapshots stable 753 | - and other beta, alpha, road to alpha, and stable KEPs listed in the report 754 | 755 | - SIG Testing 756 | - No report 757 | 758 | - [SIG UI](https://git.k8s.io/community/sig-ui/annual-report-2020.md#current-initiatives-and-project-health) 759 | - Ongoing maintenance 760 | - Real time dashboard 761 | - New language translations 762 | 763 | - [SIG Usability](https://git.k8s.io/community/sig-usability/annual-report-2020.md#current-initiatives-and-project-health) 764 | - Jobs-to-be-done research proposal 765 | 766 | - [SIG Windows](https://git.k8s.io/community/sig-windows/annual-report-2020.md#current-initiatives-and-project-health) 767 | - Privileged containers 768 | - Network Policy Support 769 | 770 | - [WG API Expression](https://git.k8s.io/community/wg-api-expression/annual-report-2020.md#current-initiatives-and-project-health) 771 | - Server Side Apply landing stable in 1.21; will complete the groups mission 772 | 773 | - WG Component Standard 774 | - n/a 775 | 776 | - [WG Data Protection](https://git.k8s.io/community/wg-data-protection/annual-report-2020.md#current-initiatives-and-project-health) 777 | - Volume Backups 778 | - Backup Repositories 779 | - Data Populator 780 | - Quiesce and Unquiesce Hooks 781 | - CBT 782 | - Volume Group and Group Snapshot 783 | - Application Snapshots and Backups 784 | 785 | - WG IoT/Edge 786 | - n/a 787 | 788 | - [WG K8s Infra](https://git.k8s.io/community/wg-k8s-infra/annual-report-2020.md#current-initiatives-and-project-health) 789 | - Ensure SIG ownership of all infra and services 790 | - Migrate .deb/.rpm package building/hosting to community 791 | - stop using google-containers, k8s-prow, k8s-prow-build, k8s-gubernator, kubernetes-jenkins, GCP project 792 | - Migrate images used by CI jobs and test-infra components 793 | 794 | - [WG Multitenancy](https://git.k8s.io/community/wg-multitenancy/annual-report-2020.md#current-initiatives-and-project-health) 795 | - [Multi-Tenancy Benchmarks](https://sigs.k8s.io/multi-tenancy/benchmarks) 796 | - [Virtual Cluster Project](https://sigs.k8s.io/multi-tenancy/incubator/virtualcluster) 797 | - [Hierarchical Namespace Controller](https://sigs.k8s.io/multi-tenancy/incubator/hnc) 798 | 799 | 800 | ## Appendices 801 | 802 | 803 | ## Appendix A: Program documentation 804 | 805 | [Program Documentation](https://git.k8s.io/community/committee-steering/governance/annual-reports.md) 806 | 807 | ## Appendix B: Survey questions 808 | 809 | Operational 810 | 811 | * How are you doing with operational tasks in SIG-governance.md? 812 | * Is your README accurate? have a CONTRIBUTING.md file? 813 | * All subprojects correctly mapped and listed in sigs.yaml? 814 | * What’s your meeting culture? Large/small, active/quiet, learnings? Meeting 815 | notes up to date? Are you keeping recordings up to date/trends in community 816 | members watching recordings? 817 | * How does the group get updates, reports, or feedback from subprojects? Are 818 | there any springing up or being retired? Are OWNERS.md files up to date in these 819 | areas? 820 | * Same question as above but for working groups. 821 | * When was your last public community-wide update? (provide link to deck and/or 822 | recording) 823 | 824 | Membership 825 | 826 | * Are all listed SIG leaders (chairs, tech leads, and subproject owners) active? 827 | * How do you measure membership? By mailing list members, OWNERs, or something 828 | else? 829 | * How does the group measure reviewer and approver bandwidth? Do you need help 830 | in any area now? What are you doing about it? 831 | * Is there a healthy onboarding and growth path for contributors in your SIG? 832 | What are some activities that the group does to encourage this? What programs 833 | are you participating in to grow contributors throughout the contributor ladder? 834 | * What programs do you participate in for new contributors? 835 | * Does the group have contributors from multiple companies/affiliations? Can end 836 | users/companies contribute in some way that they currently are not? 837 | 838 | Current initiatives and project health 839 | 840 | * What are some initiatives that should be highlighted, lauded, shoutouts, that 841 | your group is proud of? Currently underway? What are some of the longer tail 842 | projects that your group is working on? 843 | * Year to date KEP work: What's now stable? Beta? Alpha? Road to alpha? 844 | * What initiatives are you working on that aren't being tracked in KEPs? 845 | * What areas and/or subprojects does the group need the most help with? 846 | * What metrics/community health stats does your group care about and/or measure? 847 | Examples? 848 | 849 | 850 | 851 | 852 | 853 | [ldr]: https://git.k8s.io/community/community-membership.md 854 | [kep]: http://git.k8s.io/enhancements/#is-my-thing-an-enhancement 855 | -------------------------------------------------------------------------------- /reports/summary-2021.md: -------------------------------------------------------------------------------- 1 | ## Annual Report Summary 2021 2 | 3 | This is a summary of the Kubernetes project’s contributor community and 4 | activities. This report documents both quantitative measures of community 5 | health (project milestones and snapshot) as well as qualitative measures of the 6 | community as reported by community leaders and contributors to the project. 7 | 8 | Authors: The Kubernetes Steering Committee 9 | Editor: Tim Bannister, @sftim, SIG Docs Tech Lead 10 | 11 | ## Terminology 12 | 13 | This report uses the following terminology: 14 | 15 | - **Special Interest Group (SIG):** a body of contributors, responsible on an 16 | ongoing basis for an area of work in the Kubernetes project. They own code, 17 | docs, and/or policy. 18 | - **Working Group (WG):** a body of contributors, responsible for an area of work 19 | in the project. Unlike SIGs, WGs dissolve once the scoped work is complete. 20 | Working groups are cross-functional efforts sponsored by a SIG. 21 | - **Community Groups:** all of our official groups of the upstream project. Special 22 | Interest Groups + Working Groups + Committees = community groups. For a full 23 | list, visit the Kubernetes Contributor Site at: https://k8s.dev/groups 24 | - **Chair and/or Tech Lead:** a contributor who organizes and leads a community group. 25 | - **Contributor:** an individual who creates an event in GitHub like a Pull Request, Issue, Review, or Comment 26 | - **KEP:** a [Kubernetes Enhancement Proposal][kep] 27 | - **OWNER:** a GitHub user who reviews, approves, and/or merges commits and is listed in an 28 | [`OWNERS` file]. Maintainer is a good industry synonym. 29 | - **Contributor Ladder:** [member, reviewer, approver, subproject owner]. 30 | 31 | 32 | For the community group mailing list, meeting times, and other contact info visit: 33 | https://k8s.dev/groups 34 | 35 | 36 | For community groups governance: 37 | - [SIG governance] 38 | - [WG governance] 39 | 40 | 41 | [`OWNERS` file]: https://www.kubernetes.dev/docs/guide/owners/ 42 | [member, reviewer, approver, subproject owner]: https://git.k8s.io/community/community-membership.md 43 | [SIG governance]: https://git.k8s.io/community/committee-steering/governance/sig-governance.md 44 | [WG governance]: https://git.k8s.io/community/committee-steering/governance/wg-governance.md 45 | 46 | 47 | ## Data collection 48 | 49 | The Kubernetes Steering Committee sent out a survey to all community group 50 | leads to collect data for this report. Each individual group report may be 51 | found in their respective directory inside the [Kubernetes Community repo]. 52 | 53 | For more, see: 54 | [Program Documentation] 55 | 56 | [Program Documentation]: https://github.com/kubernetes/community/blob/master/committee-steering/governance/annual-reports.md 57 | 58 | ## Contributor snapshot 59 | 60 | 62000 61 | contributors all time 62 | 10000 63 | new contributors this year 64 | 65 | 1 66 | new sig SIG K8s Infra, converted from WG 67 | 68 | 69 | 1 70 | new working group 71 | 72 | 5 73 | new chairs and tech leads 74 | 75 | 10 or less 76 | unique reviewers in 8 groups 77 | 78 | 8.29 79 | average active meeting participants in each group 80 | 81 | ~70000 82 | slack members in SIG/WG rooms 83 | 84 | 85 | [Kubernetes Community repo]: https://github.com/kubernetes/community 86 | 87 | 88 | ### Accolades 89 | 90 | On behalf of the project, we'd like to say thanks to the following contributors, 91 | community groups, and ecosystem for the following highlights. As always, give 92 | praise to an effort in `#shoutouts` on Kubernetes slack. 93 | 94 | 95 | #### Feature Maturity and Stability 96 | 97 | Thanks to our groups for continuing the efforts from 2020, many SIGs continue 98 | to drive long standing beta features to graduate to stable. 99 | 100 | Several features that graduated to stable or made notable progress include: 101 | - [CSI Plugins on Windows Nodes] graduated to stable in v1.22 (SIG Windows) 102 | - [Generic ephemeral inline volumes] graduated to stable in v1.23 (SIG 103 | Storage) 104 | - [IPv4/IPv6 dual-stack] graduated to stable in v1.23 (SIG Network) 105 | - [Metrics stability framework] graduated to stable in v1.21 (SIG 106 | Instrumentation) 107 | - [Server-side Apply] graduated to stable in v1.22 (SIG API Machinery) 108 | - [Client credential plugins] graduated to stable in v1.22 (SIG Auth) 109 | - [Kubetest2] is maturing (SIG Testing) 110 | - [CSI migration] has been an effort that has been going on for several releases. 111 | It involves SIG Storage, SIG Cloud Provider, and contributors across many 112 | cloud providers and storage vendors to work together and move in-tree volume 113 | plugins to out-of-tree CSI drivers. 114 | 115 | Other project processes are maturing, too, and not just the code. A new way to 116 | cast votes in elections (like Steering Committee and more) runs via [Elekto]. 117 | The [Kubernetes Monthly Community meeting] was rebooted to include discussions 118 | and not just presentations. 119 | 120 | [CSI Plugins on Windows Nodes]: https://git.k8s.io/enhancements/keps/sig-windows/1122-windows-csi-support 121 | [Generic ephemeral inline volumes]: https://git.k8s.io/enhancements/keps/sig-storage/1698-generic-ephemeral-volumes 122 | [IPv4/IPv6 dual-stack]: https://git.k8s.io/enhancements/keps/sig-network/563-dual-stack 123 | [kubetest2]: https://git.k8s.io/enhancements/keps/sig-testing/2464-kubetest2-ci-migration 124 | [Metrics stability framework]: https://git.k8s.io/enhancements/keps/sig-instrumentation/1209-metrics-stability 125 | [CSI migration]: https://kubernetes.io/blog/2021/12/10/storage-in-tree-to-csi-migration-status-update/ 126 | [Client credential plugins]: https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins 127 | [Server-side Apply]: https://kubernetes.io/docs/reference/using-api/server-side-apply/ 128 | [Elekto]: https://elekto.dev/ 129 | [Kubernetes Monthly Community meeting]: https://youtube.com/playlist?list=PL69nYSiGNLP1pkHsbPjzAewvMgGUpkCnJ 130 | 131 | 132 | #### Showing up and sticking around 133 | 134 | Climbing the contributor ladder is a trust-building exercise as much as it is 135 | a skills one. Sticking around, chopping wood, and carrying water is the main 136 | formula for growing OWNERs and leaders on the project. 137 | 138 | An example of an intentional contributor ladder growth effort happened in SIG 139 | Docs by growing its contributor and reviewer base in 2021. They introduced a 140 | shadow program for PR Wrangling and dedicated more time to being active in 141 | the `#sig-docs` Slack channel, helping grow the community. SIG Docs also worked on 142 | a leadership transition strategy to bring community members into leadership 143 | roles via a specialized six-month group mentorship program. They were able to 144 | cultivate leaders for the SIG and some of its subgroups, adding new co-chairs 145 | and tech leads. 146 | 147 | SIG CLI deserves another great shoutout for having long-standing Chairs and 148 | Tech Leads take the emeritus route while growing new leaders into the roles. 149 | Thanks for your service and great job, team! 150 | 151 | 152 | #### Amping up Kubernetes security 153 | 154 | Every group in Kubernetes has a responsibility to make sure we are putting 155 | our best foot forward with supply chain security. Accolades to all of 156 | SIG Release, SIG Auth, and SIG Security for their sustained efforts in this 157 | area that include: 158 | - generating SBOMs, 159 | - compliance with [SLSA 3 standards](https://slsa.dev), 160 | - artifact signing, 161 | - rearchitecting release process from bash to Go, 162 | - and adding new features, tests and checks to the release process - these were 163 | missing from the original anago tooling (binary verification, CVE disclosure, building 164 | from custom branches and repositories). 165 | 166 | Alongside those improvements specifically to supply-chain security, we've seen: 167 | 168 | - improvements to end-user security documentation. 169 | - Pod credentials are auto-revoked when pods complete or are deleted (1.22+) 170 | - CSI drivers can use pod-scoped credentials using [Service Account Token for CSI Driver] (1.22+) 171 | - Certificates can be requested with shorter lifetimes (1.22+) 172 | - Pods can listen on low ports without requiring a root user or expanded capabilities (1.22+) 173 | - [Pod Security admission] has graduated to beta and is enabled by default (1.23+) 174 | 175 | [Pod Security admission]: https://kubernetes.io/docs/concepts/security/pod-security-admission/ 176 | [`CSIServiceAccountToken`]: https://git.k8s.io/enhancements/keps/sig-storage/1855-csi-driver-service-account-token 177 | 178 | #### Things that no longer spark joy 179 | 180 | There are plenty of processes, tools, and policy that are put 181 | together in a project lifecycle that eventually need to be phased 182 | out for whatever reason. A contributor painpoint that we've had with 183 | a codebase this large is [bazel]. The crews in SIG Testing and 184 | SIG Release put in a lot of time and attention on removing bazel 185 | from kubernetes/kubernetes. There are some pieces left in 186 | kubernetes/test-infra but needless to say, we are on the road to 187 | moving on in our build processes. 188 | 189 | [bazel]: https://github.com/kubernetes/enhancements/issues/2420 190 | 191 | #### Growing Windows support 192 | 193 | Thanks to the SIG Windows team and surrounding groups for their efforts 194 | in growing the support in this space! A true testament to the power of the 195 | ecosystem. They have more upcoming work to do and we are looking forward 196 | to seeing their growth in 2022 and beyond. 197 | 198 | Details: 199 | - Implemented hostProcess container support in Kubernetes (now in beta) and 200 | promoted adoption in multiple open source communities 201 | - Defined the kubectl subcommand for fetching node-level logs. 202 | - Made the developer UX for Windows transparent with sig-windows-dev-tools. 203 | - Defined operational readiness standards for Windows. 204 | - Defined the pod OS field. 205 | 206 | 207 | 208 | ### Themes / Trends 209 | 210 | 211 | #### Prioritizing Quality 212 | 213 | The project saw an increase in regression-related backports in the two most 214 | recent releases (1.22 and 1.23). Many of these regressions were related to a 215 | couple types of changes: 216 | - Changes to add features or fix unrelated bugs in areas that are complex 217 | and undertested 218 | - Changes that were intended to be mechanical refactors that accidentally 219 | modified behavior 220 | 221 | 222 | ##### What have we done? 223 | 224 | Adjustments are being made in several areas throughout the release cycle to 225 | reverse this trend: 226 | - Encouraging SIG and component leads to 227 | [track and consider the health of existing code/components] when planning 228 | and accepting new feature proposals. 229 | - Guiding proposal authors to [provide more specific test plans], and reminding 230 | them that stabilizing or improving the existing health of the area they want 231 | to change may be required before their proposal can proceed. 232 | - Clarifying the standards [reviewers and approvers should apply] during 233 | implementation. 234 | - Improving test signal by cleaning up unowned or permanently failing CI jobs, 235 | to give better visibility to test flakes or failures introduced during a 236 | development cycle. 237 | - Adjusting release schedules to ensure time for at least two release candidate 238 | builds, and giving time for feedback on those builds. Thanks to reports from 239 | users testing pre-release builds, regressions were fixed before both the 240 | 1.23.0 and 1.24.0 releases! 241 | 242 | 243 | [track and consider the health of existing code/components]: https://youtu.be/32Sm2bHNnCI 244 | [provide more specific test plans]: https://github.com/kubernetes/enhancements/blob/278a3169457576fcf8ede27df2b2f1902eeea2a1/keps/NNNN-kep-template/README.md?plain=1#L270-L328 245 | [reviewers and approvers should apply]: https://groups.google.com/a/kubernetes.io/g/dev/c/6F3h0Z1QzVg 246 | 247 | 248 | #### Independent contributors play a critical role on the project 249 | 250 | A misconception is that this project is just cloud providers maintaining it; 251 | however, one of our biggest contributor bases are "[independent]" that is, not 252 | affliated with an organization. 253 | 254 | There is space for everyone here. 255 | 256 | 257 | [independent]: https://k8s.devstats.cncf.io/d/8/company-statistics-by-repository-group?orgId=1&from=1609480800000&to=1641016800000&viewPanel=1&var-period=d7&var-metric=committers&var-repogroup_name=All&var-repo_name=kubernetes%2Fkubernetes&var-companies=All 258 | 259 | 260 | ##### What have we done? 261 | 262 | Connect folks to jobs! While not all indie contributors are looking for 263 | employment, many are. This year we worked with CNCF to add a feature to the 264 | [cncf.jobs.io site], which allows employers to indicate a percentage of time 265 | that they would support upstream activities. The Kubernetes project needs more 266 | contributors with employer-backed time, and this was a great step toward that 267 | goal. Aligning contributors with the right incentives is the sweet spot for 268 | lasting contributions. 269 | 270 | [jobs.cncf.io site]: https://jobs.cncf.io 271 | 272 | 273 | ##### Areas to research? 274 | 275 | As part of upcoming surveys, we will poll the indpedenet contributors on various 276 | topics and how we can support them more. As always, we welcome feedback via 277 | [SIG Contributor Experience] or for high level governance matters, the 278 | [Steering Committee]. 279 | 280 | [SIG Contributor Exerperience]:https://git.k8s.io/community/sig-contributor-experience#contact 281 | [Steering Committee]: https://git.k8s.io/community/committee-steering#contact 282 | 283 | 284 | #### Niche contributor documentation /help-wanted 285 | 286 | With one of the largest decentralized distributed open-source projects out 287 | there, expect our contribution guides to be in-depth and extensive. 288 | [k8s.dev/guide] is our primary guide; no matter where you contribute to the 289 | project, you start there. But because the project is so large, some groups have 290 | other style guides, code review processes, and more that define how they do 291 | business and operationalize. This is an important part of our [values]. Same 292 | thing at big employers: everyone gets the standard onboarding docs, but 293 | your department might have an additional "here's how to get work done" 294 | document floating around. 295 | 296 | Many of our groups reported in that they have a hard time keeping [this 297 | information] up to date, if they even have this kind of documentation at all. This 298 | is a great way to get involved if you are new to a group! Want to become an OWNER? 299 | Set someone up for success behind you by creating documentation for your area. 300 | 301 | [k8s.dev/guide]: https://k8s.dev/guide 302 | [this information]: https://github.com/kubernetes/community/tree/master/contributors/devel 303 | 304 | 305 | #### What have we done? 306 | 307 | In late 2020, SIG Leads were tasked with [auditing] their area specific 308 | documentation, with many removing out-dated information and creating follow-up 309 | items calling out things things that should be documented. These audits made it 310 | easy for companies to bring on Tech Writers to help shore up this needed 311 | documentation. 312 | 313 | Additional processes have been put in place, such as a documentation review as 314 | part of the annual report process should ensure that project contributing docs 315 | remain (relatively) up-to-date. 316 | 317 | 318 | [auditing]: https://github.com/kubernetes/community/issues/5229 319 | 320 | 321 | #### Areas to research 322 | 323 | Updating documentation is usually a good onboarding path for interns and 324 | new contributors but this can get murky with some of the complexities of 325 | the code and doc set. It can take up to 3 months to onboard on to the project 326 | before suggestion and submitting changes. Is there a program that SIGs could 327 | create as an onboarding path towards OWNERship here? 328 | 329 | 330 | 331 | #### Burnout 332 | 333 | The topics of burnout and workload management are frequent in our Leads and 334 | group meetings, Steering Committee, and even the growing voices at ecosystem 335 | level during talks and events at KubeCon/CloudNativeCons. This is an industry 336 | wide problem that we need to solve together. With a mix of reasons why 337 | contributors are burning out, there is no one "solve all" solution here. 338 | Aligning incentives to grow OWNERs seems to be one of the main challenges in 339 | this space. 340 | 341 | #### What have we done 342 | - Reducing the release cadence. While this wasn't the only reason for having 343 | 3 and not 4 releases in a year, it factored in. [Check out this blog for more on the release cadence change](https://kubernetes.io/blog/2021/07/20/new-kubernetes-release-cadence/). 344 | - Continue to talk about how we can do better in our monthly Chairs and Tech Leads and keeping our doors open for contributors to have these conversations with us. 345 | - Educating contributors and OWNERs on the use of "Emeritus" and why it's ok to take breaks. 346 | 347 | 348 | 349 | 350 | ### Growth Areas 351 | 352 | This section represents an area of the project that we've identified as having a growth opportunity or need. 353 | 354 | 355 | 356 | #### What's project health anyway? 357 | 358 | Some of the more mature groups like SIG Instrumentation or those with industry 359 | open-source veterans can quickly identify areas of their components that need 360 | help and tell stories about what's flourishing. Yet, it can be challenging to 361 | establish universal indicators of "project health" in a project as large and 362 | diverse as Kubernetes. We need to develop these indicators to provide signal to 363 | the leads so that they may detect, pre-empt, or bubble up this information to 364 | keep their area healthy. 365 | 366 | 367 | #### Every group needs more reviewers 368 | 369 | If you've been watching open source news over the last year, supply chain security has made headlines. According to OpenSSF and other security groups, code reviews are an important piece to putting prioritization on security. Kubernetes strives for two reviews (a reviewer and approver) to match our values of quality and high-trust. 370 | Reviewers are a key part of our success in quality code and documentation changes upstream. Reviewer is the next step on our [contributor ladder](https://github.com/kubernetes/community/blob/master/community-membership.md) post Org Member; however, you don't need to be in an OWNERs file as a Reviewer to review. Anyone can leave a comment or an "/lgtm" (looks good to me!). As we try and grow top level approvers, sticking around and getting into an OWNERs file as a Reviewer is crucial for our sustainability as a project to keep pace. 371 | As a data point, in 1.19, the average daily PR reviewers were down -15% across Kubernetes Orgs and -24% in the Kubernetes/Kubernetes repo while still receiving the same amount of issues and PRs. If you are trying to get a change into Kubernetes, this will effect you. 372 | 373 | #### The 9 to 5 contributor is almost over and we have to adjust 374 | 375 | Only a handful of our OWNERs, some of our most active contributors, will tell 376 | you that they work 80-100% upstream. These folks know the codebase and docs 377 | extensively and are some of our most experienced reviewer eyes. But anecdotally, 378 | the number of experienced and very active core folks able to contribute has 379 | decreased in recent years. Ensuring continuity and growing more people into 380 | senior roles is becoming critical for the project to continue to deliver a 381 | robust and reliable releases. 382 | 383 | In 2022 we have started discussion the CNCF Governing Board to see how we can 384 | tackle long term strategies together. 385 | - How can we incentivize growth in this area of sustainers? 386 | - How can we surface areas of risk that require investment to keep going? 387 | - Are there additional actions we might take in the short term? 388 | 389 | 390 | #### This reporting process and its summary 391 | 392 | This process takes us 6 months. This is both not sustainable and not helpful. 393 | Between our groups being heads down shipping reliable and stable enhancements, 394 | societal challenges and atrocities that affect us such the war in Ukraine, not to mention 395 | a global pandemic, we have a lot of leniency for groups getting this together. 396 | Our contributors live all over the world, have day jobs, and might have their 397 | own challenges that they are living through. 398 | 399 | With the theme of burnout, how can we support groups without bogging them down 400 | with paperwork? How can we communicate our needs at a level that hears and takes 401 | action on them? We need to build more tooling in this area and will be putting out 402 | a call for interns soon. [Have other advice for us?] 403 | 404 | 405 | [Have other advice for us?]: https://github.com/kubernetes/steering/issues/242 406 | 407 | 408 | 409 | 410 | 411 | ## Help Wanted 412 | 413 | #### [SIG API Machinery](https://git.k8s.io/community/sig-api-machinery/annual-report-2021.md#project-health) 414 | 415 | - Client libraries 416 | - Triage 417 | - Sticking around and growing into contributor ladder roles 418 | 419 | 420 | #### [SIG Apps](https://git.k8s.io/community/sig-apps/annual-report-2021.md#project-health) 421 | 422 | SIG Apps is looking to grow their pool of [reviewers and appprovers]. Contributors 423 | looking at growing into these roles can join the [SIG Apps / SIG CLI Review club]. 424 | 425 | [reviewer and appprover]: #OWNERmaintainer 426 | [SIG Apps / SIG CLI Review club]: https://groups.google.com/g/kubernetes-sig-apps/c/aTymvEPd2y0/m/HbqV7NiZBAAJ 427 | 428 | 429 | #### [SIG Auth](https://git.k8s.io/community/sig-auth/annual-report-2021.md#project-health) 430 | 431 | SIG Auth keeps a running list of [KEPs that need help] and tracks their progress 432 | on their [SIG Auth project board]. They are also looking for help in enhancing 433 | their own [onboarding guide and PR review guidance]. 434 | 435 | Specifically SIG Auth is looking for help in these initatives: 436 | - [KMS-Plugin: Improvements](https://docs.google.com/document/d/1YHzSzITSS3ZNpf63E-rseDo-ocpxexp3ttzjBU2P8Ck/edit?usp=sharing) 437 | - Specifying multiple webhooks in the kube-apiserver authorization chain 438 | - Structured config for OIDC authentication 439 | - Audit logging improvements 440 | - Renaming the `system:masters` group 441 | 442 | 443 | [KEPs that need help]: https://docs.google.com/document/d/1sY8fRyRtk4eG9R439z5ao5i9bFuuxilS03XaNlqoni0/edit 444 | [onboarding guide and PR review guidance]: https://github.com/kubernetes/community/blob/master/sig-auth/CONTRIBUTING.md 445 | [SIG Auth project board]: https://github.com/orgs/kubernetes/projects/54 446 | 447 | 448 | #### [SIG CLI](https://git.k8s.io/community/sig-cli/annual-report-2021.md#project-health) 449 | 450 | SIG CLI has three areas where they're looking for more help: 451 | - Optimizing [kubectl memory usage]. 452 | - Contributors that can dedicate time and grow into maintainer roles (reviewer / 453 | approver) for [Kustomize]. 454 | - SIG CLI's docs for both kubectl and kustomize need additional support. They 455 | are built off [cli-experimental], are outdated, need SEO improvements and 456 | migrated to the new kustomize.io and kubectl.io domains. Alignment with k8s.io docs 457 | would be useful too. 458 | 459 | [kubectl memory usage]: https://github.com/kubernetes/kubectl/issues/978 460 | [kustomize]: https://github.com/kubernetes-sigs/kustomize 461 | [cli-experimental]: https://github.com/kubernetes-sigs/cli-experimental 462 | 463 | 464 | #### [SIG Cloud Provider](https://git.k8s.io/community/sig-cloud-provider/annual-report-2021.md#project-health) 465 | 466 | SIG Cloud Provider needs more support from cloud providers to 467 | [extract the provider specific code] from the main Kubernetes repo. Spinning 468 | them out will create a smaller and more secure core, while enabling the Cloud 469 | Providers to release and update their components on their own cadence. 470 | 471 | [extract the provider specific code]: https://git.k8s.io/enhancements/keps/sig-cloud-provider/2395-removing-in-tree-cloud-providers 472 | 473 | 474 | #### [SIG Contributor Experience](https://git.k8s.io/community/sig-contributor-experience/annual-report-2021.md#project-health) 475 | 476 | The SIG is looking for a full time community manager. Also, there are three 477 | [subprojects][contribex-sp] where [SIG Contributor Experience] could use assistance. 478 | 479 | - [GitHub Administration] 480 | - The GitHub Admin team needs more [new membership coordinators]. These 481 | coordinators are current contributors that help serve as a friendly face 482 | to newer, prospective community members, guiding them through the process 483 | to request membership to a Kubernetes GitHub organization. 484 | - [Community Management Automation] 485 | - [Auto upload recordings from Zoom to YouTube] 486 | - Every community group (SG/WG/Committee) records and publishes their meetings 487 | for transparency. The current process is frought with manual work and toil, 488 | frequently leading to recordings being published in batches long after the 489 | meeting was held. 490 | - [Workspace Automation] 491 | - The Kubernetes project as a whole relies heavily on Google Workspace, mailing 492 | lists, calendars and docs. There is an ongoing effort to streamline these 493 | processes and bring them under a single domain for central management. 494 | - [Mentoring Program Management and new Roles] 495 | - [Group Mentoring Coordinator] 496 | - SIG Contributor Experience facilitates and aids other groups with their 497 | in-project mentoring initatives. With increased interest in mentoring 498 | from other SIGs and WGs, there is a need for a dedicated coordinator to 499 | spin up and manage these initatives. 500 | - [3rd Party Mentoring Coordinator] 501 | - SIG Contributor Experiences works with a number of external mentorship 502 | programs such as Outreachy, Google Summer of Code, LFX and more. As 503 | there are a number of external parties with a variety of deadlines and 504 | requirements, the SIG is looking for a dedicated person(s) to manage 505 | and facilicate working with these external mentorship programs. 506 | 507 | [contribex-sp]: https://git.k8s.io/community/sig-contributor-experience/#subprojects 508 | [SIG Contributor Experience]: https://git.k8s.io/community/sig-contributor-experience/ 509 | [GitHub Administration]: https://git.k8s.io/community/sig-contributor-experience/#github-management 510 | [new membership coordinators]: https://git.k8s.io/community/github-management#new-membership-coordinator 511 | [Community Management Automation]: https://git.k8s.io/community/sig-contributor-experience/#community-management 512 | [Auto upload recordings from Zoom to Youtube]: https://github.com/kubernetes/community/issues/5201 513 | [Workspace Automation]: https://github.com/kubernetes/steering/issues/213 514 | [Mentoring Program Management and new Roles]: https://git.k8s.io/community/sig-contributor-experience/#mentoring 515 | [Group Mentoring Coordinator]: https://github.com/kubernetes/community/issues/6517 516 | [3rd Party Mentoring Coordinator]: https://github.com/kubernetes/community/issues/6471 517 | 518 | 519 | #### [SIG Docs](https://git.k8s.io/community/sig-docs/annual-report-2021.md#project-health) 520 | 521 | There are two initatives where [SIG Docs] could use assistance. 522 | 523 | The [blog subproject] is particularly short on resources and attention. At the 524 | moment a very small pool of active editors are the constraint / most critical 525 | resource for article publication. One editor is involved in the majority of 526 | published articles; other editors are perhaps even more stretched with other 527 | Kubernetes contributions and involvement with other SIGs. 528 | 529 | The Ukrainian localization team is primarily worked on by people based in Ukraine, 530 | where the ongoing and intensifying conflict creates challenges that take priority 531 | over open source contribution. 532 | 533 | [SIG Docs]: https://git.k8s.io/community/sig-docs/ 534 | [Blog subproject]: https://git.k8s.io/community/sig-docs/blog-subproject/ 535 | 536 | 537 | #### [SIG Instrumentation](https://git.k8s.io/community/sig-instrumentation/annual-report-2021.md#project-health) 538 | 539 | The [Prometheus Adapter subproject] is in need of additional contributors that 540 | can grow and commit to becoming [reviewer/approvers]. It currently only has one 541 | active approver and is used a number of endusers. 542 | 543 | 544 | [Prometheus Adapter subproject]: https://github.com/kubernetes-sigs/prometheus-adapter 545 | [reviewer/approvers]: #OWNERmaintainer 546 | 547 | 548 | #### [SIG K8s Infra](https://git.k8s.io/community/sig-k8s-infra/annual-report-2021.md#project-health) 549 | 550 | SIG K8s Infra is looking for engineers to help build tools to automate more of the 551 | project's infrastructure and to help migrate more tests to community owned resources. 552 | Please show up to #sig-k8s-infra on Slack to help with this important group. 553 | (You can get an invitation to Slack from https://slack.k8s.io/) 554 | 555 | 556 | 557 | #### [SIG Release](https://git.k8s.io/community/sig-release/annual-report-2021.md#project-health) 558 | 559 | SIG Release is looking for more contributors in a number of subprojects 560 | - [kubernetes-sigs/bom](https://github.com/kubernetes-sigs/bom) - A utility to 561 | generate SPDX-compliant Bill of Materials manifests 562 | - [kubernetes-sigs/downloadkubernetes](https://github.com/kubernetes-sigs/downloadkubernetes) - 563 | The tool that generates the site downloadkubernetes.com, making it easier to 564 | download Kubernetes release artifacts 565 | - [kubernetes-sigs/mdtoc](https://github.com/kubernetes-sigs/mdtoc) - A small 566 | utility that generates a Table of Contents in Markdown. 567 | - [kubernetes-sigs/release-notes](https://github.com/kubernetes-sigs/release-notes) - 568 | Generator for Kubernetes release notes 569 | - [kubernetes-sigs/zeitgeist](https://github.com/kubernetes-sigs/zeitgeist) - 570 | language-agnostic dependency checker 571 | - [kubernetes/repo-infra](https://github.com/kubernetes/repo-infra) - A collection 572 | of common Kubernetes repo project tools 573 | 574 | 575 | #### [SIG Scalability](https://git.k8s.io/community/sig-scalability/annual-report-2021.md#project-health) 576 | 577 | SIG Scalability is looking to grow their contributors base across all their 578 | [subprojects][scale-sp]. Good entry points for new scalability contributors are 579 | the [Scalability Test Framework] and [Performance Tests & Validation subproject]. 580 | 581 | [scale-sp]: https://git.k8s.io/community/sig-scalability/#subprojects 582 | [Scalability Test Framework]: https://git.k8s.io/community/sig-scalability/#kubernetes-scalability-test-frameworks-1 583 | [Performance Tests & Validation subproject]: https://git.k8s.io/community/sig-scalability/#kubernetes-scalability-and-performance-tests-and-validation-1 584 | 585 | 586 | #### [SIG Scheduling](https://git.k8s.io/community/sig-scheduling/annual-report-2021.md#project-health) 587 | 588 | The [Scheduler Simulator], a project that allows for simulating and testing of 589 | scheduling profiles/plugins needs more reviewers and approvers. 590 | 591 | [Scheduler Simulator]: https://github.com/kubernetes-sigs/kube-scheduler-simulator 592 | 593 | 594 | #### [SIG Security](https://git.k8s.io/community/sig-security/annual-report-2021.md#project-health) 595 | 596 | The SIG Security [docs subproject] is always looking for security-minded 597 | contributors of all experience levels to share their learning and knowledge 598 | with the community. This subproject has consistently been a place where people 599 | merge their first Kubernetes PRs. There’s always room for continuous improvement 600 | in our documentation, and contributing to this provides an opportunity to 601 | learn more about Kubernetes security while helping everyone run their clusters 602 | more safely. We’re really proud of the way Docs encourages and welcomes new 603 | contributors, and we’d love to encourage you to become a part of it! 604 | 605 | 606 | [Docs subproject]: https://github.com/kubernetes/sig-security/issues 607 | 608 | 609 | #### [SIG Storage](https://git.k8s.io/community/sig-storage/annual-report-2021.md#project-health) 610 | 611 | SIG Storage is broadly looking for more help [fixing bugs] and growing 612 | reviewers across the board. 613 | 614 | Full time contributors in the following areas: 615 | - Write more tests and monitor [test grid health] 616 | - Improve out of tree [test framework] 617 | - Enhance [CSI release tools] 618 | - Improve [docs on CSI] and general storage architecture 619 | - Help with initial PR triage 620 | 621 | [fixing bugs]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+label%3Asig%2Fstorage+label%3Akind%2Fbug+ 622 | [test grid health]: https://testgrid.k8s.io/sig-storage 623 | [CSI release tools]: https://github.com/kubernetes-csi/csi-release-tools 624 | [test framework]: https://github.com/kubernetes-csi/csi-test 625 | [docs on CSI]: https://github.com/kubernetes-csi/docs 626 | 627 | 628 | #### [SIG Testing](https://git.k8s.io/community/sig-testing/annual-report-2021.md#project-health) 629 | 630 | SIG Testing is broadly looking for more contributors that can become 631 | reviewers / approvers. 632 | 633 | Looking for help in the following projects: 634 | - [Boskos](https://github.com/kubernetes-sigs/boskos)- Resource management 635 | service used by Kubernetes CI that provides reservation and lifecycle management 636 | - [Kubetest2](https://github.com/kubernetes-sigs/kubetest2) - Framework for 637 | launching and running end-to-end tests on Kubernetes. 638 | - [Prow](https://git.k8s.io/test-infra/prow) - Main Kubernetes CI system 639 | - Cannot continue to maintain https://monitoring.prow.k8s.io due to Grafana 640 | license change. Kubernetes has switched to using Google Cloud Monitoring, 641 | but cannot make the dashboards publicly visible. 642 | - [Triage](https://git.k8s.io/test-infra/triage) - Tool for gathering and 643 | reporting similar test failures across all CI jobs 644 | - [Kettle](https://git.k8s.io/test-infra/kettle) - Tool that collections CI 645 | job information and loads it into BigQuery for analysis 646 | 647 | 648 | #### [SIG Windows](https://git.k8s.io/community/sig-windows/annual-report-2021.md#project-health) 649 | 650 | SIG Windows has several areas it is looking for support, the largest being related 651 | to [Windows Storage support/CSI Proxy]. 652 | 653 | Looking for full time contributors to help with: 654 | - Testing hostProcess implementations on several windows apps 655 | - Improving Windows dev tools to help grow the Windows contributor community 656 | - Hardening the CSI proxy and CSI support ecosystem 657 | - Performance testing Kubernetes on Windows 658 | 659 | [Windows Storage support/CSI Proxy]: https://github.com/kubernetes-csi/csi-proxy 660 | 661 | 662 | #### [WG API Expression](https://git.k8s.io/community/wg-api-expression/annual-report-2021.md#project-health) 663 | 664 | _No Report_ 665 | 666 | 667 | #### [WG Data Protection](https://git.k8s.io/community/wg-data-protection/annual-report-2021.md#project-health) 668 | 669 | - End users come to meetings and contribute to design/implementation of the features we are working on 670 | 671 | 672 | #### [WG IoT/Edge](https://git.k8s.io/community/wg-iot-edge/annual-report-2021.md#project-health) 673 | 674 | Spinning down inside of Kubernetes and heading to CNCF level 675 | 676 | 677 | #### [WG Multitenancy](https://git.k8s.io/community/wg-multitenancy/annual-report-2021.md#project-health) 678 | 679 | No specific help needed! Contributions are still welcome. 680 | 681 | 682 | #### [WG Structured Logging](https://git.k8s.io/community/wg-structured-logging/annual-report-2021.md#project-health) 683 | 684 | - Graduate [Contextual Logging](https://github.com/kubernetes/enhancements/issues/3077) to Beta and GA 685 | - Graduate [Deprecation of klog specific flags](https://github.com/kubernetes/enhancements/issues/2845) to GA 686 | - Graduated [Structured Logging](https://github.com/kubernetes/enhancements/issues/1602) to GA 687 | - All code in kubernetes/kubernetes repository is migrated to Structured Logging API 688 | 689 | 690 | 691 | ## Initiatives 692 | 693 | #### [SIG API Machinery](https://git.k8s.io/community/sig-api-machinery/annual-report-2021.md#current-initiatives) 694 | 695 | API Machinery is evaluating the potential for generics in go1.19. 696 | There are a number of [other initiatives]. 697 | 698 | [Other initiatives]: https://github.com/kubernetes/enhancements/issues?q=is%3Aissue+label%3Asig%2Fapi-machinery+updated%3A%3E%3D2021-01-01+is%3Aopen 699 | 700 | #### [SIG Apps](https://git.k8s.io/community/sig-apps/annual-report-2021.md#current-initatives) 701 | 702 | - Significant improvements were made to the Job API, along with finally driving CronJobs 703 | to stable and introduced several long-desired features. This work is expected 704 | to continue through 2022 to finish rounding out the Job API. 705 | - [CronJobs promoted to stable (1.21)](https://git.k8s.io/enhancements/keps/sig-apps/19-Graduate-CronJob-to-Stable) 706 | - [Indexed Job promoted to beta (1.22)](https://git.k8s.io/enhancements/keps/sig-apps/2214-indexed-job) 707 | - [Suspend Job promoted to beta (1.22)](https://git.k8s.io/enhancements/keps/sig-apps/2232-suspend-jobs) 708 | - [Job tracking without lingering Pods promoted to beta (1.23)](https://git.k8s.io/enhancements/keps/sig-scheduling/2926-job-mutable-scheduling-directives) 709 | - Stability and availability improvements were made across several controllers, 710 | with larger improvements being made to both DaemonSets and StatefulSets. 711 | - [minReadySeconds for StatefulSets promoted to beta (1.22)](https://git.k8s.io/enhancements/keps/sig-apps/2599-minreadyseconds-for-statefulsets) 712 | - [Allow DaemonSets to surge during update like Deployments promoted to beta (1.22)](https://git.k8s.io/enhancements/keps/sig-apps/1591-daemonset-surge) 713 | - Additional improvements have been made to conformance testing promotions. 714 | 715 | Kubernetes Enhancements: 716 | - Stable 717 | - [19 - CronJob to Stable](https://git.k8s.io/enhancements/keps/sig-apps/19-Graduate-CronJob-to-Stable/) - 1.21 718 | - [85 - PodDisruptionBudget to GA](https://git.k8s.io/enhancements/keps/sig-apps/85-Graduate-PDB-to-Stable/) - 1.22 719 | - [592 - TTL After Finished](https://git.k8s.io/enhancements/keps/sig-apps/592-ttl-after-finish/) - 1.23 720 | - Beta 721 | - [2185 - Random Pod Selection on ReplicaSet Downscale](https://git.k8s.io/enhancements/keps/sig-apps/2185-random-pod-select-on-replicaset-downscale/) - 1.22 722 | - [1591 - Allow DaemonSets to surge during update like Deployments](https://git.k8s.io/enhancements/keps/sig-apps/1591-daemonset-surge/) - 1.22 723 | - [2214 - Indexed Job](https://git.k8s.io/enhancements/keps/sig-apps/2214-indexed-job/) - 1.22 724 | - [2232 - Suspend Job](https://git.k8s.io/enhancements/keps/sig-apps/2232-suspend-jobs/) - 1.22 725 | - [2255 - ReplicaSet Pod Deletion Cost](https://git.k8s.io/enhancements/keps/sig-apps/2255-pod-cost/) - 1.22 726 | - [2307 - Job tracking without lingering Pods](https://git.k8s.io/enhancements/keps/sig-scheduling/2926-job-mutable-scheduling-directives/) - 1.23 727 | - [2599 - minReadySeconds for StatefulSets](https://git.k8s.io/enhancements/keps/sig-apps/2599-minreadyseconds-for-statefulsets/) - 1.23 728 | - [2926 - Mutable Node Scheduling Directives for Jobs](https://git.k8s.io/enhancements/keps/sig-apps/2599-minreadyseconds-for-statefulsets/) - 1.23 729 | - Alpha 730 | - [2185 - Random Pod Selection on ReplicaSet Downscale](https://git.k8s.io/enhancements/keps/sig-apps/2185-random-pod-select-on-replicaset-downscale/) - 1.21 731 | - [1591 - Allow DaemonSets to surge during update like Deployments](https://git.k8s.io/enhancements/keps/sig-apps/1591-daemonset-surge/) - 1.21 732 | - [2214 - Indexed Job](https://git.k8s.io/enhancements/keps/sig-apps/2214-indexed-job/) - 1.21 733 | - [2232 - Suspend Job](https://git.k8s.io/enhancements/keps/sig-apps/2232-suspend-jobs/) - 1.21 734 | - [2255 - ReplicaSet Pod Deletion Cost](https://git.k8s.io/enhancements/keps/sig-apps/2255-pod-cost/) - 1.21 735 | - [2307 - Job tracking without lingering Pods](https://git.k8s.io/enhancements/keps/sig-apps/2307-job-tracking-without-lingering-pods/) - 1.22 736 | - [2599 - minReadySeconds for StatefulSets](https://git.k8s.io/enhancements/keps/sig-apps/2599-minreadyseconds-for-statefulsets/) - 1.22 737 | - [1847 - Auto delete PVCs created by StatefulSet](https://git.k8s.io/enhancements/keps/sig-apps/1847-autoremove-statefulset-pvcs/) - 1.23 738 | - [2879 - Track ready Pods in Job status](https://git.k8s.io/enhancements/keps/sig-apps/2879-ready-pods-job-status/) - 1.23 739 | 740 | 741 | #### [SIG Auth](https://git.k8s.io/community/sig-auth/annual-report-2021.md#current-initiatives) 742 | 743 | - [Pod Security admission](https://kubernetes.io/docs/concepts/security/pod-security-admission/) has [graduated to beta](https://github.com/kubernetes/kubernetes/pull/106089) and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1` in v1.23. 744 | - The [PodSecurityPolicy API is deprecated in v1.21](https://github.com/kubernetes/kubernetes/pull/97171), and will no longer be served starting in v1.25. 745 | - Marking `audit.k8s.io/v1[alpha|beta]1` versions as deprecated and warning if a version other than `audit.k8s.io/v1` was passed to the kube-apiserver flags `--audit-log-version` and `--audit-webhook-version` [in v1.21](https://github.com/kubernetes/kubernetes/pull/98858). 746 | - [PodSecurityPolicy only stores "generic" as allowed volume type](https://github.com/kubernetes/kubernetes/pull/98918) if the GenericEphemeralVolume feature gate is enabled 747 | - RunAsGroup feature for Containers in a Pod [graduates to GA in v1.21](https://github.com/kubernetes/kubernetes/pull/94641) 748 | - RootCAConfigMap feature [graduates to GA in v1.21](https://github.com/kubernetes/kubernetes/pull/98033) 749 | - The ServiceAccountIssuerDiscovery feature has [graduated to GA](https://github.com/kubernetes/kubernetes/pull/98553), and is unconditionally enabled in v1.21. 750 | - CSIServiceAccountToken [graduates to GA](https://github.com/kubernetes/kubernetes/pull/103001) in 1.22 751 | - Mark `net.ipv4.ip_unprivileged_port_start` as safe sysctl [in v1.22](https://github.com/kubernetes/kubernetes/pull/103326) 752 | - BoundServiceAccountTokenVolume [graduates to GA in v1.22](https://github.com/kubernetes/kubernetes/pull/101992) 753 | - Kubernetes client [credential plugins](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins) feature graduates to stable in v1.22. The GA feature set includes improved support for plugins that provide interactive login flows. The in-tree Azure and GCP authentication plugins have been [deprecated](https://github.com/kubernetes/kubernetes/pull/102181) in favor of out-of-tree implementations. 754 | - Kube-apiserver `--service-account-issuer` can be specified multiple times now, to enable non-disruptive change of issuer [starting v1.22](https://github.com/kubernetes/kubernetes/pull/101155) 755 | - The `CertificateSigningRequest.certificates.k8s.io` API supports an optional expirationSeconds field to allow the client to request a particular duration for the issued certificate. The default signer implementations provided by the Kubernetes controller manager will honor this field as long as it does not exceed the `--cluster-signing-duration` flag [starting v1.22](https://github.com/kubernetes/kubernetes/pull/99494). 756 | - Aggregate write permissions on events to edit and admin role [starting v1.22](https://github.com/kubernetes/kubernetes/pull/102858) 757 | - The kubelet now reports distinguishes log messages about certificate rotation for its client cert and server cert separately to make debugging problems with one or the other easier.[starting v1.22](https://github.com/kubernetes/kubernetes/pull/101252) 758 | - A new field `omitManagedFields` has been added to both `audit.Policy` and `audit.PolicyRule` so cluster operators can opt in to omit managed fields of the request and response bodies from being written to the API audit log [starting v1.23](https://github.com/kubernetes/kubernetes/pull/94986) 759 | - Adds `--as-uid` flag to kubectl to allow uid impersonation in the same way as user and group impersonation [starting v1.23](https://github.com/kubernetes/kubernetes/pull/105794) 760 | 761 | 762 | - Stable 763 | - [1205-bound-service-account-tokens](https://git.k8s.io/enhancements/keps/sig-auth/1205-bound-service-account-tokens/) - 1.22 764 | - [1393-oidc-discovery](https://git.k8s.io/enhancements/keps/sig-auth/1393-oidc-discovery/README.md) - 1.21 765 | - [2907-secrets-store-csi-driver](https://git.k8s.io/enhancements/keps/sig-auth/2907-secrets-store-csi-driver/) - 1.0.0 766 | - [541-external-credential-providers](https://git.k8s.io/enhancements/keps/sig-auth/541-external-credential-providers/) - 1.22 767 | - [1687-hierarchical-namespaces-subproject](https://git.k8s.io/enhancements/keps/sig-auth/1687-hierarchical-namespaces-subproject/) - stable 768 | - Beta 769 | - [2579-psp-replacement](https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement/) - 1.23 770 | - [2784-csr-duration](https://git.k8s.io/enhancements/keps/sig-auth/2784-csr-duration/) - 1.22 771 | 772 | 773 | 774 | #### [SIG CLI](https://git.k8s.io/community/sig-cli/annual-report-2021.md#current-initiatives) 775 | 776 | SIG CLI made progress on a number of initiatives in 2021: 777 | - [kubectl events alpha command](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/1440-kubectl-events/README.md). 778 | - [KRM Functions subproject started](https://github.com/kubernetes-sigs/krm-functions-registry). 779 | - New changes to leadership. 780 | - [@KnVerey](https://github.com/knverey) brought on as new Co-Chair and Tech Lead. 781 | - [@soltysh](https://github.com/soltysh) stepped down from Co-Chair to focus on Tech Lead. 782 | - [@pwittrock](https://github.com/pwittrock) moved to emeritus. 783 | - [@monopole](https://github.com/monopole) moved to emeritus for Kustomize. 784 | - [Started a new monthly Kustomize bug scrub](https://github.com/kubernetes/community/tree/master/sig-cli#meetings). 785 | - [Upgraded the version of Kustomize that ships with kubectl](https://github.com/kubernetes/kubernetes/pull/98946). 786 | - [Implemented native Go shell completions](https://github.com/kubernetes/kubernetes/pull/96087). 787 | - [Replicated](https://www.replicated.com/) donated [kubectl.io](https://kubectl.io) and [kustomize.io](https://kustomize.io) to the project. 788 | - [IBM](https://ibm.com) donated the [Kui](https://github.com/kubernetes-sigs/kui) project. 789 | - [The Kustomize Roadmap](https://github.com/kubernetes-sigs/kustomize/blob/master/ROADMAP.md) 790 | - [Refactoring old kubectl commands](https://github.com/kubernetes/kubectl/issues/1046) 791 | 792 | Kubernetes Enhancements 793 | - Stable 794 | - [KEP-555 - Server-side apply](https://github.com/kubernetes/enhancements/issues/555) - 1.22 795 | - Beta 796 | - [KEP-1441 - kubectl debug](https://github.com/kubernetes/enhancements/issues/1441) - 1.20, continued to evolve the beta through the year 797 | - [KEP-859 - kubectl command metadata in http request headers](https://github.com/kubernetes/enhancements/issues/859) - 1.22 798 | - Alpha 799 | - [KEP-1440 - kubectl events](https://github.com/kubernetes/enhancements/issues/1440) - 1.23 800 | - [KEP-2227 - Default container annotation to be used by kubectl](https://github.com/kubernetes/enhancements/issues/2227) - 1.21 801 | - Pre-alpha 802 | - [KEP-2985 - Public KRM functions registry](https://github.com/kubernetes/enhancements/issues/2985) 803 | - [KEP-2953 - Kustomize Plugin Graduation](https://github.com/kubernetes/enhancements/issues/2953) 804 | - Rejected 805 | - [KEP-2229 - Use XDG Base Directory Specification](https://github.com/kubernetes/enhancements/issues/2229) 806 | 807 | 808 | #### [SIG Cloud Provider](https://git.k8s.io/community/sig-cloud-provider/annual-report-2021.md#current-initiatives) 809 | 810 | _No Report_ 811 | 812 | 813 | #### [SIG Contributor Experience](https://git.k8s.io/community/sig-contributor-experience/annual-report-2021.md#current-initiatives) 814 | 815 | During 2021, SIG Contributor Experience continued to provide a number of 816 | services to the project and it's 75,000 contributors. Some achievements include 817 | the [migration of the large public kubernetes-dev] mailing list to to managed 818 | a project owned Google workspace, [developing Elekto], a replacement for the CIVS 819 | voting system, and the seamless migration of the [CLA system to EasyCLA]. 820 | 821 | SIG Contributor Experience also ran the [North America Contributor Summit], the 822 | end of year [Contributor Celebration], ran three successful mentoring cohorts, 823 | and the [Contributor Comms team] automated and started using the [@k8scontributors] 824 | twitter account to reach 5700 follows with a number of them being contributors. 825 | 826 | [migration of the large public kubernetes-dev]: https://github.com/kubernetes/community/issues/5877 827 | [developing Elekto]: https://github.com/kubernetes/community/issues/5096 828 | [CLA system to EasyCLA]: https://github.com/kubernetes/org/issues/2778 829 | [North America Contributor Summit]: https://www.kubernetes.dev/events/past-events/2021/kcsna/ 830 | [Contributor Celebration]: https://www.kubernetes.dev/events/past-events/2021/kcc2021/ 831 | [@k8scontributors]: https://twitter.com/k8scontributors 832 | 833 | 834 | Contributor Experience (“ContribEx”) is a service and program orientated SIG. Most of its initiatives 835 | cover long term services for the Kubernetes project. 836 | 837 | | **Subproject** | **Initiative / Program** | 838 | |:---------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------:| 839 | | [Community](https://git.k8s.io/community/sig-contributor-experience#community) | [Community Repo Stewardship](https://git.k8s.io/community) | 840 | | [Community Management](https://git.k8s.io/community/sig-contributor-experience#community-management) | Calendar Admin | 841 | | [Community Management](https://git.k8s.io/community/sig-contributor-experience#community-management) | Leadership Operations | 842 | | [Community Management](https://git.k8s.io/community/sig-contributor-experience#community-management) | [discuss.k8s.io End User Forum Admin](https://discuss.k8s.io) | 843 | | [Community Management](https://git.k8s.io/community/sig-contributor-experience#community-management) | [Mailing List Admin](https://k8s.dev/docs/comms/moderation/) | 844 | | [Community Management](https://git.k8s.io/community/sig-contributor-experience#community-management) | [Slack Admin](https://k8s.dev/docs/comms/slack/) | 845 | | [Community Management](https://git.k8s.io/community/sig-contributor-experience#community-management) | [Zoom](https://k8s.dev/docs/comms/zoom) / [YouTube Admin](https://k8s.dev/docs/comms/youtube/#admin-responsibilities) | 846 | | [Contributor Documentation](https://git.k8s.io/community/sig-contributor-experience#contributors-documentation) | [Contributor Guide Stewardship](https://k8s.dev/guide) | 847 | | [Contributor Documentation](https://git.k8s.io/community/sig-contributor-experience#contributors-documentation) | [Contributor Site](https://git.k8s.io/contributor-site) | 848 | | [Contributor Documentation](https://git.k8s.io/community/sig-contributor-experience#contributors-documentation) | [Developer Guide Audit](https://github.com/kubernetes/community/issues/5229) | 849 | | [Contributor Documentation](https://git.k8s.io/community/sig-contributor-experience#contributors-documentation) | [Developer Guide Stewardship](https://github.com/kubernetes/community/tree/master/contributors/devel) | 850 | | [Contributor Comms](https://git.k8s.io/community/sig-contributor-experience#contributor-comms) | Contributor / SIG Profiling | 851 | | [Contributor Comms](https://git.k8s.io/community/sig-contributor-experience#contributor-comms) | SIG Outreach and Support | 852 | | [Contributor Comms](https://git.k8s.io/community/sig-contributor-experience#contributor-comms) | Contributor Events Outreach | 853 | | [Contributor Comms](https://git.k8s.io/community/sig-contributor-experience#contributor-comms) | [Stewardship of k8scontributors twitter](https://twitter.com/k8scontributors) | 854 | | [Devstats](https://git.k8s.io/community/sig-contributor-experience#devstats) | [Devstats Dashboard Update](https://github.com/cncf/devstats/issues/289) | 855 | | [Events](https://git.k8s.io/community/sig-contributor-experience#events) | Monthly Community Meeting | 856 | | [Events](https://git.k8s.io/community/sig-contributor-experience#events) | Office Hours | 857 | | [Events](https://git.k8s.io/community/sig-contributor-experience#events) | [Elections](git.k8s.io/community/events/elections) | 858 | | [Events](https://git.k8s.io/community/sig-contributor-experience#events) | [Contributor Summits](https://k8s.dev/events/past-events/2021/) | 859 | | [GitHub Management](https://git.k8s.io/community/sig-contributor-experience#github-management) | [GitHub Admin / Moderation](https://git.k8s.io/community/github-management#github-management) | 860 | | [GitHub Management](https://git.k8s.io/community/sig-contributor-experience#github-management) | [GitHub Master -> Main rename](https://github.com/kubernetes/org/issues/2222) | 861 | | [GitHub Management](https://git.k8s.io/community/sig-contributor-experience#github-management) | [GitHub New Membership Coordinator](https://git.k8s.io/community/github-management/README.md#other-roles) | 862 | | [Mentoring](https://git.k8s.io/community/sig-contributor-experience#mentoring) | [Group Mentoring](https://git.k8s.io/community/mentoring/programs/group-mentoring.md) | 863 | | [Mentoring](https://git.k8s.io/community/sig-contributor-experience#mentoring) | [LFX Mentor Program](https://git.k8s.io/community/mentoring/programs/lfx-mentoring.md) | 864 | | [Slack Infra](https://git.k8s.io/community/sig-contributor-experience#slack-infra) | [slack-infra](https://sigs.k8s.io/slack-infra) | 865 | 866 | 867 | 868 | #### [SIG Docs](https://git.k8s.io/community/sig-docs/annual-report-2021.md#current-initiatives) 869 | 870 | - SIG Docs put meaningful effort into growing its contributor and reviewer base 871 | in 2021, introducing [a shadow program for PR Wrangling] as well as dedicating 872 | more time to being active via our Slack community channel. 873 | - Ahead of the [dockershim removal] in the Kubernetes 1.24 release, SIG Docs 874 | has been collaborating with various community members and the CNCF towards 875 | ensuring updation and creation of content in the form of documentation, blog 876 | posts etc. With weekly meetings and a [project board] to track progress, this 877 | enabled SIG Docs to invite contributors across experience levels to help us 878 | keep the Kubernetes website updated and relevant ahead of the major change. 879 | - Alongside growing our contributor base, SIG Docs also worked on a leadership 880 | transition strategy to bring community members into leadership roles. Via a 881 | specialized six month mentorship program expertly led by Steering Committee 882 | member Paris Pittman, SIG Docs was able to grow its leadership cohort for the 883 | main SIG, as well as some of its subgroups, adding new co-chairs and tech leads. 884 | - [SIG Docs google group](https://groups.google.com/g/kubernetes-sig-docs/) 885 | - [Call for help sent to dev@kubernetes.io, kubernetes-sig-leads, kubernetes-sig-docs](https://groups.google.com/g/kubernetes-sig-docs/c/hspG6mzgkrs) 886 | - [Announcement of new roles and leadership nominations](https://groups.google.com/g/kubernetes-sig-docs/c/cgrAyDLxydk) 887 | - Localization Subproject: SIG Docs is working on formalizing the localization 888 | work that has been ongoing for some time, with appointed leads of this 889 | initiative as well as recognizing the contributions of various community 890 | members across the different languages the Kubernetes website has been 891 | translated into. This subproject will be finalized by Q1 2022, with all active 892 | localizations informed and updated. 893 | - [New Contributor Ambassador Program]: As a continued focus to grow the SIG 894 | Docs contributor base, they're working on a specalized role that aims to 895 | support new and would-be contributors get up to speed with our processes 896 | and workflows. This role would be capped at six months for it to be shared 897 | amongst the community, with this feeding into a possible reviewer funnel as 898 | contributors get more comfortable with providing feedback to others. 899 | 900 | 901 | Kubernetes Enhancements: 902 | - [1326 - Doc policies for third party content](https://git.k8s.io/enhancements/keps/sig-docs/1326-third-party-content-in-docs/) 903 | 904 | [a shadow program for PR Wrangling]: https://github.com/kubernetes/website/issues/31956 905 | [dockershim removal]: https://kubernetes.io/blog/2022/02/17/dockershim-faq/ 906 | [project board]: https://github.com/orgs/kubernetes/projects/67 907 | [New Contributor Ambassador Program]: https://github.com/kubernetes/website/issues/31946 908 | 909 | 910 | #### [SIG Instrumentation](https://git.k8s.io/community/sig-instrumentation/annual-report-2021.md#current-initiatives) 911 | 912 | SIG Instrumentation had several large accomplishments in 2021. 913 | - Formed WG Structured Logging. Successfully migrated multiple components to 914 | structured logs and graduated feature to beta 915 | - Added tracing support to the Kubernetes API server and began work on Kubelet 916 | tracing 917 | - Graduated the metrics stability framework 918 | - Put into practice Bi-weekly triage meeting 919 | 920 | 921 | Kubernetes Enhancements: 922 | - Stable 923 | - [1209 - Metrics Stability](https://git.k8s.io/enhancements/keps/sig-instrumentation/1209-metrics-stability) - 1.21 924 | - [1933 - Prevent logging secrets via static analysis](https://git.k8s.io/enhancements/keps/sig-instrumentation/1753-logs-sanitization) - 1.23 925 | - Beta 926 | - [1602 - Structured Logging](https://git.k8s.io/enhancements/keps/sig-instrumentation/1602-structured-logging) - 1.23 927 | - [1748 - Pod resource requests/limits metrics](https://git.k8s.io/enhancements/keps/sig-instrumentation/1748-pod-resource-metrics) - 1.22 928 | - Alpha 929 | - [2305 - Metrics Cardinality Enforcement](https://git.k8s.io/enhancements/keps/sig-instrumentation/2305-metrics-cardinality-enforcement) - 1.21 930 | - [647 - API Server Tracing](https://git.k8s.io/enhancements/keps/sig-instrumentation/647-apiserver-tracing) - 1.22 931 | - [2845 - Deprecate klog-specific flags in k8s components](https://git.k8s.io/enhancements/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components) - 1.23 932 | - Pre-alpha 933 | - [2831 - Kubelet OpenTelemetry Tracing](https://git.k8s.io/enhancements/keps/sig-instrumentation/2831-kubelet-tracing) - alpha in 1.24 934 | 935 | 936 | #### [SIG Release](https://git.k8s.io/community/sig-release/annual-report-2021.md#current-initiatives) 937 | 938 | After finalizing the rewrite of the release process from bash into golang, the 939 | release engineering team focused its efforts on two main areas: 940 | 941 | - Improving the release automation on two fronts: 942 | - Adding new features, tests and checks to the release process which were 943 | missing from the original release tooling (binary verification, CVE 944 | disclosure, building from custom branches and repositories). 945 | - Consolidating the codebases of new repositories which SIG Release 946 | brought under its responsibility. The range of new repositories it is 947 | consolidating go from critical projects (like the image promoter) to less 948 | important repositories such as https://downloadkubernetes.com. 949 | - Hardening the Kubernetes Supply Chain via key efforts: 950 | - SBOM Generation 951 | - SLSA 3 compliance 952 | - Artifact signing 953 | 954 | 955 | Kubernetes Enhancements 956 | - Alpha 957 | - [KEP-3027 - SLSA Level 3 Compliance in the Kubernetes Release Process](https://git.k8s.io/enhancements/keps/sig-release/3027-slsa-compliance) - v1.23 958 | 959 | 960 | #### [SIG Scalability](https://git.k8s.io/community/sig-scalability/annual-report-2021.md#current-initiatives) 961 | 962 | SIG Scalability spent significant effort on validating the scalability and 963 | reliability impact of many Kubernetes features across 2021; growing the 964 | scalability tests of large services to cover 1000+ pods. Additional work 965 | was put into adding support for modules in tests, measuring the availability 966 | of the api-server and adding support for measuring cilium propagation delay & 967 | dns latency. 968 | 969 | 970 | Kubernetes Enhancements: 971 | - Beta 972 | - [1040 - Priority and Fairness for API Server Requests](https://git.k8s.io/enhancements/keps/sig-api-machinery/1040-priority-and-fairness/) - 1.23 973 | - Alpha 974 | - [647 - APIServer Tracing](https://git.k8s.io/enhancements/keps/sig-instrumentation/647-apiserver-tracing/) - 1.22 975 | - [1669 - Proxy Terminating Endpoints](https://git.k8s.io/enhancements/keps/sig-network/1669-proxy-terminating-endpoints/) - 1.22 976 | - [2464 - Kubetest2 CI Migration](https://git.k8s.io/enhancements/kepssig-testing/2464-kubetest2-ci-migration/) - 1.21 977 | 978 | 979 | #### [SIG Scheduling](https://git.k8s.io/community/sig-scheduling/annual-report-2021.md#current-initiatives) 980 | 981 | During 2021, SIG Scheduling focused on improving the overall performance of the 982 | scheduler, some highlights include: 983 | - Efficient re-queueing of pods, significantly cutting the number of failed 984 | scheduling cycles 985 | - Improvements to preemption performance 986 | - Simplified plugin configuration in component config 987 | - Created the [Scheduler simulator] 988 | - Performance improvements and benchmarking 989 | - Code refactorings and cleanups 990 | - Enhancements to node resource-based scoring (see [101946] and [101822]) 991 | 992 | 993 | Kubernetes Enhancements: 994 | - Stable 995 | - [2249 - Multi-scheduling Profiles](https://git.k8s.io/enhancements/keps/sig-scheduling/1451-multi-scheduling-profiles) - 1.22 996 | - [1845 - Prioritization on Volume Capacity](https://git.k8s.io/enhancements/keps/sig-storage/1845-prioritization-on-volume-capacity) - 1.22 997 | - Beta 998 | - [2249 - Namespace Selector for Pod Affinity](https://git.k8s.io/enhancements/keps/sig-scheduling/2249-pod-affinity-namespace-selector) - 1.22 999 | - [1923 - Prefer Nominated Node](https://git.k8s.io/enhancements/keps/sig-scheduling/1923-prefer-nominated-node) - 1.22 1000 | - [2458 - Resource Fit Scoring Strategy](https://git.k8s.io/enhancements/keps/sig-scheduling/2458-node-resource-score-strategy) - 1.22 1001 | - [2891 - Simplified Scheduler Config](https://git.k8s.io/enhancements/keps/sig-scheduling/2891-simplified-config/kep.yaml) - 1.22 1002 | - [785 - Scheduler Component Config API](https://git.k8s.io/enhancements/keps/sig-scheduling/785-scheduler-component-config-api) - 1.23 1003 | - [2926 - Job Mutable Scheduling Directives](https://git.k8s.io/enhancements/keps/sig-scheduling/2926-job-mutable-scheduling-directives) - 1.23 1004 | 1005 | 1006 | [Scheduler simulator]: https://github.com/kubernetes-sigs/kube-scheduler-simulator 1007 | [101946]: https://github.com/kubernetes/kubernetes/pull/101946 1008 | [101822]: https://github.com/kubernetes/kubernetes/pull/101822 1009 | 1010 | 1011 | 1012 | #### [SIG Security](https://git.k8s.io/community/sig-security/annual-report-2021.md#current-initiatives) 1013 | 1014 | Most of SIG Security's initiatives are out of scope for KEPs, and instead 1015 | are largelty service and process oriented. 1016 | 1017 | In 2021 they had several notable achievements: 1018 | - Kickstarted the [security self-assessment] project aimed at providing guidance 1019 | and a framework for Kubernetes subprojects to perform their own security 1020 | self-assessment. 1021 | - Implemented [vulnerability scanning for build-time dependences] in container 1022 | images. 1023 | - Scoped the work and went through the RFP process to select a vendor to perform 1024 | the project's [second external third-party audit]. 1025 | - Bootstrapped the [Security Docs subproject] aimed at improving the security 1026 | content in Kubernetes documentation. 1027 | 1028 | 1029 | Kubernetes Enhancements: 1030 | - Stable 1031 | - [1933 - Defend against logging secrets via static analysis](https://git.k8s.io/enhancements/keps/sig-security/1933-secret-logging-static-analysis/) - 1.23 1032 | - Beta 1033 | - [2579 - PSP Replacement Policy](https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement/README.m) - 1.23 1034 | - [1933 - Defend against logging secrets via static analysis](https://git.k8s.io/enhancements/keps/sig-security/1933-secret-logging-static-analysis/) - 1.21 1035 | - Alpha 1036 | - [2579 - PSP Replacement Policy](https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement/) - 1.22 1037 | - Pre-alpha 1038 | - [2763 - Ambient Capabilities](https://git.k8s.io/enhancements/keps/sig-security/2763-ambient-capabilities/) 1039 | 1040 | 1041 | [security Self-assessment]: https://github.com/kubernetes/sig-security/issues/2 1042 | [vulnerability scanning for build-time dependences]: https://github.com/kubernetes/sig-security/issues/3 1043 | [second external third-party audit]: https://git.k8s.io/sig-security/sig-security-external-audit/security-audit-2021/RFP.md 1044 | [Security Docs subproject]: https://git.k8s.io/sig-security/sig-security-docs 1045 | 1046 | 1047 | #### [SIG Storage](https://git.k8s.io/community/sig-storage/annual-report-2021.md#current-initiatives) 1048 | 1049 | In addition to a number of KEPs, SIG Storage has been working on [CBT] (Change 1050 | Blocking Tracking)] in conjunction with the Data Protection WG 1051 | 1052 | Kubernetes Enhancements: 1053 | - Stable 1054 | - [1412 - Immutable Secrets and ConfigMaps](https://git.k8s.io/enhancements/keps/sig-storage/1412-immutable-secrets-and-configmaps) - v1.21 1055 | - [1682 - Skip Volume Ownership Change](https://git.k8s.io/enhancements/keps/sig-storage/1682-csi-driver-skip-permission) - v1.23 1056 | - [1698 - generic ephemeral inline volumes](https://git.k8s.io/enhancements/keps/sig-storage/1698-generic-ephemeral-volumes) - v1.23 1057 | - [1855 - Service Account Token for CSI Driver](https://git.k8s.io/enhancements/keps/sig-storage/1855-csi-driver-service-account-token) - v1.22 1058 | - [1122 - CSI Windows](https://git.k8s.io/enhancements/keps/sig-windows/1122-windows-csi-support) - v1.22 1059 | - Beta 1060 | - [1472 - Storage Capacity Constraints for Pod Scheduling](https://git.k8s.io/enhancements/keps/sig-storage/1472-storage-capacity-tracking) - v1.21 1061 | - [1885 - In-tree Storage Plugin to CSI Migration - Azurefile](https://git.k8s.io/enhancements/keps/sig-storage/1885-csi-migration-azurefile) - v1.21 1062 | - [2317 - Provide fsgroup of pod to CSI driver on mount](https://git.k8s.io/enhancements/keps/sig-storage/2317-fsgroup-on-mount) - v1.23 1063 | - Alpha 1064 | - [1432 - Volume Health Monitor](https://git.k8s.io/enhancements/keps/sig-storage/1432-volume-health-monitor) - v1.21 1065 | - [1790 - Recover from volume expansion failure](https://git.k8s.io/enhancements/keps/sig-storage/1790-recover-resize-failure/) - v1.23 1066 | - [2485 - ReadWriteOncePod PersistentVolume AccessMode](https://git.k8s.io/enhancements/keps/sig-storage/2485-read-write-once-pod-pv-access-mode) - v1.22 1067 | - [2589 - In-tree Storage Plugin to CSI Migration - Portworx](https://git.k8s.io/enhancements/keps/sig-storage/2589-csi-migration-portworx) - v1.23 1068 | - [2644 - Honor Persistent Volume Reclaim Policy](https://git.k8s.io/enhancements/keps/sig-storage/2644-honor-pv-reclaim-policy) - v1.23 1069 | - [2923 - In-tree Storage Plugin to CSI Migration - Ceph RBD](https://git.k8s.io/enhancements/keps/sig-storage/2923-csi-migration-ceph-rbd) - v1.23 1070 | - Pre-alpha 1071 | - [Object Storage API (COSI)](https://github.com/kubernetes/enhancements/pull/2813) 1072 | 1073 | 1074 | [CBT]: https://docs.google.com/document/d/1bOXazqAVAi8wtJhVsyNNyxhjWgYFzJSTFub2IxiSqMU/edit# 1075 | 1076 | 1077 | 1078 | #### [SIG Testing](https://git.k8s.io/community/sig-testing/annual-report-2021.md#current-initiatives) 1079 | 1080 | SIG Testing is largely service-oriented and their initatives are not often 1081 | tracked as KEPs, yet they have had a number of achievements in the past year 1082 | improving testing infrastructure and features. 1083 | 1084 | Highlights of some of these initiatives include: 1085 | - kubetest2 is feature-complete and stable 1086 | - Automated secret syncing for ProwJob secrets 1087 | - Developed GitHub App support for Prow 1088 | - Improved job config validation (strict field checks, build cluster existence) 1089 | - Improved in-repo Prow config support and performance 1090 | - Added support for Prow config file sharding to better manage approval permissions 1091 | - Developed new monitoring stack solution that doesn’t rely on Grafana (GKE 1092 | Workload Metrics + Cloud Monitoring) 1093 | - Added OSS-Fuzz integration 1094 | - Developed private repo multitenancy (multiple private front ends) 1095 | - Completed the removal of Bazel from kubernetes/kubernetes 1096 | - Removed most of Bazel from the kubernetes/test-infra repo 1097 | 1098 | 1099 | Kubernetes Enhancements 1100 | - Stable 1101 | - [KEP 2420 - Reducing Kubernetes Build Maintenance](https://github.com/kubernetes/enhancements/issues/2420) - 1.23 1102 | - Beta 1103 | - [KEP 2539 - Continuously Deploy K8s Prow](https://github.com/kubernetes/enhancements/issues/2539) - 1.21 1104 | - [KEP 2464 - kubetest2 CI migration](https://github.com/kubernetes/enhancements/issues/2464) - 1.23 1105 | 1106 | 1107 | #### [SIG Windows](https://git.k8s.io/community/sig-windows/annual-report-2021.md#current-initiatives) 1108 | 1109 | SIG Windows has made progress on a number of lower level features. They 1110 | implemented [`hostProcess`] container support (now in beta) which has now been 1111 | adopted by a number of other OSS Projects. Other achievements include better 1112 | node-level logging, improving the Windows Kubernetes developer experience with 1113 | [sig-windows-dev-tools], defining a set of operational readiness standards, 1114 | and removed Dockershim from Windows nodes. 1115 | 1116 | 1117 | Kubernetes Enhancements 1118 | - Stable 1119 | - [1122 - windows-csi-support](https://git.k8s.io/enhancements/keps/sig-windows/1122-windows-csi-supportd) - v1.22 1120 | - Beta 1121 | - [1981 - Windows Privileged Container Support](https://git.k8s.io/enhancements/keps/sig-windows/1981-windows-privileged-container-support) - v1.23 1122 | - [2802 -Identify Windows pods at API admission level authoritatively](https://git.k8s.io/enhancements/keps/sig-windows/2802-identify-windows-pods-apiserver-admission) - v1.23 1123 | - Alpha 1124 | - [1981 - Windows Privileged Container Support](https://git.k8s.io/enhancements/keps/sig-windows/1981-windows-privileged-container-support) - v1.22 1125 | - [2802 -Identify Windows pods at API admission level authoritatively](https://git.k8s.io/enhancements/keps/sig-windows/2802-identify-windows-pods-apiserver-admission) - v1.23 1126 | - Pre-alpha (Targeting 1.24) 1127 | - [2578 - Windows Operational Readiness](https://git.k8s.io/enhancements/keps/sig-windows/2578-windows-conformance/) 1128 | 1129 | [`hostProcess`]: https://git.k8s.io/enhancements/keps/sig-windows/1981-windows-privileged-container-support/ 1130 | [sig-windows-dev-tools]: https://github.com/kubernetes-sigs/sig-windows-dev-tools 1131 | 1132 | 1133 | #### [WG API Expression](https://git.k8s.io/community/wg-api-expression/annual-report-2021.md#current-initiatives) 1134 | 1135 | - Server-side Apply went GA in 1.22 1136 | - Started new initiatives around OpenAPI v3 1137 | - Enum for built-in types in OpenAPI 1138 | - Server-side field validation 1139 | 1140 | 1141 | #### [WG Data Protection](https://git.k8s.io/community/wg-data-protection/annual-report-2021.md#current-initiatives) 1142 | 1143 | The Data Protection WG identified the missing building blocks for supporting 1144 | data protection in Kubernetes and published in their [whitepaper]. Features 1145 | such as Volume Backups, Change Block Tracking, Volume Populator, Volume Group 1146 | Group Snapshot, and Backup Repositories are owned by SIG Storage. Features such 1147 | as Quiesce and Unquiesce Hooks are owned by SIG Node, with SIG Storage and SIG 1148 | Apps participating. Features such as Application Snapshots and Backups are 1149 | owned by SIG Apps, with SIG Storage participating. We will continue to work on 1150 | them until all the missing pieces are available in Kubernetes. 1151 | 1152 | The following items have been under development and have not yet been captured 1153 | in a KEP: 1154 | - [Change Block Tracking (CBT) API design](https://docs.google.com/document/d/15tLCV3csvjHbKb16DVk-mfUmFry_Rlwo-2uG6KNGsfw/edit#heading=h.1olwavha9frv) 1155 | - [Volume Replication](https://docs.google.com/document/d/15tLCV3csvjHbKb16DVk-mfUmFry_Rlwo-2uG6KNGsfw/edit#heading=h.pah3yke9ddug) 1156 | - [Data Protection for Managed Services Presentation](https://docs.google.com/presentation/d/1IM6d0w3CDdHv1dLaFNXEcxy5fuDTr9LERAdMVkZiK9s/edit#slide=id.p) 1157 | - [Snapshot policy (immutable snapshot](https://docs.google.com/document/d/15tLCV3csvjHbKb16DVk-mfUmFry_Rlwo-2uG6KNGsfw/edit#heading=h.gb8m7t8jro1v) 1158 | - [Volume Snapshot GA phases](https://docs.google.com/document/d/15tLCV3csvjHbKb16DVk-mfUmFry_Rlwo-2uG6KNGsfw/edit#heading=h.w8v8tpkuw8ac) 1159 | - [Kubernetes Data Protection with Velero](https://docs.google.com/document/d/15tLCV3csvjHbKb16DVk-mfUmFry_Rlwo-2uG6KNGsfw/edit#heading=h.iekhl8nl58lo) 1160 | 1161 | 1162 | 1163 | [whitepaper]: https://github.com/kubernetes/community/blob/master/wg-data-protection/data-protection-workflows-white-paper.md#what-are-the-missing-building-blocks-in-kubernetes 1164 | 1165 | 1166 | #### [WG IoT/Edge](https://git.k8s.io/community/wg-iot-edge/annual-report-2021.md#current-initiatives) 1167 | 1168 | The IoT/Edge Working Group is moving to the CNCF ecosystem. 1169 | 1170 | #### [WG Structured Logging](https://git.k8s.io/community/wg-structured-logging/annual-report-2021.md#current-initiatives) 1171 | 1172 | In 2021 The structured logging WG migrated kubelet, kube-scheduler, kube-proxy 1173 | to the new standard format. 1174 | 1175 | Kubernetes Enhancements 1176 | Beta: 1177 | - [Structured Logging](https://git.k8s.io/enhancements/keps/sig-instrumentation/1602-structured-logging) v1.23 1178 | Alpha: 1179 | - [Deprecation of klog specific flags](https://git.k8s.io/enhancements/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components) v1.23 1180 | 1181 | 1182 | 1183 | 1184 | 1185 | 1186 | 1187 | 1188 | 1189 | 1190 | [kep]: http://git.k8s.io/enhancements/#is-my-thing-an-enhancement 1191 | --------------------------------------------------------------------------------