├── .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 |
--------------------------------------------------------------------------------