diff options
| author | Josh Berkus <jberkus@redhat.com> | 2020-10-30 16:20:38 -0700 |
|---|---|---|
| committer | Josh Berkus <jberkus@redhat.com> | 2020-10-30 16:20:38 -0700 |
| commit | 18b054443ac28fdc0aad283f0dda9f0ae650be57 (patch) | |
| tree | 7a10ff909556079bfbc995805e6d4d98c27f1d67 | |
| parent | 3de98468f630eead8d32ac70a72baa13d0a9ee66 (diff) | |
| parent | 29f6c612eff7f7f125425f10d59a9f1ebbc8c11a (diff) | |
Merge branch 'master' of https://github.com/kubernetes/community into sc-election-2020
168 files changed, 2225 insertions, 794 deletions
diff --git a/.github/ISSUE_TEMPLATE/support.md b/.github/ISSUE_TEMPLATE/support.md index cd18c41d..388372ec 100644 --- a/.github/ISSUE_TEMPLATE/support.md +++ b/.github/ISSUE_TEMPLATE/support.md @@ -1,7 +1,7 @@ --- name: Support Request about: Support request or question relating to Kubernetes -labels: triage/support +labels: kind/support --- @@ -1,6 +1,6 @@ # The Contributor License Agreement -The [Cloud Native Computing Foundation](https://www.cncf.io/community) (CNCF) defines +The [Cloud Native Computing Foundation](https://www.cncf.io) (CNCF) defines the legal status of the contributed code in two different types of _Contributor License Agreements_ (CLAs), [individual contributors](https://github.com/cncf/cla/blob/master/individual-cla.pdf) and [corporations](https://github.com/cncf/cla/blob/master/corporate-cla.pdf). diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index 7a365cb0..bc6b1d46 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -77,7 +77,7 @@ aliases: - tabbysable sig-service-catalog-leads: - jberkhahn - - mszostok + - jhvhs sig-storage-leads: - jsafrane - msau42 @@ -116,11 +116,6 @@ aliases: - bartsmykla - dims - spiffxp - wg-lts-leads: - - imkin - - quinton-hoole - - tpepper - - youngnick wg-multitenancy-leads: - srampal - tashimi @@ -132,11 +127,10 @@ aliases: wg-policy-leads: - ericavonb - hannibalhuang - wg-security-audit-leads: - - aasmall - - cji - - jaybeale - - joelsmith + wg-reliability-leads: + - deads2k + - stevekuznetsov + - wojtek-t ug-big-data-leads: - erikerlandson - foxish @@ -164,10 +158,10 @@ aliases: - cblecker - derekwaynecarr - dims - - lachie83 + - liggitt + - mrbobbytables - nikhita - parispittman - - spiffxp ## BEGIN CUSTOM CONTENT provider-aws: - d-nishi diff --git a/incubator.md b/archive/incubator.md index 750ff0de..750ff0de 100644 --- a/incubator.md +++ b/archive/incubator.md diff --git a/wg-lts/README.md b/archive/wg-lts/README.md index 80b1c68d..80b1c68d 100644 --- a/wg-lts/README.md +++ b/archive/wg-lts/README.md diff --git a/wg-lts/charter.md b/archive/wg-lts/charter.md index d2018723..d2018723 100644 --- a/wg-lts/charter.md +++ b/archive/wg-lts/charter.md diff --git a/wg-security-audit/OWNERS b/archive/wg-security-audit/OWNERS index bd60c850..bd60c850 100644 --- a/wg-security-audit/OWNERS +++ b/archive/wg-security-audit/OWNERS diff --git a/wg-security-audit/README.md b/archive/wg-security-audit/README.md index fd6af780..fd6af780 100644 --- a/wg-security-audit/README.md +++ b/archive/wg-security-audit/README.md diff --git a/archive/wg-security-audit/letter-to-steering.md b/archive/wg-security-audit/letter-to-steering.md new file mode 100644 index 00000000..cb9b123a --- /dev/null +++ b/archive/wg-security-audit/letter-to-steering.md @@ -0,0 +1,26 @@ +Dear Steering Committee: + + +We propose the creation of a new Kubernetes SIG: SIG Security. + + +In managing the Third-Party Security Audits, the Working Group realized that its efforts didn’t end with the completion of each audit. The audit’s process and findings demonstrated the need to advocate for stronger security defaults, facilitate outreach for both developers and end-users, and drive structural security improvements. + +At KubeCon San Diego, we presented the results of the audit with a call to action for the broader community to take the findings and drive them into a better, more secure, Kubernetes. We were met with far more support than we could reasonably channel in our current form. + +We worked with members of SIG Auth, the Product Security Committee, the SIG Docs Security subproject, and the CIS Benchmark maintainers to identify underserved aspects of their domains. To express the scope and responsibilities of the new SIG, we all collaborated on a draft charter for your consideration. + +We hope that the entire group behind this draft charter can serve the Kubernetes project via this SIG. + +Thank you. + +Signed, + + +Aaron, Craig, Jay, Joel, Tim, Ian, Micah, Seth, Peter, Rory, Liz + + + +You can find our proposed charter in this pull request: + +https://github.com/kubernetes/community/pull/4962/commits/535d9eab9c37826edd39d79f70e94f51330bb15c diff --git a/committee-code-of-conduct/governance/onboarding-offboarding.md b/committee-code-of-conduct/governance/onboarding-offboarding.md new file mode 100644 index 00000000..aef3e566 --- /dev/null +++ b/committee-code-of-conduct/governance/onboarding-offboarding.md @@ -0,0 +1,43 @@ +# Onboarding and offboarding new Code of Conduct Committee members + +Different actions on this list must be carried out by different members: + +- **Outgoing members:** members who are ending their term +- **Incoming members:** members beginning their term +- **Carryover members:** members mid-way through their term + +## Permissions + +### Slack + +**Who executes:** When offboarding, outgoing members must remove themselves from Slack channels. When onboarding, carryover members must add incoming members. + +- [ ] Code of conduct committee Slack channel on `kubernetes.slack.com` +- [ ] Code of conduct sync Slack channel on `cloud-native.slack.com` + +### Kubernetes/community permissions and google permissions + +**Who executes:** Carryover members should ensure that outgoing members are removed and incoming members are invited. + +- [ ] Update `kubernetes/community` [`sigs.yaml`](https://github.com/kubernetes/community/blob/master/sigs.yaml) +- [ ] Update `kubernetes/k8s.io` [`groups.yaml`](https://github.com/kubernetes/k8s.io/blob/master/groups/groups.yaml) + + > **Note:** This file controls access to the mailing list and Google Drive! If you do not update this file, adding people manually (via the UIs) continually revert until this file is updated. + + - [ ] `conduct@kubernetes.io` mailing list + - [ ] Google drive + +## Communications + +**Who executes:** Anyone but outgoing members! + +- [ ] Give an update at the monthly Community meeting +- [ ] Send an email to the `kubernetes/dev` mailing list + +## Knowledge transfer and group procedures + +**Who executes:** Carryover members should lead + +- [ ] Introduce new members to relevant contacts +- [ ] Re-evaluate weekly meeting time +- [ ] Schedule training and knowledge management sessions for new members
\ No newline at end of file diff --git a/committee-product-security/README.md b/committee-product-security/README.md index e7306886..3fc2dda5 100644 --- a/committee-product-security/README.md +++ b/committee-product-security/README.md @@ -19,7 +19,7 @@ The Kubernetes Product Security Committee is the body that is responsible for re * Luke Hinds (**[@lukehinds](https://github.com/lukehinds)**), Red Hat * Micah Hausler (**[@micahhausler](https://github.com/micahhausler)**), Amazon * Swamy Shivaganga Nagaraju (**[@swamymsft](https://github.com/swamymsft)**), Microsoft -* Tim Allclair (**[@tallclair](https://github.com/tallclair)**), Google +* Tim Allclair (**[@tallclair](https://github.com/tallclair)**), Apple ## Contact - Private Mailing List: security@kubernetes.io diff --git a/committee-steering/README.md b/committee-steering/README.md index 27a4688c..bc994b16 100644 --- a/committee-steering/README.md +++ b/committee-steering/README.md @@ -13,7 +13,9 @@ The Kubernetes Steering Committee is the governing body of the Kubernetes projec The [charter](https://git.k8s.io/steering/charter.md) defines the scope and governance of the Steering Committee. ## Meetings -* Public Steering Committee Meeting: [Mondays at 11:00 PT (Pacific Time)](https://bit.ly/k8s-steering-wd) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=11:00&tz=PT%20%28Pacific%20Time%29). +* Private Steering Committee Meeting: [third Mondays at 9:30 PT (Pacific Time)](https://bit.ly/k8s-steering-wd) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9:30&tz=PT%20%28Pacific%20Time%29). + * [Meeting recordings](https://www.youtube.com/watch?v=YAzgJRQxsdc&list=PL69nYSiGNLP1yP1B_nd9-drjoxp0Q14qM). +* Public Steering Committee Meeting: [first Mondays at 9:30 PT (Pacific Time)](https://bit.ly/k8s-steering-wd) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9:30&tz=PT%20%28Pacific%20Time%29). * [Meeting recordings](https://www.youtube.com/watch?v=YAzgJRQxsdc&list=PL69nYSiGNLP1yP1B_nd9-drjoxp0Q14qM). ## Members @@ -21,10 +23,10 @@ The [charter](https://git.k8s.io/steering/charter.md) defines the scope and gove * Christoph Blecker (**[@cblecker](https://github.com/cblecker)**), Red Hat * Derek Carr (**[@derekwaynecarr](https://github.com/derekwaynecarr)**), Red Hat * Davanum Srinivas (**[@dims](https://github.com/dims)**), VMware -* Lachlan Evenson (**[@lachie83](https://github.com/lachie83)**), Microsoft +* Jordan Liggitt (**[@liggitt](https://github.com/liggitt)**), Google +* Bob Killen (**[@mrbobbytables](https://github.com/mrbobbytables)**), Google * Nikhita Raghunath (**[@nikhita](https://github.com/nikhita)**), VMware * Paris Pittman (**[@parispittman](https://github.com/parispittman)**), Apple -* Aaron Crickenberger (**[@spiffxp](https://github.com/spiffxp)**), Google ## Contact - Slack: [#steering-committee](https://kubernetes.slack.com/messages/steering-committee) diff --git a/committee-steering/governance/sig-governance.md b/committee-steering/governance/sig-governance.md index 95eaff36..2d8fc979 100644 --- a/committee-steering/governance/sig-governance.md +++ b/committee-steering/governance/sig-governance.md @@ -127,6 +127,7 @@ curation from other SIG participants - Resolve X-Subproject technical issues and decisions - Number: 2-3 - Membership tracked in [sigs.yaml] + - Role description in [technical-lead.md] ### Subproject Owner @@ -244,3 +245,4 @@ Issues impacting multiple subprojects in the SIG should be resolved by either: [dashboard]: https://testgrid.k8s.io/ [monthly community meeting]: /events/community-meeting.md [inclusive speaker training course]: https://training.linuxfoundation.org/training/inclusive-speaker-orientation/ +[technical-lead.md]: /contributors/chairs-and-techleads/technical-lead.md diff --git a/communication/mailing-list-guidelines.md b/communication/mailing-list-guidelines.md index 31cd2e70..c2f739e3 100644 --- a/communication/mailing-list-guidelines.md +++ b/communication/mailing-list-guidelines.md @@ -1,19 +1,35 @@ # Mailing list guidelines -The Kubernetes Mailing list or Google Groups functions as the primary means of +The Kubernetes mailing list or Google Groups functions as the primary means of asynchronous communication for the project's -[Special Interest Groups (SIG)][sig-list] and [Working Groups (WG)][sig-list]. +[Special Interest Groups (SIG)][sig-list], [Working Groups (WG)][sig-list], and +large subprojects. -### ATTENTION: SIG/WG Mailing list owners +### ATTENTION: SIG/WG/Subproject Mailing list owners -If you are currently a moderator of a SIG or WG Mailing List. See the new policy -requirements here: +If you are currently a moderator of a SIG, WG, or subproject mailing list, +see the new policy requirements here: - [Mailing list annual review](#annual-permissions-review) - [Mailing list moderation queue](#new-user-posting-queue) - [Creating moderation queue](#create-moderation-queue) - +## Table of Contents +- [Code of conduct](#code-of-conduct) +- [Admins](#admins) + - [Mailing list owners](#mailing-list-owners) +- [Moderation](#moderation) + - [Moderator expectations and guidelines](#moderator-expectations-and-guidelines) + - [New user posting queue](#new-user-posting-queue) + - [Annual permissions review](#annual-permissions-review) +- [Mailing list creation](#mailing-list-creation) + - [Prerequisites for creating a mailing list](#prerequisites-for-creating-a-mailing-list) + - [Create the leads and members mailing lists](#create-the-leads-and-members-mailing-lists) +- [Set up shared calendars and meeting with a mailing list](#set-up-shared-calendars-and-meeting-with-a-mailing-list) + - [Prerequisites for sharing a calendar and meeting notes](#prerequisites-for-sharing-a-calendar-and-meeting-notes) + - [Sharing the calendar with the Google Group](#sharing-the-calendar-with-the-google-group) + - [Sharing the meeting notes with the Google Group](#sharing-the-meeting-notes-with-the-google-group) +- [Archive a mailing list](#archive-a-mailing-list) ## Code of conduct The Kubernetes project adheres to the community [Code of Conduct] throughout all @@ -23,14 +39,14 @@ platforms and includes all communication mediums. Check the [centralized list of administrators][admins] for contact information. -To connect: Reach out to one of the listed moderators,[Mailing list owners], -the [sig contributor experience Mailing list] or the `#sig-contribex` slack +To connect: Reach out to one of the listed moderators, [mailing list owners], +the [SIG Contributor Experience mailing list] or the `#sig-contribex` slack channel. ### Mailing list owners -Mailing list owners should include the Chairs for your [SIG or WG][sig-list] and -the below contacts: +Mailing list owners should include the Chairs for your [SIG or WG][sig-list], +or the leads for your subproject, and the below contacts: - contributors@kubernetes.io @@ -38,20 +54,21 @@ the below contacts: ## Moderation -SIG and Working Group Mailing lists should have the [Mailing list owners] as -co-owners to the list so that administrative functions can be managed centrally -across the project. +SIG, Working Group, and subproject mailing lists should have the +[mailing list owners] as co-owners to the list so that administrative functions +can be managed centrally across the project. -Moderation of the SIG/WG lists is up to that individual SIG/WG. The admins -are there to help facilitate leadership changes, or various other administrative -functions. +Moderation of the SIG/WG/subproject lists is up to that individual +SIG/WG/subproject. The admins are there to help facilitate leadership changes, +or various other administrative functions. Users who are violating the [Code of Conduct] or other negative activities (like spamming) should be moderated. - [Lock the thread immediately] so that people cannot reply to the thread. - [Delete the post]. - In some cases you might need to ban a user from the group, follow - [these instructions] on how stop a member from being able to post to the group. + [these instructions] on how stop a member from being able to post to the + group. For more technical help on how to use Google Groups, check the [Groups Help] page. @@ -64,50 +81,60 @@ Moderators should adhere to the general Kubernetes project #### New user posting queue -New members who post to the Mailing list will automatically have their messages +New members who post to the mailing list will automatically have their messages put in the [moderation queue]. Moderators of the list will receive a notification of their message and should process them accordingly. #### Annual permissions review -SIG and WG Moderators must establish an annual review of their Mailing lists -to ensure their Moderator list is current and includes [Mailing List owners]. -Many of the SIG and WG Mailing lists pre-date current communication policy and -an annual review ensures ownership is up to date. +SIG, WG, and subproject Moderators must establish an annual review of their +mailing lists to ensure their Moderator list is current and includes +[mailing list owners]. Many of the SIG and WG mailing lists pre-date current +communication policy and an annual review ensures ownership is up to date. This review does not need to occur at a specific recurring date and can be -combined with other actions such as SIG/WG leadership changes or sub-project -additions. +combined with other actions such as SIG/WG/subproject leadership changes or +sub-project additions. --- ## Mailing list creation -All SIGs and WGs need two discussion groups: one for leads/chairs, and one for members. +All SIGs and WGs require two discussion groups: one for leads/chairs, and one +for members. Subprojects that opt to have a mailing list only require one for +members. -### Prerequisites +### Prerequisites for creating a mailing list -- An email account that can create google groups and add members external to your organization to a google group mailing list. **This might not be possible with your employer's email account**. You might need to use a personal email account. -- At least 3 mailing list owners (leads), in addition to contributors@kubernetes.io -- Familiarity with the [moderation guidelines] for the project and [moderation queue]s. Chairs should be cognizant that a new group will require +- An email account that can create Google Groups and add members external to +your organization to a Google Group mailing list. **This might not be possible +with your employer's email account**. You might need to use a personal email +account. +- At least 3 mailing list owners (leads), in addition to +contributors@kubernetes.io +- Familiarity with the [moderation guidelines] for the project and +[moderation queue]s. Chairs should be cognizant that a new group will require an initial time investment moderation-wise as the group establishes itself. ### Create the leads and members mailing lists -> **Note:** You will need follow these steps twice! Once for the leads mailing list, and again for the members mailing list. +> **Note:** You will need follow these steps twice! Once for the leads mailing +list, and again for the members mailing list. -1. Navigate to https://groups.google.com/forum/#!creategroup and fill out the **Enter group info** form as follows: +1. Navigate to https://groups.google.com/forum/#!creategroup and fill out the +**Enter group info** form as follows: | Field | Leads ML value | Members ML value | | --- | --- | --- | - | **Group name** | `kubernetes-sig-<foo>-leads` | `kubernetes-sig-<foo>` | + | **Group name** | SIGs: `kubernetes-sig-<foo>-leads`<br>WGs: `kubernetes-wg-<foo>-leads` | SIGs: `kubernetes-sig-<foo>`<br>WGs: `kubernetes-wg-<foo>`<br>Subprojects: `kubernetes-<foo>` | | **Group email address** | Leave as-is | Leave as-is - | **Group description** | Leads ML for Kubernetes SIG Foo | Members ML for Kubernetes SIG Foo | + | **Group description** | Leads ML for Kubernetes [SIG/WG] Foo | Members ML for Kubernetes [SIG/WG/subproject] Foo | - Click **Next**. + Click **Next**. + 2. Fill out the the **Choose privacy settings** with these options: | Field | Leads ML value | Members ML value | @@ -124,13 +151,16 @@ an initial time investment moderation-wise as the group establishes itself. | Field | Leads ML value | Members ML value | | --- | --- | --- | - | **Group owners** | All SIG/WG leads and contributors@kubernetes.io | All SIG/WG leads and contributors@kubernetes.io | + | **Group owners** | All SIG/WG leads and contributors@kubernetes.io | All SIG/WG/subproject leads and contributors@kubernetes.io | - > **Note:** You can add new owners to a mailing list at any time in the **People > Members** screen. + > **Note:** You can add new owners to a mailing list at any time in the + **People > Members** screen. Leave all other fields as-is. Click **Next.** -4. Once the group is created, navigate to your group in the Google Groups UI and go to **Group settings** to continue setting up permissions. Set the following settings: +4. Once the group is created, navigate to your group in the Google Groups UI and + go to **Group settings** to continue setting up permissions. Set the following + settings: **Member Privacy** @@ -154,7 +184,7 @@ an initial time investment moderation-wise as the group establishes itself. | Field | Leads ML value | Members ML value | | --- | --- | --- | - | **Subject prefix** | `[k8s-sig-<foo>-leads]` | `[k8s-sig-<foo>]` | + | **Subject prefix** | SIGs: `[k8s-sig-<foo>-leads]`<br>WGs: `[k8s-wg-<foo>-leads]` | SIGs: `[k8s-sig-<foo>]`<br>WGs: `[k8s-wg-<foo>]`<br>Subprojects: `[k8s-<foo>]` | | **Email footer** | Include the standard Groups footer | Include the standard Groups footer | | **Group email language** | English (or your group's default language) | English (or your group's default language) | @@ -166,42 +196,51 @@ an initial time investment moderation-wise as the group establishes itself. | **Who can adjust roles** | Group managers | Group managers 5. Click **Save changes**. + Once your mailing list is created, it should also be added to the [sigs.yaml] + file. For subprojects, it should be added like: + ```yaml + - name: Foo + contact: + mailing_list: [link to Google Group] + ``` - - - - ## Set up shared calendars and meeting with a mailing list Once you've set up your SIG/WG mailing list, you'll need to: - Share a calendar with meeting invites on it with the mailing list - Share a meeting notes google doc with the mailing list -### Prerequisites +### Prerequisites for sharing a calendar and meeting notes -- A member's google group. +- A member's Google Group. - A shared calendar. - > **Note:** Like with mailing lists, your organization's permissions might not let you share calendars with the correct permissions. You might need to use a personal email address. + > **Note:** Like with mailing lists, your organization's permissions might not + let you share calendars with the correct permissions. You might need to use a + personal email address. -### Sharing the calendar with the google group +### Sharing the calendar with the Google Group You must share the meeting calendar with the following people: - All leads (individually) -- The kubernetes-sig-foo-leads mailing list +- The kubernetes-[sig-/wg-]foo-leads mailing list - contributors@kubernetes.io -- The kubernetes-sig-foo (members) mailing list +- The kubernetes-[sig-/wg-]foo (members) mailing list -1. In Google Calendar, click on the calendar's **...** menu and select **Settings and sharing**. +1. In Google Calendar, click on the calendar's **...** menu and select +**Settings and sharing**. 2. In **Access permissions**, check **Make available to public**. 3. Under **Share with specific people, do the following:** - - For each lead, contributors@kubernetes.io, and kubernetes-sig-foo-leads@googlegroups.com: + - For each lead, contributors@kubernetes.io, and + kubernetes-sig-foo-leads@googlegroups.com: 1. Add their email 2. Give them the permission **Make changes and manage sharing**. - - For kubernetes-sig-foo@googlegroups.com, add them and give them the permission **See all event details**. + - For kubernetes-sig-foo@googlegroups.com, add them and give them the + permission **See all event details**. -> **Note:** You need to add the member's mailing list as a guest to any meeting invites on the shared calendar for an invite to be sent to members of the group. +> **Note:** You need to add the member's mailing list as a guest to any meeting +invites on the shared calendar for an invite to be sent to members of the group. -## Sharing the meeting notes with the google group +### Sharing the meeting notes with the Google Group - Create and share your _"meeting notes"_ Google doc with the following permissions settings: @@ -212,7 +251,7 @@ You must share the meeting calendar with the following people: document should be copied over to an account without the restriction and include the owner reference at the top of the document. -### Archive a mailing list +## Archive a mailing list To archive a mailing list, use the below procedure. @@ -249,4 +288,5 @@ To archive a mailing list, use the below procedure. [lock the thread immediately]: https://support.google.com/groups/answer/2466386?hl=en# [delete the post]: https://support.google.com/groups/answer/1046523?hl=en [these instructions]: https://support.google.com/groups/answer/2646833?hl=en&ref_topic=2458761# -[groups help]: https://support.google.com/groups/answer/2466386?hl=en&ref_topic=2458761
\ No newline at end of file +[groups help]: https://support.google.com/groups/answer/2466386?hl=en&ref_topic=2458761 +[sigs.yaml]: /sigs.yaml diff --git a/communication/slack-config/channels.yaml b/communication/slack-config/channels.yaml index efd16c7d..7239e9b5 100644 --- a/communication/slack-config/channels.yaml +++ b/communication/slack-config/channels.yaml @@ -3,6 +3,7 @@ channels: - name: airflow-operator + - name: akri - name: aks-engine-users - name: aks-engine-dev id: CU1CXUHN0 @@ -43,6 +44,8 @@ channels: - name: cluster-api-digitalocean - name: cluster-api-docker archived: true + - name: cluster-api-gcp + - name: cluster-api-nested - name: cluster-api-openstack - name: cluster-api-packet - name: cluster-api-vsphere @@ -57,6 +60,7 @@ channels: - name: crash-diagnostics - name: crd-installation - name: crio + - name: crossplane - name: csi-secrets-store #this channel is for secrets-store-csi-driver which is a subproject of sig-auth - name: de-events - name: de-users @@ -71,6 +75,7 @@ channels: - name: eks - name: elastickube - name: elk-charts + archived: true - name: emea-dev - name: emea-users - name: es-users @@ -98,6 +103,7 @@ channels: - name: gke - name: gloo - name: grafana-operator + - name: haproxy-ingress - name: helm-chart-testing - name: helm-deprecated archived: true @@ -128,7 +134,8 @@ channels: - name: jp-users - name: jp-users-novice - name: jsonnet - - name: k14s + - name: carvel + id: CH8KCCKA5 - name: kalm - name: kaniko - name: k8s-dual-stack @@ -159,7 +166,7 @@ channels: - name: krane - name: krew - name: krex - - name: krustlet + - name: krustlet - name: kube-aws - name: kube-deploy archived: true @@ -261,6 +268,7 @@ channels: - name: node-problem-detector - name: norw-users - name: octant + - name: odo - name: office-hours - name: okteto - name: olm-dev @@ -278,6 +286,7 @@ channels: - name: outreachy-apps id: CDH610735 - name: pharmer + - name: pinniped - name: pl-users - name: pr-reviews - name: prometheus @@ -286,6 +295,7 @@ channels: - name: prow - name: prow-alerts - name: pt_br-users + - name: purelb-users - name: raksh - name: rancher - name: random @@ -298,7 +308,8 @@ channels: - name: schemahero - name: se-users - name: sealed-secrets - - name: seccomp-operator + - name: security-profiles-operator + id: C013FQNB0A2 - name: service-binding-operator - name: shippable - name: shipper @@ -328,6 +339,8 @@ channels: - name: sig-scalability - name: sig-scheduling - name: sig-security + - name: sig-security-docs + - name: sig-security-tooling - name: sig-service-catalog - name: sig-testing - name: sig-ui @@ -380,6 +393,7 @@ channels: - name: wg-iot-edge - name: wg-k8s-infra - name: wg-lts + archived: true - name: wg-machine-learning archived: true - name: wg-multitenancy @@ -387,9 +401,11 @@ channels: - name: wg-onprem archived: true - name: wg-policy + - name: wg-reliability - name: wg-resource-mgmt archived: true - name: wg-security-audit + archived: true - name: wg-virtual-kubelet archived: true - name: windows-containerd diff --git a/communication/slack-config/sig-docs/docs-channels.yaml b/communication/slack-config/sig-docs/docs-channels.yaml index 34842a77..94d28439 100755 --- a/communication/slack-config/sig-docs/docs-channels.yaml +++ b/communication/slack-config/sig-docs/docs-channels.yaml @@ -1,5 +1,7 @@ channels: - name: kubernetes-docs-ar + - name: kubernetes-docs-bn + id: CQ0TD298C - name: kubernetes-docs-de - name: kubernetes-docs-es - name: kubernetes-docs-fa @@ -14,7 +16,6 @@ channels: - name: kubernetes-docs-ru - name: kubernetes-docs-vi - name: kubernetes-docs-zh - - name: kubernetes-docs-be - name: kubernetes-docs-pl - name: kubernetes-docs-uk - name: sig-docs diff --git a/communication/slack-config/sig-network/config.yaml b/communication/slack-config/sig-network/config.yaml index c3e410e8..756d7a0d 100644 --- a/communication/slack-config/sig-network/config.yaml +++ b/communication/slack-config/sig-network/config.yaml @@ -1,2 +1,3 @@ channels: - name: sig-network-service-apis + - name: sig-network-policy-api diff --git a/communication/slack-config/sig-release/usergroups.yaml b/communication/slack-config/sig-release/usergroups.yaml index 885ddf07..aadc3b00 100644 --- a/communication/slack-config/sig-release/usergroups.yaml +++ b/communication/slack-config/sig-release/usergroups.yaml @@ -21,6 +21,7 @@ usergroups: - idealhack # Release Manager - jimangel # Release Manager Associate - justaugustus # subproject owner / Release Manager + - markyjackson-taulia # Release Manager Associate - mkorbi # Release Manager Associate - onlydole # Release Manager Associate - puerco # Release Manager Associate diff --git a/communication/slack-config/usergroups.yaml b/communication/slack-config/usergroups.yaml index e675abdf..874af550 100644 --- a/communication/slack-config/usergroups.yaml +++ b/communication/slack-config/usergroups.yaml @@ -52,6 +52,8 @@ usergroups: - ashish-amarnath - carlisia - nrb + - stephbman + - zubron - name: youtube-admins long_name: YouTube Admins @@ -94,3 +96,54 @@ usergroups: members: - phenixblue - AlexB138 + + - name: skaffold-devs + long_name: Skaffold Development Team + description: Active developers on #skaffold + channels: + - skaffold + members: + - briandealwis + - gsquared94 + - ilya-zuyev + - IsaacPD + - MarlonGamez + - nkubala + - tejal29 + - tstromberg + + - name: operator-sdk-maintainers + long_name: Operator SDK maintainers + description: Active developers of the Operator SDK + channels: + - kubernetes-operators + - operator-sdk-dev + - kubebuilder + members: + - estroz + - joelanford + - jmccormick2001 + - jmrodri + - asmacdo + - marc-obrien + - theishshah + - camilamacedo86 + - fabianvf + - varshaprasad96 + - rashmigottipati + - jberkhahn + + - name: odo-devs + long_name: Odo Development Team + description: Active developers of odo on #odo + channels: + - odo + members: + - adisky + - cdrage + - dharmit + - girishramnani + - mohammedzee1000 + - mik-dass + - prietyc123 + - kadel diff --git a/communication/slack-config/users.yaml b/communication/slack-config/users.yaml index b2c97f0c..0158a75e 100644 --- a/communication/slack-config/users.yaml +++ b/communication/slack-config/users.yaml @@ -1,41 +1,63 @@ # This file contains an alphabetically sorted mapping of lowercase GitHub # usernames to Kubernetes Slack user IDs. users: + adisky: U9YRVLTEH alejandrox1: U6AS37R50 aleksandra-malinowska: U357LUPHS AlexB138: U3JA3MDGV alisondy: U9CBCBLCV aravindputrevu: U1G27SDU6 ashish-amarnath: U65JLLS0J + asmacdo: UNVH7RY9J + briandealwis: UAZKM38JV bubblemelon: U7K9C643G calebamiles: U1ZDD4CUR + camilamacedo86: UJDM393EH carlisia: UBDSF40G2 castrojo: U1W1Q6PRQ + cdrage: U2TU9NPH9 chrisshort: U2YGXSD9B cpanato: U8DFY4TTK + dharmit: U0APPPEKE dougm: U8GG20UE9 + estroz: UKSEANEC9 + fabianvf: UAJ3UH29F feiskyer: U0ASA4398 gianarb: U0FSCELCR + girishramnani: U9M4K75EU + gsquared94: U0131C0PJBU hasheddan: ULLQEF30C hoegaarden: U7VA4RZS9 idealhack: U5NJ3DQM9 idvoretskyi: U0CBHE6GM + ilya-zuyev: U018UF2G42F + IsaacPD: U01B0C1R9NZ + jberkhahn: U7Q21LH2S jdumars: U0YJS6LHL jeefy: U5MCFK468 jeremyrickard: U72ESU398 jimangel: U4HSVFA5U + joelanford: U1R6NQD8W + jmccormick2001: UMPLV0G0H + jmrodri: U4KATPQ48 johnbelamaric: U246A1A0N jonasrosland: U0A4G34S2 justaugustus: U0E0E78AK + kadel: U0DE6E8JY kaslin: U5ENKU0AE katharine: UBTBNJ6GL LappleApple: U011C07244F listx: UFCU8S8P3 + marc-obrien: UL51BRL9Y markyjackson-taulia: U19TKJ64E + MarlonGamez: U016N1XK06R mbbroberg: U18JTHMDY + mik-dass: U3PFFE8CD mkorbi: UEBLUUA0P + mohammedzee1000: U3PFFE8CD mrbobbytables: U511ZSKHD nikhita: U2PQHGMLN + nkubala: UA90QL2BE nrb: U7S597E00 nzoueidi: UBU72MWP2 onlydole: U1DD4AZND @@ -43,18 +65,26 @@ users: paris: U5SB22BBQ pensu91: U44FHF81G phenixblue: UB4UVLEAK + prietyc123: U01D4MBLM52 puerco: ULGHLJ7TP rajula96reddy: U7K9EK1HC + rashmigottipati: U013T1DD3PW Rin Oliver: USF4LMDCN sammy: U8NJFL023 saschagrunert: U53SUDBD4 savitharaghunathan: UC8U2V3BM sethmccombs: U92LLUZ8A simplytunde: UAY1NBYHE + stephbman: U01283LTN93 Sujay Pillai: UBW3N1VGW sumitranr: UCQN13L9H TaoBeier: UCLDV6MN1 + tejal29: UACD7R316 + theishshah: U01891A4TRS tpepper: U6UB5V4TX + tstromberg: UCSL5SJ8Z Tunde: UAY977ENN + varshaprasad96: UK59YP2DA Verolop: U7NNE57PU + zubron: U7G0KNS86 xmudrii: U4Q2TNGVD diff --git a/communication/slack-guidelines.md b/communication/slack-guidelines.md index d35c2baa..872c5a22 100644 --- a/communication/slack-guidelines.md +++ b/communication/slack-guidelines.md @@ -3,7 +3,7 @@ Slack serves as the main communication platform for the Kubernetes community outside of the mailing lists. It’s important that conversations stays on topic in each channel, and that everyone abides by the [Code of Conduct][coc]. There -are over 50,000 members who should all expect to have a positive experience. +are over 100,000 members who should all expect to have a positive experience. Chat is searchable and public. Do not make comments that you would not say on a video recording or in another public space. Please be courteous to others. @@ -56,7 +56,6 @@ administrators have time. There is no explicit interval. [Slack Archive Download] - ### DM (Direct Message) Conversations Please do not engage in proprietary company specific conversations in the @@ -111,6 +110,39 @@ and describe the situation. --- +## Should you have a channel on the Kubernetes Slack? + +The primary purpose of the Kubernetes slack is for the coordination of the +Kubernentes project. However it is useful for developers and users to have a +strong ecosystem of channels for related things. Here are some guidelines for +determining if you should request a channel: + +- The channel MUST be Kubernetes related in some way. + - Related cloud native projects might be more appropriate on the [CNCF Slack]. +- The project MUST be open source. + - If you are open sourcing a project DO THAT FIRST, we cannot accommodate every + organization's open sourcing launch plans. + - The purpose of Slack is to organize an existing community, not seed new ones. + - Moderators look at contributor activity, adoption and community consensus + around a project, otherwise Slack becomes a vehicle for promotion instead of + promulgation. + - Establishing and maintaining a Slack channel should be an inflection point + in a project's adoption. + - Requesting a channel means maintaining it on behalf of the project filing + the issue, you will be expected to participate and foster a healthy + discourse. +- Channels around commercial services built on OSS projects are allowed. + - Users love the value of being able to collaborate around various services. + - Keep it classy, on the Kubernetes Slack we're all on the same team. +- The channel MUST be public. + - In order to ensure all channels adhere to our Code of Conduct, we heavily + restrict private channels. + - We do allow `#...-dev` channels for established projects where a single + project channel is too noisy, but please don't create both at the start. + - If you need private discussion areas for security-sensitive topics, a + project-specific Slack or the [CNCF Slack] may be a better fit. +- Ask in #slack-admins or file an issue if you're unsure, it never hurts to ask. + ## Requesting a Channel Channels and User Groups are managed by [Tempelis], a tool that enables external @@ -375,4 +407,5 @@ Report any actions taken to the other slack admins, and if needed the [Slack Config Documentation]: ./slack-config/README.md [default message pinned]: ./slack-config/template.yaml [Slack’s policy on inactivated accounts]: https://get.Slack.help/hc/en-us/articles/204475027-Deactivate-a-member-s-account -[moderation guidelines]: ./moderation.md
\ No newline at end of file +[moderation guidelines]: ./moderation.md +[CNCF Slack]: https://slack.cncf.io/ diff --git a/communication/youtube/youtube-guidelines.md b/communication/youtube/youtube-guidelines.md index cb513b6d..c1a8ac3d 100644 --- a/communication/youtube/youtube-guidelines.md +++ b/communication/youtube/youtube-guidelines.md @@ -189,6 +189,9 @@ Below are a good and incorrect example: * Incorrect description: `Data Protection WG Bi-Weekly Meeting for 2/26/2020` * Correct description: `Data Protection WG Bi-Weekly Meeting for 20200226` +A short video tutorial of the editing of descriptions and playlists can be found here: +* https://youtu.be/IbZ2wnvu_Zs + ### Thumbnails TODO - someone help us with better thumbnails to lay over the videos! diff --git a/contributors/chairs-and-techleads/README.md b/contributors/chairs-and-techleads/README.md index ee746417..0d60992d 100644 --- a/contributors/chairs-and-techleads/README.md +++ b/contributors/chairs-and-techleads/README.md @@ -1,35 +1,52 @@ -future home for chairs and tech leads resources and materials for onboarding, +Home for chairs and tech leads resources and materials for onboarding, offboarding, operations, and more. -files like zoom guidelines will still remain in their current home but included -in documentation here in the form of canonical links. ## Resources for community group leads: ### Operations -- In case you are not sure what to include in a meeting invite, here is a [Calendar template](https://github.com/kubernetes/community/blob/master/communication/calendar-guidelines.md#calendar-event-template). - -TODO -//add meeting agenda templates -governance -TODO -//add sig-gov.md, wg-gov,md, gov.md, steering folder in community, etc. +In case you are not sure what to include in a meeting invite, here is a [Calendar template](https://github.com/kubernetes/community/blob/master/communication/calendar-guidelines.md#calendar-event-template). + +TODO - [Meeting agenda templates] +TODO - Crosslink to sig-gov.md, wg-gov,md, gov.md, steering folder in community, etc. -[mentoring, succession planning, and staffing] +## Important Governance Documentation -[code of conduct] +[Code of conduct] - conduct@kubernetes.io if you need anything from them or to report - may have training or guidance - ask! -Communication and feedback loops: -[Need to Know email archive] -[Monthly meeting] +[Kubernetes values] +[Governance Principles] + +### Communication and feedback loops: + +- [Need to Know email archive] +- [Monthly meeting] + Slack: #chairs-and-techleads, #sig-contribex Mailing list: leads@kubernetes.io Github: File issues against kubernetes/community -[values] -[principles] +## Community Programs + +- Mentoring, succession planning, and staffing - TODO +- Resources from SIG Contributor Experience + - Swag + - The Project can provide you with K8s tshirts, stickers, and other + marketing materials. + - If someone in your SIG is doing a great job and you want to recognize them + a tshirt is a great way to do that, especially for folks unable to attend + conferences. + - K8s baby onesies are also available but usually take longer. + - In most cases we need to sync with that person's employer so that we can + send them swag without having to manage people's private information, so + please sync with SIG Contributor Experience as early as reasonably + possible. + - Silly gift practical jokes or anything involving googly eyes that make + people smile will be given the appropriate level of priority. +- Resources from the CNCF - TODO + [Need to Know email archive]: https://docs.google.com/document/d/1ivmV-ouim7YcTnmv21m0pP6prmj-FFZxcRBuWbT706c/edit [Monthly meeting]: https://docs.google.com/document/d/1Jio9rEtYxlBbntF8mRGmj6Q1JAdzZ9fTDo3ru1HK_LI/edit diff --git a/contributors/chairs-and-techleads/technical-lead.md b/contributors/chairs-and-techleads/technical-lead.md new file mode 100644 index 00000000..e66f98a1 --- /dev/null +++ b/contributors/chairs-and-techleads/technical-lead.md @@ -0,0 +1,77 @@ +# Technical Lead + +## Role Description + +### About + +Target of this document is to define and outline the Technical Lead role within +the Kubernetes community in correspondence with the existing [description of SIG +Governance](/committee-steering/governance/sig-governance.md#tech-lead). The +document can be used as guidance for Special Interest Groups (SIGs) to onboard +new Technical Leads as well as clarifying the expectations associated with this +role. + +### Abstract + +The Technical Lead role in Kubernetes is an optional role that each SIG can +choose to implement as part of its [governance +model](http://git.k8s.io/community/committee-steering/governance/sig-governance.md#roles). +This means SIGs can decide on their own if they want to add Technical Leads to +their charter or not. Depending on the overall size of the SIG, around two to +three people can be chosen by the SIG Chairs to support the technical aspects of +the group. To be able to fulfill their role, a Technical Lead should have the +same set of permissions as a Chair. + +Generally speaking, Technical Leads are responsible for leading the SIG in +correspondence with its technical alignment. This alignment includes both +internal to the SIG and, more significantly, external to the entire Kubernetes +project. Before being able to align any technical direction, it is necessary to +establish a technical vision within the SIG. The technical vision should be +continuously updated and turned into reality, whereas larger features of the +vision can be outlined in dedicated roadmaps. This means Technical Leads have to +be involved in the source code base of the SIG to be able to take the right +decisions, identify risk and maintain a high level of trust with other members +of the SIG. + +Technical Leads have the responsibility to track the technical quality of the +deliverables of the team if a roadmap exists. They are volunteering to provide +senior leadership to the SIG’s short-term and long-term vision. + +Examples for technical leadership within a SIG are: + +- Ensure that the team utilizes appropriate engineering practices which apply to + the whole Kubernetes organization. One example would be using Prow for + Continuous Integration (CI) practices. +- Continuously evaluate technical challenges within the SIG and work towards + removing them as part of the vision. +- Take changing environments into account to adapt the technical vision if + needed. For example, if interdependent SIGs have a requirement for a technical + change, then it is in the responsibility of the Technical Leads to drive + towards a feasible solution for the whole community. + +Technical leadership within a SIG should focus on solving the "How" questions +rather than people and team growth related ones (the latter responsibilities are +those of the SIG Chairs). Mentoring team members around solving technical tasks +also falls also into the responsibility of the Technical Leads. This includes +proper onboarding (or delegation of it) of new team members with respect to +technical workflows within the SIG. It also means that Technical Leads are +responsible for building, sharing and documenting the context to ensure that +there is a pipeline for the team members. Technical Leads also help mediating +technical debates within and in correlation with other SIGs, they unblock +outstanding work and have the ability to ask the right questions or say "no". +They actively participate in building solutions around the technical vision and +lead discussions around software architectural decisions. + +The common skill set of Technical Leads divides into three areas: + +- **Leadership** – Coaching team members to reach their target. Delegation of + work to ensure personal technical growth of them. +- **Development** – Knowledge about the code and the quality standards within + the community. Being able to help the team to solve technical obstacles + without having a need of being the expert for everything. +- **Architecture** – Wide range understanding of the SIGs work in correlation to + the whole community. Establishing future plans by continuously working on the + technical vision of the SIG. + +If you are interested in becoming a Technical Lead, speak with the [appropriate +SIG Chairs](https://github.com/kubernetes/community/blob/master/sig-list.md). diff --git a/contributors/design-proposals/service-catalog/pod-preset.md b/contributors/design-proposals/service-catalog/pod-preset.md index 28f8d8a8..8991e9f8 100644 --- a/contributors/design-proposals/service-catalog/pod-preset.md +++ b/contributors/design-proposals/service-catalog/pod-preset.md @@ -23,6 +23,8 @@ ## Abstract +**PodPresets did not progress out of alpha since 1.6. They were removed in 1.20** + Describes a policy resource that allows for the loose coupling of a Pod's definition from additional runtime requirements for that Pod. For example, mounting of Secrets, or setting additional environment variables, diff --git a/contributors/devel/development.md b/contributors/devel/development.md index 6a299445..b2980713 100644 --- a/contributors/devel/development.md +++ b/contributors/devel/development.md @@ -21,7 +21,7 @@ is a critical component that is too slow for an SLA that we care about) from the solution (e.g. make X faster). Some of these checks were less common in Kubernetes' earlier days. Now that we -have over 1000 contributors, each issue should be filed with care. No issue +have over 50000 contributors, each issue should be filed with care. No issue should take more than 5 minutes to check for sanity (even the busiest of reviewers can spare 5 minutes to review a patch that is thoughtfully justified). diff --git a/contributors/devel/sig-architecture/api-conventions.md b/contributors/devel/sig-architecture/api-conventions.md index 4d98bfed..0ac434ac 100644 --- a/contributors/devel/sig-architecture/api-conventions.md +++ b/contributors/devel/sig-architecture/api-conventions.md @@ -308,17 +308,77 @@ response reduces the complexity of these clients. ##### Typical status properties -**Conditions** represent the latest available observations of an object's -state. They are an extension mechanism intended to be used when the details of -an observation are not a priori known or would not apply to all instances of a -given Kind. For observations that are well known and apply to all instances, a -regular field is preferred. An example of a Condition that probably should -have been a regular field is Pod's "Ready" condition - it is managed by core -controllers, it is well understood, and it applies to all Pods. +**Conditions** provide a standard mechanism for higher-level status reporting +from a controller. They are an extension mechanism which allows tools and other +controllers to collect summary information about resources without needing to +understand resource-specific status details. Conditions should complement more +detailed information about the observed status of an object written by a +controller, rather than replace it. For example, the "Available" condition of a +Deployment can be determined by examining `readyReplicas`, `replicas`, and +other properties of the Deployment. However, the "Available" condition allows +other components to avoid duplicating the availability logic in the Deployment +controller. Objects may report multiple conditions, and new types of conditions may be added in the future or by 3rd party controllers. Therefore, conditions are -represented using a list/slice, where all have similar structure. +represented using a list/slice of objects, where each condition has a similar +structure. This collection should be treated as a map with a key of `type`. + +Conditions are most useful when they follow some consistent conventions: + +* Conditions should be added to explicitly convey properties that users and + components care about rather than requiring those properties to be inferred + from other observations. Once defined, the meaning of a Condition can not be + changed arbitrarily - it becomes part of the API, and has the same backwards- + and forwards-compatibility concerns of any other part of the API. + +* Controllers should apply their conditions to a resource the first time they + visit the resource, even if the `status` is Unknown. This allows other + components in the system to know that the condition exists and the controller + is making progress on reconciling that resource. + + * Not all controllers will observe the previous advice about reporting + "Unknown" or "False" values. For known conditions, the absence of a + condition status should be interpreted the same as `Unknown`, and + typically indicates that reconciliation has not yet finished (or that the + resource state may not yet be observable). + +* For some conditions, `True` represents normal operation, and for some + conditions, `False` represents normal operation. ("Normal-true" conditions + are sometimes said to have "positive polarity", and "normal-false" conditions + are said to have "negative polarity".) Without further knowledge of the + conditions, it is not possible to compute a generic summary of the conditions + on a resource. + +* Condition type names should make sense for humans; neither positive nor + negative polarity can be recommended as a general rule. A negative condition + like "MemoryExhausted" may be easier for humans to understand than + "SufficientMemory". Conversely, "Ready" or "Succeeded" may be easier to + understand than "Failed", because "Failed=Unknown" or "Failed=False" may + cause double-negative confusion. + +* Condition type names should describe the current observed state of the + resource, rather than describing the current state transitions. This + typically means that the name should be an adjective ("Ready", "OutOfDisk") + or a past-tense verb ("Succeeded", "Failed") rather than a present-tense verb + ("Deploying"). Intermediate states may be indicated by setting the status of + the condition to `Unknown`. + + * For state transitions which take a long period of time (rule of thumb: > 1 + minute), it is reasonable to treat the transition itself as an observed + state. In these cases, the Condition (such as "Resizing") itself should not + be transient, and should instead be signalled using the + `True`/`False`/`Unknown` pattern. This allows other observers to determine + the last update from the controller, whether successful or failed. In cases + where the state transition is unable to complete and continued + reconciliation is not feasible, the Reason and Message should be used to + indicate that the transition failed. + +* When designing Conditions for a resource, it's helpful to have a common + top-level condition which summarizes more detailed conditions. Simple + consumers may simply query the top-level condition. Although they are not a + consistent standard, the `Ready` and `Succeeded` condition types may be used + by API designers for long-running and bounded-execution objects, respectively. The `FooCondition` type for some resource type `Foo` may include a subset of the following fields, but must contain at least `type` and `status` fields: @@ -347,20 +407,13 @@ Use of the `Reason` field is encouraged. Use the `LastHeartbeatTime` with great caution - frequent changes to this field can cause a large fan-out effect for some resources. -Conditions should be added to explicitly convey properties that users and -components care about rather than requiring those properties to be inferred from -other observations. Once defined, the meaning of a Condition can not be -changed arbitrarily - it becomes part of the API, and has the same backwards- -and forwards-compatibility concerns of any other part of the API. +Condition types should be named in PascalCase. Short condition names are +preferred (e.g. "Ready" over "MyResourceReady"). Condition status values may be `True`, `False`, or `Unknown`. The absence of a condition should be interpreted the same as `Unknown`. How controllers handle `Unknown` depends on the Condition in question. -Condition types should indicate state in the "abnormal-true" polarity. For -example, if the condition indicates when a policy is invalid, the "is valid" -case is probably the norm, so the condition should be called "Invalid". - The thinking around conditions has evolved over time, so there are several non-normative examples in wide use. @@ -371,12 +424,12 @@ we define comprehensive state machines for objects, nor behaviors associated with state transitions. The system is level-based rather than edge-triggered, and should assume an Open World. -An example of an oscillating condition type is `Ready` (despite it running -afoul of current guidance), which indicates the object was believed to be fully -operational at the time it was last probed. A possible monotonic condition -could be `Failed`. A `True` status for `Failed` would imply failure with no -retry. An object that was still active would generally not have a `Failed` -condition. +An example of an oscillating condition type is `Ready`, which indicates the +object was believed to be fully operational at the time it was last probed. A +possible monotonic condition could be `Succeeded`. A `True` status for +`Succeeded` would imply completion and that the resource was no longer +active. An object that was still active would generally have a `Succeeded` +condition with status `Unknown`. Some resources in the v1 API contain fields called **`phase`**, and associated `message`, `reason`, and other status fields. The pattern of using `phase` is diff --git a/contributors/devel/sig-instrumentation/logging.md b/contributors/devel/sig-instrumentation/logging.md index c4da6829..d7e052c0 100644 --- a/contributors/devel/sig-instrumentation/logging.md +++ b/contributors/devel/sig-instrumentation/logging.md @@ -29,6 +29,8 @@ The following conventions for the klog levels to use. * Context to understand the steps leading up to errors and warnings * More information for troubleshooting reported issues +* klog.InfoS() - structured logs to the INFO log + As per the comments, the practical default level is V(2). Developers and QE environments may wish to run at V(3) or V(4). If you wish to change the log level, you can pass in `-v=X` where X is the desired maximum level to log. diff --git a/contributors/devel/sig-node/container-runtime-interface.md b/contributors/devel/sig-node/container-runtime-interface.md index 3941c942..38881da5 100644 --- a/contributors/devel/sig-node/container-runtime-interface.md +++ b/contributors/devel/sig-node/container-runtime-interface.md @@ -58,12 +58,12 @@ proposals. We are working on adding more documentation for the API. - [Exec/attach/port-forward streaming requests](https://docs.google.com/document/d/1OE_QoInPlVCK9rMAx9aybRmgFiVjHpJCHI9LrfdNM_s/edit?usp=sharing) - [Container stdout/stderr logs](https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/proposals/kubelet-cri-logging.md) -## Work-In-Progress CRI runtimes +## CRI runtimes - - [cri-o](https://github.com/kubernetes-incubator/cri-o) - - [rktlet](https://github.com/kubernetes-incubator/rktlet) + - [cri-o](https://github.com/cri-o/cri-o) + - [rktlet](https://github.com/kubernetes-retired/rktlet) - [frakti](https://github.com/kubernetes/frakti) - - [cri-containerd](https://github.com/kubernetes-incubator/cri-containerd) + - [cri-containerd](https://github.com/containerd/cri) - [singularity-cri](https://github.com/sylabs/singularity-cri) ## [Status update](#status-update) diff --git a/contributors/devel/sig-node/e2e-node-tests.md b/contributors/devel/sig-node/e2e-node-tests.md index 78e0fd82..0df490ce 100644 --- a/contributors/devel/sig-node/e2e-node-tests.md +++ b/contributors/devel/sig-node/e2e-node-tests.md @@ -1,10 +1,6 @@ -# Node End-To-End tests +# Node End-To-End (e2e) tests -Node e2e tests are component tests meant for testing the Kubelet code on a custom host environment. - -Tests can be run either locally or against a host running on GCE. - -Node e2e tests are run as both pre- and post- submit tests by the Kubernetes project. +Node e2e tests are component tests meant for testing the Kubelet code on a custom host environment. Tests can be run either locally or against a host running on Google Compute Engine (GCE). Node e2e tests are run as both pre- and post- submit tests by the Kubernetes project. *Note: Linux only. Mac and Windows unsupported.* @@ -14,13 +10,13 @@ Node e2e tests are run as both pre- and post- submit tests by the Kubernetes pro ## Locally -Why run tests *Locally*? Much faster than running tests Remotely. +Why run tests *locally*? It is much faster than running tests remotely. Prerequisites: -- [Install etcd](https://github.com/coreos/etcd/releases) on your PATH +- [Install etcd](https://github.com/coreos/etcd/releases) and include the path to the installation in your PATH - Verify etcd is installed correctly by running `which etcd` - Or make etcd binary available and executable at `/tmp/etcd` -- [Install ginkgo](https://github.com/onsi/ginkgo) on your PATH +- [Install ginkgo](https://github.com/onsi/ginkgo) and include the path to the installation in your PATH - Verify ginkgo is installed correctly by running `which ginkgo` From the Kubernetes base directory, run: @@ -29,7 +25,7 @@ From the Kubernetes base directory, run: make test-e2e-node ``` -This will: run the *ginkgo* binary against the subdirectory *test/e2e_node*, which will in turn: +This will run the *ginkgo* binary against the subdirectory *test/e2e_node*, which will in turn: - Ask for sudo access (needed for running some of the processes) - Build the Kubernetes source code - Pre-pull docker images used by the tests @@ -48,12 +44,10 @@ make test-e2e-node PRINT_HELP=y ## Remotely -Why Run tests *Remotely*? Tests will be run in a customized pristine environment. Closely mimics what will be done -as pre- and post- submit testing performed by the project. +Why run tests *remotely*? Tests will be run in a customized testing environment. This environment closely mimics the pre- and post- submit testing performed by the project. Prerequisites: -- [join the googlegroup](https://groups.google.com/forum/#!forum/kubernetes-dev) -`kubernetes-dev@googlegroups.com` +- [Join the googlegroup](https://groups.google.com/forum/#!forum/kubernetes-dev) `kubernetes-dev@googlegroups.com` - *This provides read access to the node test images.* - Setup a [Google Cloud Platform](https://cloud.google.com/) account and project with Google Compute Engine enabled - Install and setup the [gcloud sdk](https://cloud.google.com/sdk/downloads) @@ -69,7 +63,7 @@ make test-e2e-node REMOTE=true This will: - Build the Kubernetes source code - Create a new GCE instance using the default test image - - Instance will be called something like **test-cos-beta-81-12871-44-0** + - Instance will be named something like **test-cos-beta-81-12871-44-0** - Lookup the instance public ip address - Copy a compressed archive file to the host containing the following binaries: - ginkgo @@ -86,7 +80,7 @@ This will: - **Leave the GCE instance running** **Note: Subsequent tests run using the same image will *reuse the existing host* instead of deleting it and -provisioning a new one. To delete the GCE instance after each test see +provisioning a new one. To delete the GCE instance after each test see *[DELETE_INSTANCE](#delete-instance-after-tests-run)*.** @@ -127,7 +121,7 @@ This is useful if you want recreate the instance for each test run to trigger fl make test-e2e-node REMOTE=true DELETE_INSTANCES=true ``` -## Keep instance, test binaries, and *processes* around after tests run +## Keep instance, test binaries, and processes around after tests run This is useful if you want to manually inspect or debug the kubelet process run as part of the tests. @@ -155,7 +149,7 @@ test in parallel against different instances of the same image. make test-e2e-node REMOTE=true INSTANCE_PREFIX="my-prefix" ``` -## Run tests using a custom image config +## Run tests using a custom image configuration This is useful if you want to test out different runtime configurations. First, make a local (temporary) copy of the base image config from the test-infra repo: @@ -179,7 +173,27 @@ Finally, run the tests with your custom config: make test-e2e-node REMOTE=true IMAGE_CONFIG_FILE="<local file>" [...] ``` -# Additional Test Options for both Remote and Local execution +Image configuration files can further influence how FOCUS and SKIP match test cases. + +For example: + +```sh +--focus="\[NodeFeature:.+\]" --skip="\[Flaky\]|\[Serial\]" +``` + +runs all e2e tests labeled `"[NodeFeature:*]"` and will skip any tests labeled `"[Flaky]"` or `"[Serial]"`. + +Two example e2e tests that match this expression are: + * https://github.com/kubernetes/kubernetes/blob/0e2220b4462130ae8a22ed657e8979f7844e22c1/test/e2e_node/security_context_test.go#L155 + * https://github.com/kubernetes/kubernetes/blob/0e2220b4462130ae8a22ed657e8979f7844e22c1/test/e2e_node/security_context_test.go#L175 + +However, image configuration files select test cases based on the `tests` field. + +See https://github.com/kubernetes/test-infra/blob/4572dc3bf92e70f572e55e7ac1be643bdf6b2566/jobs/e2e_node/benchmark-config.yaml#L22-23 for an example configuration. + +If the [Prow e2e job configuration](https://github.com/kubernetes/test-infra/blob/master/jobs/e2e_node/image-config.yaml) does **not** specify the `tests` field, FOCUS and SKIP will run as expected. + +# Additional test options for both remote and local execution ## Only run a subset of the tests @@ -202,6 +216,26 @@ For example, the [`ci-kubernetes-node-kubelet`](https://github.com/kubernetes/te make test-e2e-node REMOTE=true FOCUS="\[NodeConformance\]" SKIP="\[Flaky\]|\[Serial\]" ``` +See http://onsi.github.io/ginkgo/#focused-specs in the Grinkgo documentation to learn more about how FOCUS and SKIP work. + +## Run a single test + +To run a particular e2e test, simply pass the Grinkgo `It` string to the `--focus` argument. + +For example, suppose we have the following test case: https://github.com/kubernetes/kubernetes/blob/0e2220b4462130ae8a22ed657e8979f7844e22c1/test/e2e_node/security_context_test.go#L175. We could select this test case by adding the argument: + +```sh +--focus="should not show its pid in the non-hostpid containers \[NodeFeature:HostAccess\]" +``` + +## Run all tests related to a feature + +In contrast, to run all node e2e tests related to the "HostAccess" feature one could run: + +```sh +--focus="\[NodeFeature:HostAccess\]" +``` + ## Run tests continually until they fail This is useful if you are trying to debug a flaky test failure. This will cause ginkgo to continually @@ -253,15 +287,19 @@ For testing with the QoS Cgroup Hierarchy enabled, you can pass --cgroups-per-qo ```sh make test_e2e_node TEST_ARGS="--cgroups-per-qos=true" ``` +## Testgrid + +TestGrid (https://testgrid.k8s.io) is a publicly hosted and configured automated testing framework developed by Google. + +Here (https://testgrid.k8s.io/sig-node-containerd#containerd-node-features) we see an example of an e2e Prow job running e2e tests. Each gray row in the grid corresponds +to an e2e test or a stage of the job (i.e. created a VM, downloaded some files). Passed tests are colored green and failed tests are colored red. # Notes on tests run by the Kubernetes project during pre-, post- submit. The node e2e tests are run by the [Prow](https://prow.k8s.io/) for each Pull Request and the results published -in the status checks box at -the bottom of the Pull Request below all comments. To have prow re-run the node e2e tests against a PR add the comment -`/test pull-kubernetes-node-e2e` and **include a link to the test -failure logs if caused by a flake.** -Note that [commands to prow](https://prow.k8s.io/command-help#test) must be on separate lines from any commentary. +in the status checks box at the bottom of the Pull Request below all comments. To have Prow re-run the node e2e tests against a PR add the comment +`/test pull-kubernetes-node-e2e` and **include a link to the test failure logs if caused by a flake.** +Note that [commands to Prow](https://prow.k8s.io/command-help#test) must be on separate lines from any commentary. For example, @@ -270,7 +308,7 @@ For example, The PR builder runs tests against the images listed in [image-config.yaml](https://github.com/kubernetes/test-infra/blob/master/jobs/e2e_node/image-config.yaml). -Other [node e2e prow jobs](https://github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes/sig-node) +Other [node e2e Prow jobs](https://github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes/sig-node) run against different images depending on the configuration chosen in the [test-infra repo](https://github.com/kubernetes/test-infra/tree/master/jobs/e2e_node). The source code for these tests comes from the [kubernetes/kubernetes repo](https://github.com/kubernetes/kubernetes/tree/master/test/e2e_node). diff --git a/contributors/devel/sig-node/images/ginkgo-flow.png b/contributors/devel/sig-node/images/ginkgo-flow.png Binary files differnew file mode 100644 index 00000000..cf5de3bb --- /dev/null +++ b/contributors/devel/sig-node/images/ginkgo-flow.png diff --git a/contributors/devel/sig-node/images/ginkgo-start.png b/contributors/devel/sig-node/images/ginkgo-start.png Binary files differnew file mode 100644 index 00000000..60d6f5b1 --- /dev/null +++ b/contributors/devel/sig-node/images/ginkgo-start.png diff --git a/contributors/devel/sig-node/test-suite.md b/contributors/devel/sig-node/test-suite.md new file mode 100644 index 00000000..9556e7e2 --- /dev/null +++ b/contributors/devel/sig-node/test-suite.md @@ -0,0 +1,206 @@ +# Node End-To-End (e2e) Code Documentation + +Kubernetes end-to-end (e2e) tests, at their core, work by compiling test code and creating an executable. +The executable, in a way, is very much like any other application: it performs some tasks (it runs e2e tests) and to +run it needs a Kubernetes cluster or a machine to run on. + +Normal Kubernetes e2e tests require an entire cluster. The cluster is created during each CI run by prow and some +other [test infra](https://github.com/kubernetes/test-infra) components. + +Node e2e tests differ from regular e2e tests in the fact that node e2e tests aim only to test the node component +of Kubernetes, the kubelet. In this scenario, the infrastructure needed is a kubelet, an API server +(since it is the managing component of Kubernetes), and an ETCD server for the API server. + +Because of this difference in infrastructure and environment needs, we had to create a test suite that would +allow us to automate the management of the needed components during test runs and to allow +contributors to work on developing tests. + +The two core goals of the node test suite are to 1.) run e2e tests that verify the kubelet is working +during CI test runs and 2.) to allow contributors to develop and iterate on tests outside of CI easily. + +- *Goal #1* is implemented in the all too familiar way by compiling test code and using ginkgo to implement +an entrypoint that will hand down control from the caller of the binary to ginkgo itself, which in turn manages +what e2e tests to run and how. + +- *Goal #2* is done by offering two entry points into the node test suite: a local and a remote runner. +The local runner executes the node test suite in the machine in which it is called. +The remote runner executes the node test suite in a remote machine (it currently only has an integration with GCP). + +## Running node tests + +As we already mentioned, node e2e tests can be executed locally or remotely (in a GCE VM). +In either case, in order to run e2e tests we will make use of a couple of utility scripts and programs +that exist in Kubernetes. + +One of the tools we will use the most is the [Makefile](https://github.com/kubernetes/kubernetes/blob/master/build/root/Makefile) +that is found at the root of the k/k repository. + +In order to run node e2e tests, we will focus on the Makefile +[test-e2e-node](https://github.com/kubernetes/kubernetes/blob/master/build/root/Makefile#L264-L270) target. + + +### Local Runner + +This is a compilation of notes on how to run E2E locally. Here will come the dissection of the +steps that Make goes until Ginkgo runs the tests throughout the Kubernetes E2E framework. +The first step to run the test in a local machine it should be: + +``` +make test-e2e-node +```` + +The test-e2e-node target can take a variety of arguments, to show them all you can print a help +message by running: + +``` +make test-e2e-node PRINT_HELP=y +``` + +When running the make target without the helper option, the following shell script is called: +*hack/make-rules/test-e2e-node.sh*, with the arguments from the target. + +Some other prerequisites targets exist ginkgo, which builds the Ginkgo binary and generated_files, +collecting all generated files sets into a single rule. +(**gen_deepcopy**, **gen_defaulter**, **gen_conversion**, **gen_openapi**, etc.) + +There are two kinds of runners for the E2E tests, the first analyzed here is the local runner, +it uses the machine to build and run the tests, the other is the remote mode used in the CI. + +The header of the shell script will set the internal variables and check if *REMOTE=true* +is passed as an argument, otherwise, the make target will run the local runner with some +translations and defaulting in the arguments not inserted. + +The entrypoint for the local runner is the file: *test/e2e_node/runner/local/run_local.go*: + +```bash +if [ "${remote}" = true ] ; then + ... +else + # Test using the host the script was run on + # Provided for backwards compatibility + go run test/e2e_node/runner/local/run_local.go \ + --system-spec-name="${system_spec_name}" --extra-envs="${extra_envs}" \ + --ginkgo-flags="${ginkgoflags}" --test-flags="--container-runtime=${runtime} \ + --alsologtostderr --v 4 --report-dir=${artifacts} --node-name $(hostname) \ + ${test_args}" --build-dependencies=true 2>&1 | tee -i "${artifacts}/build-log.txt" +fi +``` + +On *run_local.go*, The first step is to build the targets used to run the tests (*builder.BuildGo()*), +including the entire suite via Ginkgo pre-compilation, this is made with the flag *--build-dependencies=true*: + +```go +var buildTargets = []string{ + "cmd/kubelet", + "test/e2e_node/e2e_node.test", + "vendor/github.com/onsi/ginkgo/ginkgo", + "cluster/gce/gci/mounter", +} + +targets := strings.Join(buildTargets, "") +exec.Command("make", "-C", KUBEROOT, fmt.Sprintf("WHAT=%s", targets) +``` + +Since you will have the pre-compiled suite of tests in the *_output/local/go/bin/e2e_node.test*, +and they can be invoked manually, the tool executes as a second step the runCommand, +using Ginkgo to bootstrap the suite of tests and the binaries necessary to run it: + +```bash +$KUBEROOT/_output/local/go/bin/ginkgo -nodes=8 \ + -skip="\[Flaky\]|\[Slow\]|\[Serial\]" + -untilItFails=false + $KUBEROOT/_output/local/go/bin/e2e_node.test -- + --container-runtime=docker + --alsologtostderr --v 4 + --report-dir=/tmp/_artifacts/200719T231746 + --node-name raspberrypi + --kubelet-flags="--container-runtime=docker" + --kubelet-flags="--network-plugin= --cni-bin-dir=" +``` + +Here is the flow we have from the Makefile target (test-e2e-node) +until the actual run of the ginkgo script suite. + + + +### Starting Ginkgo + +A simple sequence diagram represents the run spec flow: + + + +The entry point for the system is *test/e2e_node/e2e_node_suite_test.go*, where it executes *init()* +and *AddFileSource* registering providers for files that maybe be needed at runtime, +after *TestMain* is called to register the flags and start Ginkgo setup. + +The second phase is the **TestE2eNode**, which bootstrap the tests and the following modes can be used: + +```go +var runServicesMode = flag.Bool("run-services-mode", false, "If true, only run services (etcd, apiserver) in current process, and not run test.") +var runKubeletMode = flag.Bool("run-kubelet-mode", false, "If true, only start kubelet, and not run test.") +var systemValidateMode = flag.Bool("system-validate-mode", false, "If true, only run system validation in current process, and not run test.") +``` + +If no mode is used the test suite is executed, first a new *Fail handler* is registered, and then the +specs are started with a custom Junit format. Otherwise, the flags will control the startup of the +cluster components. + +```go +if *runServicesMode { RunE2EService(); return } +if *runKubeletMode { RunKubelet(); return } +if *systemValidateMode { ValidateSpec(); return } +``` + +### ginkgo.SynchronizedBeforeSuide + +The first inner call is a Ginkgo helper function called before running the entire suite. + +It starts with *validateSystem()*, this call the binary again with the *--system-validate-mode* flag, +validating some system characteristics required to run (docker, OS-level, etc. the library is on k8s.io/system-validators). + +In the sequence, if the option exist in the configuration, the images used in the tests are +pre-pulled and must exist in the system, the list is on *NodePrePullImageList*. +PrePullImages make sure the list is downloaded via *puller.Pull()* (can be docker or remote). + +Finally, we have a crucial part that starts the required background services to run the test suite. + +```go +if *startServices { + e2es = services.NewE2EServices(*stopServices) + e2es.Start() +} + +waitForNodeReady() +``` + +### Services + +The files on *test/e2e_node/services* manages the e2e services in a separated process. + +*E2EServices.Start()* brings Kubelet in the background if the framework is not running as NodeConformance, +and *startInternalServices* calls the test binary with the flag *--run-services-mode*. + +When running in service-mode it starts *test/e2e_node/services/internal_services.go:46:run*, which brings etcd, +APIserver and starts a namespace controller. + +```go +klog.Info("Starting e2e services...") + +err := es.startEtcd(t) +if err != nil { + return err +} + +err = es.startAPIServer(es.etcdStorage) +if err != nil { + return err +} + +err = es.startNamespaceController() +if err != nil { + return nil +} + +klog.Info("E2E services started.") +return nil +```
\ No newline at end of file diff --git a/contributors/devel/sig-release/getting-builds.md b/contributors/devel/sig-release/getting-builds.md index cd1373bf..41084572 100644 --- a/contributors/devel/sig-release/getting-builds.md +++ b/contributors/devel/sig-release/getting-builds.md @@ -1,12 +1,17 @@ # Getting Kubernetes Builds +- [Version markers](#version-markers) - [Using `hack/get-build.sh`](#using-hackget-buildsh) -- [Using `gsutil`](#using-gsutil) - - [Install `gsutil`](#install-gsutil) - - [Examples](#examples) - - [Output the latest CI version number](#output-the-latest-ci-version-number) - - [List the contents of a CI release](#list-the-contents-of-a-ci-release) - - [List all official releases and RCs](#list-all-official-releases-and-rcs) + +## Version markers + +Version markers are text files which act as sort of a public API for accessing +Kubernetes builds. + +They are artifacts of a successful Kubernetes build which are stored in a +Google Cloud Storage bucket alongside the builds they make reference to. + +You can read more about version markers [here](./kubernetes-versions.md). ## Using `hack/get-build.sh` @@ -41,139 +46,3 @@ build: ```shell ./hack/get-build.sh -v ci/latest ``` - -## Using `gsutil` - -You can also use the gsutil tool to explore the Google Cloud Storage release -buckets. - -### Install `gsutil` - -`gsutil` is part of the Google Cloud SDK. -Install instructions for the Google Cloud SDK can be found [here](https://cloud.google.com/sdk/install). - -### Examples - -#### Output the latest CI version number - -```console -$ gsutil cat gs://kubernetes-release-dev/ci/latest.txt -v1.19.0-beta.2.32+35fc65dc2c614e -``` - -#### List the contents of a CI release - -```console -$ gsutil ls gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/SHA256SUMS -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/SHA256SUMS.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/SHA256SUMS.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/SHA512SUMS -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/SHA512SUMS.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/SHA512SUMS.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-client-linux-amd64.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-client-linux-amd64.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-client-linux-amd64.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-manifests.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-manifests.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-manifests.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-node-linux-amd64.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-node-linux-amd64.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-node-linux-amd64.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-server-linux-amd64.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-server-linux-amd64.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-server-linux-amd64.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-src.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-src.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-src.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-test-linux-amd64.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-test-linux-amd64.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-test-linux-amd64.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-test-portable.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-test-portable.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes-test-portable.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes.tar.gz -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes.tar.gz.sha256 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/kubernetes.tar.gz.sha512 -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/bin/ -gs://kubernetes-release-dev/ci/v1.19.0-beta.2.32+35fc65dc2c614e/extra/ -``` - -#### List all official releases and RCs - -```console -$ gsutil ls gs://kubernetes-release/release -gs://kubernetes-release/release/kube-register -gs://kubernetes-release/release/latest-1.0.txt -gs://kubernetes-release/release/latest-1.1.txt -gs://kubernetes-release/release/latest-1.10.txt -gs://kubernetes-release/release/latest-1.11.txt -gs://kubernetes-release/release/latest-1.12.txt -gs://kubernetes-release/release/latest-1.13.txt -gs://kubernetes-release/release/latest-1.14.txt -gs://kubernetes-release/release/latest-1.15.txt -gs://kubernetes-release/release/latest-1.16.txt -gs://kubernetes-release/release/latest-1.17.txt -gs://kubernetes-release/release/latest-1.18.txt -gs://kubernetes-release/release/latest-1.19.txt -gs://kubernetes-release/release/latest-1.2.txt -gs://kubernetes-release/release/latest-1.3.txt -gs://kubernetes-release/release/latest-1.4.txt -gs://kubernetes-release/release/latest-1.5.txt -gs://kubernetes-release/release/latest-1.6.txt -gs://kubernetes-release/release/latest-1.7.txt -gs://kubernetes-release/release/latest-1.8.txt -gs://kubernetes-release/release/latest-1.9.txt -gs://kubernetes-release/release/latest-1.txt -gs://kubernetes-release/release/latest.txt -gs://kubernetes-release/release/stable-1.0.txt -gs://kubernetes-release/release/stable-1.1.txt -gs://kubernetes-release/release/stable-1.10.txt -gs://kubernetes-release/release/stable-1.11.txt -gs://kubernetes-release/release/stable-1.12.txt -gs://kubernetes-release/release/stable-1.13.txt -gs://kubernetes-release/release/stable-1.14.txt -gs://kubernetes-release/release/stable-1.15.txt -gs://kubernetes-release/release/stable-1.16.txt -gs://kubernetes-release/release/stable-1.17.txt -gs://kubernetes-release/release/stable-1.18.txt -gs://kubernetes-release/release/stable-1.2.txt -gs://kubernetes-release/release/stable-1.3.txt -gs://kubernetes-release/release/stable-1.4.txt -gs://kubernetes-release/release/stable-1.5.txt -gs://kubernetes-release/release/stable-1.6.txt -gs://kubernetes-release/release/stable-1.7.txt -gs://kubernetes-release/release/stable-1.8.txt -gs://kubernetes-release/release/stable-1.9.txt -gs://kubernetes-release/release/stable-1.txt -gs://kubernetes-release/release/stable.txt - -<snip> - -gs://kubernetes-release/release/v1.18.0-alpha.0/ -gs://kubernetes-release/release/v1.18.0-alpha.1/ -gs://kubernetes-release/release/v1.18.0-alpha.2/ -gs://kubernetes-release/release/v1.18.0-alpha.3/ -gs://kubernetes-release/release/v1.18.0-alpha.5/ -gs://kubernetes-release/release/v1.18.0-beta.0/ -gs://kubernetes-release/release/v1.18.0-beta.1/ -gs://kubernetes-release/release/v1.18.0-beta.2/ -gs://kubernetes-release/release/v1.18.0-rc.1/ -gs://kubernetes-release/release/v1.18.0/ -gs://kubernetes-release/release/v1.18.1-beta.0/ -gs://kubernetes-release/release/v1.18.1/ -gs://kubernetes-release/release/v1.18.2-beta.0/ -gs://kubernetes-release/release/v1.18.2/ -gs://kubernetes-release/release/v1.18.3-beta.0/ -gs://kubernetes-release/release/v1.18.3/ -gs://kubernetes-release/release/v1.18.4-rc.0/ -gs://kubernetes-release/release/v1.19.0-alpha.0/ -gs://kubernetes-release/release/v1.19.0-alpha.1/ -gs://kubernetes-release/release/v1.19.0-alpha.2/ -gs://kubernetes-release/release/v1.19.0-alpha.3/ -gs://kubernetes-release/release/v1.19.0-beta.0/ -gs://kubernetes-release/release/v1.19.0-beta.1/ -gs://kubernetes-release/release/v1.19.0-beta.2/ - -<snip> -``` diff --git a/contributors/devel/sig-release/kubernetes-versions.md b/contributors/devel/sig-release/kubernetes-versions.md new file mode 100644 index 00000000..466ded9c --- /dev/null +++ b/contributors/devel/sig-release/kubernetes-versions.md @@ -0,0 +1,452 @@ +# Kubernetes Version Markers + +Version markers are text files which act as sort of a public API for accessing +Kubernetes builds. + +They are artifacts of a successful Kubernetes build which are stored in a +Google Cloud Storage bucket alongside the builds they make reference to. + +You may see version markers leveraged in a variety of places, including: + +- extraction strategies for e2e tests +- Release Engineering tooling +- external user-maintained scripts + +## Table of Contents <!-- omit in toc --> + +- [tl;dr](#tldr) + - [CI - cross build](#ci---cross-build) + - [CI - linux/amd64 (fast) build](#ci---linuxamd64-fast-build) + - [Release - Official release build](#release---official-release-build) + - [Release - Pre-release build](#release---pre-release-build) +- [Usage](#usage) + - [Format](#format) + - [Access](#access) + - [gsutil](#gsutil) + - [curl/wget](#curlwget) + - [gcsweb](#gcsweb) + - [Querying a build](#querying-a-build) +- [Marker types](#marker-types) + - [CI](#ci) + - [latest](#latest) + - [latest-fast](#latest-fast) + - [**DEPRECATED** - generic](#deprecated---generic) + - [Release](#release) + - [Official](#official) + - [Pre-release](#pre-release) +- [Future Plans](#future-plans) +- [Known Issues](#known-issues) + - [Generic version markers are not explicit](#generic-version-markers-are-not-explicit) + - [Manually created jobs using generic version markers can be inaccurate](#manually-created-jobs-using-generic-version-markers-can-be-inaccurate) +- [Previous Issues](#previous-issues) + - [linux/amd64 version markers are colliding with cross builds](#linuxamd64-version-markers-are-colliding-with-cross-builds) + - [Cross builds are stored in a separate GCS bucket](#cross-builds-are-stored-in-a-separate-gcs-bucket) + - [Generated jobs may not represent intention](#generated-jobs-may-not-represent-intention) + - [bazel version markers appear to be unused](#bazel-version-markers-appear-to-be-unused) + +## tl;dr + +You need a... + +### CI - cross build + +Use `gsutil cat gs://kubernetes-release-dev/ci/latest.txt` (`master` branch) + +OR + +`gsutil cat gs://kubernetes-release-dev/ci/latest-x.y.txt`, where `x` is the +Kubernetes major version and `y` is the Kubernetes minor version (release branches). + +### CI - linux/amd64 (fast) build + +Use `gsutil cat gs://kubernetes-release-dev/ci/latest-fast.txt` (**_only available +on `master` branch_**). + +### Release - Official release build + +Use `gsutil cat gs://kubernetes-release/release/stable-x.y.txt`, where `x` is the +Kubernetes major version and `y` is the Kubernetes minor version. + +### Release - Pre-release build + +Use `gsutil cat gs://kubernetes-release/release/latest-x.y.txt`, where `x` is the +Kubernetes major version and `y` is the Kubernetes minor version. + +## Usage + +### Format + +All version markers have similar endpoints: + +```console +<gcs-bucket>/<directory>/<marker> +``` + +Expected output is [semver](https://semver.org/spec/v2.0.0.html)-compliant +version, prepended with a `v`. + +Example: + +```console +v1.20.0-alpha.0.391+575c4925be8c39 +``` + +### Access + +Version markers are accessible via HTTP, so there are several ways to get them, +depending on your use case. + +#### [gsutil](https://cloud.google.com/storage/docs/gsutil) + +```shell +for version in latest latest-1.19 latest-1.18 latest-1.17 latest-1.16; do + echo ci/$version: $(gsutil cat gs://kubernetes-release-dev/ci/$version.txt); +done +ci/latest: v1.20.0-alpha.0.391+575c4925be8c39 +ci/latest-1.19: v1.19.0-rc.2.118+d01fde696783fa +ci/latest-1.18: v1.18.7-rc.0.8+ec73e191f47b79 +ci/latest-1.17: v1.17.10-rc.0.10+79569e22b50897 +ci/latest-1.16: v1.16.14-rc.0.10+5e764419987f2e +``` + +#### curl/wget + +```console +https://storage.googleapis.com/<gcs-bucket>/<directory>/<marker> +``` + +```shell +$ curl https://storage.googleapis.com/kubernetes-release-dev/ci/latest.txt +v1.20.0-alpha.0.391+575c4925be8c39 +``` + +#### gcsweb + +Navigate via web browser to +`https://gcsweb.k8s.io/gcs/<gcs-bucket>/<directory>/<marker>`. + +Example: + +```console +https://gcsweb.k8s.io/gcs/kubernetes-release-dev/ci +``` + +### Querying a build + +Once you've successfully retrieved a version marker, you can use it to list the +contents of a Kubernetes build. + +Here's an example: + +```shell +$ gsutil ls gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39 +``` + +Output: + +<details> + +```console +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/SHA256SUMS +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/SHA256SUMS.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/SHA256SUMS.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/SHA512SUMS +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/SHA512SUMS.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/SHA512SUMS.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-darwin-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-darwin-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-darwin-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-386.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-386.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-386.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-arm.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-arm.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-arm.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-arm64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-arm64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-arm64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-ppc64le.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-ppc64le.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-ppc64le.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-s390x.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-s390x.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-linux-s390x.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-windows-386.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-windows-386.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-windows-386.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-windows-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-windows-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-client-windows-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-manifests.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-manifests.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-manifests.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-arm.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-arm.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-arm.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-arm64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-arm64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-arm64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-ppc64le.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-ppc64le.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-ppc64le.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-s390x.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-s390x.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-linux-s390x.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-windows-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-windows-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-node-windows-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-arm.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-arm.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-arm.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-arm64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-arm64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-arm64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-ppc64le.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-ppc64le.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-ppc64le.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-s390x.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-s390x.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-server-linux-s390x.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-src.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-src.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-src.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-darwin-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-darwin-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-darwin-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-arm.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-arm.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-arm.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-arm64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-arm64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-arm64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-ppc64le.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-ppc64le.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-ppc64le.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-s390x.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-s390x.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-linux-s390x.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-portable.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-portable.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-portable.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-windows-amd64.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-windows-amd64.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes-test-windows-amd64.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes.tar.gz +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes.tar.gz.sha256 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/kubernetes.tar.gz.sha512 +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/bin/ +gs://kubernetes-release-dev/ci/v1.20.0-alpha.0.391+575c4925be8c39/extra/ +``` + +</details> + +A general, non-exhaustive list of the expected artifacts of a Kubernetes build +can be found [here](https://git.k8s.io/sig-release/release-engineering/artifacts.md). + +## Marker types + +Version markers are broken into two primary types: `CI` and `release` markers + +### CI + +**GCS Bucket:** `kubernetes-release-dev` + +**Directory:** `ci` + +#### latest + +**Path:** `https://storage.googleapis.com/kubernetes-release-dev/ci/latest[-x.y].txt` + +**kubekins-e2e `extract`:** `ci/latest[-x.y].txt` + +`latest` markers reference cross builds generated via the `ci-kubernetes-build` +jobs, which run approximately every hour. + +This version marker exists for all active Kubernetes release branches. + +#### latest-fast + +**Path:** `https://storage.googleapis.com/kubernetes-release-dev/ci/latest-fast.txt` + +**kubekins-e2e `extract`:** `ci/latest-fast.txt` + +`latest-fast` markers reference linux/amd64-only builds generated via the +`ci-kubernetes-build-fast` job, which run approximately every 5 minutes. + +This version marker only exists for the `master` branch. + +#### **DEPRECATED** - generic + +**Path:** `https://storage.googleapis.com/kubernetes-release-dev/ci/k8s-<generic-version>.txt` + +**kubekins-e2e `extract`:** `ci/k8s-<generic-version>.txt` + +The following generic markers are available: + +- `k8s-master` +- `k8s-beta` +- `k8s-stable1` +- `k8s-stable2` +- `k8s-stable3` + +Generic markers reference cross builds generated via the `ci-kubernetes-build` +jobs, which run approximately every hour. + +This version marker exists for all active Kubernetes release branches. + +**Whenever possible, prefer using the latest version markers instead of +generic ones. The meaning of these markers changes throughout the release +cycles, which frequently leads to job misconfiguration and increased +difficulty in debugging failures. These generic markers only continue to exist +to prevent breakage in jobs that currently use them. They will be disabled at a +future date.** + +### Release + +**GCS Bucket:** `kubernetes-release` + +**Directory:** `release` + +#### Official + +**Path:** `https://storage.googleapis.com/kubernetes-release/release/stable-x.y.txt` + +**kubekins-e2e `extract`:** `release/stable-x.y.txt` + +`stable` markers reference cross builds generated via the official Kubernetes +releases and can only be produced by [Release Managers][release-managers]. + +This version marker exists for all active Kubernetes release branches that have +had a minor (`x.y.0`) release. + +#### Pre-release + +**Path:** `https://storage.googleapis.com/kubernetes-release/release/latest-x.y.txt` + +**kubekins-e2e `extract`:** `release/latest-x.y.txt` + +`latest` markers reference cross builds generated via the Kubernetes +pre-releases and can only be produced by [Release Managers][release-managers]. + +This version marker exists for all active Kubernetes release branches. + +## Future Plans + +(An up-to-date tracking issue for this work can be found [here](https://github.com/kubernetes/sig-release/issues/850).) + +- [x] (https://github.com/kubernetes/test-infra/pull/15564) Use explicit (`latest-x.y`) version markers in generated jobs +- [ ] (https://github.com/kubernetes/test-infra/pull/18290, https://github.com/kubernetes/release/pull/1389) Publish fast builds to separate subdirectory to prevent collisions +- [ ] (https://github.com/kubernetes/test-infra/pull/18169) Add a new `stable4` field to the kubernetes version lists in [`releng/test_config.yaml`][test_config.yaml] to remove confusion around jobs with `beta` in their name +- [ ] Refactor any non-generated jobs using generic version markers +- [ ] Refactor any config-forked release jobs using generic version markers +- [ ] Refactor any jobs using `fork-per-release-generic-suffix: "true"` annotations +- [ ] Disable usage of `fork-per-release-generic-suffix: "true"` annotations +- [ ] Rewrite the [Kubernetes versions doc](https://github.com/kubernetes/test-infra/blob/master/docs/kubernetes-versions.md) and put it in a more visible location +- [ ] Refactor [`releng/test_config.yaml`][test_config.yaml] to remove references to generic versions (e.g., prefer `ci-kubernetes-e2enode-ubuntu1-latest-1-19-gkespec` over `ci-kubernetes-e2enode-ubuntu1-k8sbeta-gkespec`) + +## Known Issues + +Unfortunately, the way certain version markers are generated and utilized can +at best be confusing, and at worst, disruptive. + +There are a variety of problems, some of which are symptoms of the other ones... + +### Generic version markers are not explicit + +We publish a set of additional generic version markers: + +- `k8s-master` +- `k8s-beta` +- `k8s-stable1` +- `k8s-stable2` +- `k8s-stable3` + +Depending on the point in the release cycle, the meaning of these markers can +change. + +- `k8s-master` always points to the version on `master`. +- `k8s-beta` may represent: + - `master`s build version (pre-branch cut) + - a to-be-released build version (post-branch cut) + - a recently released build version (post-release) + +Knowing what these markers mean at any one time presumes knowledge of the +build/release process or a correct interpretation of this document, which has +frequently out of date and lives in a low-visibility location. + +### Manually created jobs using generic version markers can be inaccurate + +Non-generated jobs using generic version markers do not get the same level of +scrutiny as ones that are generated via +[`releng/test_config.yaml`][test_config.yaml]. + +This leads to inaccuracies between the versions presumed to be used in test +and the versions that may be displayed in testgrid. + +`ci-kubernetes-e2e-gce-beta-stable1-gci-kubectl-skew` is a great example: + +https://github.com/kubernetes/test-infra/blob/96e08f4be2a86189f59c72055785f817ac346d30/config/jobs/kubernetes/sig-cli/sig-cli-config.yaml#L85-L112 + +All variants of that prowjob have landed on the `sig-release-job-config-errors` +dashboard for various misconfiguration issues that are the result of generic +version markers. + +## Previous Issues + +### linux/amd64 version markers are colliding with cross builds + +(Fixed in https://github.com/kubernetes/test-infra/pull/18290.) + +"Fast" (linux/amd64-only) builds run every 5 minutes, while cross builds run +every hour. +They also write to the same version markers (`latest.txt`, +`latest-<major>.txt`, `latest-<major>.<minor>.txt`). + +The Kubernetes build jobs have a mechanism for checking if a build already +exists and will exit early to save on test cycles. + +What this means is if a "fast" build has already happened for a commit, then +the corresponding cross build will exit without building. + +This has been happening pretty consistently lately, so cross build consumers +are using much older versions of Kubernetes than intended. + +(Note that this condition only happens on `master`.) + +### Cross builds are stored in a separate GCS bucket + +(Fixed in https://github.com/kubernetes/test-infra/pull/14030.) + +This makes long-term usage of cross builds a little more difficult, since +scripts utilizing version markers tend to consider only the version marker +filename, while the GCS bucket name remains unparameterized. + +### Generated jobs may not represent intention + +(Fixed in https://github.com/kubernetes/test-infra/pull/15564.) + +As the generic version markers can shift throughout the release cycle, every +time we regenerate jobs, they may not represent what we intend to test. + +The best examples of this are pretty much every job using the `k8s-beta` +version marker, and more specifically, skew and upgrade jobs. + +### bazel version markers appear to be unused + +(Fixed in https://github.com/kubernetes/test-infra/pull/15612.) + + +[release-managers]: https://git.k8s.io/sig-release/release-managers.md +[test_config.yaml]: https://github.com/kubernetes/test-infra/blob/master/releng/test_config.yaml diff --git a/contributors/devel/sig-testing/flaky-tests.md b/contributors/devel/sig-testing/flaky-tests.md index 0ca4e9a0..e90a6785 100644 --- a/contributors/devel/sig-testing/flaky-tests.md +++ b/contributors/devel/sig-testing/flaky-tests.md @@ -1,4 +1,4 @@ -# Flaky tests +# Flaky Tests Any test that fails occasionally is "flaky". Since our merges only proceed when all tests are green, and we have a number of different CI systems running the @@ -10,7 +10,27 @@ writing our tests defensively. When flakes are identified, we should prioritize addressing them, either by fixing them or quarantining them off the critical path. -# Avoiding Flakes +For more information about deflaking Kubernetes tests, watch @liggitt's +[presentation from Kubernetes SIG Testing - 2020-08-25](https://www.youtube.com/watch?v=Ewp8LNY_qTg). + +**Table of Contents** + +- [Flaky Tests](#flaky-tests) + - [Avoiding Flakes](#avoiding-flakes) + - [Quarantining Flakes](#quarantining-flakes) + - [Hunting Flakes](#hunting-flakes) + - [GitHub Issues for Known Flakes](#github-issues-for-known-flakes) + - [Expectations when a flaky test is assigned to you](#expectations-when-a-flaky-test-is-assigned-to-you) + - [Writing a good flake report](#writing-a-good-flake-report) + - [Deflaking unit tests](#deflaking-unit-tests) + - [Deflaking integration tests](#deflaking-integration-tests) + - [Deflaking e2e tests](#deflaking-e2e-tests) + - [Gathering information](#gathering-information) + - [Filtering and correlating information](#filtering-and-correlating-information) + - [What to look for](#what-to-look-for) + - [Hunting flaky unit tests in Kubernetes](#hunting-flaky-unit-tests-in-kubernetes) + +## Avoiding Flakes Write tests defensively. Remember that "almost never" happens all the time when tests are run thousands of times in a CI environment. Tests need to be tolerant @@ -45,7 +65,7 @@ Don't assume things will succeed after a fixed delay, but don't wait forever. - "expected 3 widgets, found 2, will retry" - "expected pod to be in state foo, currently in state bar, will retry" -# Quarantining Flakes +## Quarantining Flakes - When quarantining a presubmit test, ensure an issue exists in the current release milestone assigned to the owning SIG. The issue should be labeled @@ -63,7 +83,7 @@ Don't assume things will succeed after a fixed delay, but don't wait forever. feature. The majority of release-blocking and merge-blocking suites avoid these jobs unless they're proven to be non-flaky. -# Hunting Flakes +## Hunting Flakes We offer the following tools to aid in finding or troubleshooting flakes @@ -77,16 +97,12 @@ We offer the following tools to aid in finding or troubleshooting flakes - https://testgrid.k8s.io/presubmits-kubernetes-blocking - all merge-blocking jobs - https://testgrid.k8s.io/presubmits-kubernetes-blocking#pull-kubernetes-e2e-gce&exclude-filter-by-regex=BeforeSuite&sort-by-flakiness= - results for the pull-kubernetes-e2e-gce job sorted by flakiness - https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-default&sort-by-flakiness=&width=10 - results for the equivalent CI job -- [velodrome.k8s.io] - dashboards driven by the results of queries run against test results using bigquery - - http://velodrome.k8s.io/dashboard/db/job-health-merge-blocking?orgId=1 - includes flake rate and top flakes for merge-blocking jobs for kubernetes/kubernetes - - http://velodrome.k8s.io/dashboard/db/job-health-release-blocking?orgId=1 - includes flake rate and top flakes for release-blocking jobs for kubernetes/kubernetes - [`kind/flake` github query][flake] - open issues or PRs related to flaky jobs or tests for kubernetes/kubernetes [go.k8s.io/triage]: https://go.k8s.io/triage [testgrid.k8s.io]: https://testgrid.k8s.io -[velodrome.k8s.io]: http://velodrome.k8s.io -# GitHub Issues for Known Flakes +## GitHub Issues for Known Flakes Because flakes may be rare, it's very important that all relevant logs be discoverable from the issue. @@ -109,7 +125,7 @@ flakes is a quick way to gain expertise and community goodwill. [flake]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fflake -## Expectations when a flaky test is assigned to you +### Expectations when a flaky test is assigned to you Note that we won't randomly assign these issues to you unless you've opted in or you're part of a group that has opted in. We are more than happy to accept help @@ -144,113 +160,237 @@ release-blocking flakes. Therefore we have the following guidelines: name, which will result in the test being quarantined to only those jobs that explicitly run flakes (eg: https://testgrid.k8s.io/google-gce#gci-gce-flaky) -# Reproducing unit test flakes +### Writing a good flake report -Try the [stress command](https://godoc.org/golang.org/x/tools/cmd/stress). +If you are reporting a flake, it is important to include enough information for +others to reproduce the issue. When filing the issue, use the +[flaking test template](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Fflake&template=flaking-test.md). In +your issue, answer these following questions: -Just +- Is this flaking in multiple jobs? You can search for the flaking test or error + messages using the + [Kubernetes Aggregated Test Results](http://go.k8s.io/triage) tool. +- Are there multiple tests in the same package or suite failing with the same apparent error? -``` -$ go install golang.org/x/tools/cmd/stress -``` +In addition, be sure to include the following information: -Then build your test binary +- A link to [testgrid](https://testgrid.k8s.io/) history for the flaking test's + jobs, filtered to the relevant tests +- The failed test output — this is essential because it makes the issue searchable +- A link to the triage query +- A link to specific failures +- Be sure to tag the relevant SIG, if you know what it is. -``` -$ go test -c -race -``` +For a good example of a flaking test issue, +[check here](https://github.com/kubernetes/kubernetes/issues/93358). -Then run it under stress +([TODO](https://github.com/kubernetes/kubernetes/issues/95528): Move these instructions to the issue template.) +## Deflaking unit tests + +To get started with deflaking unit tests, you will need to first +reproduce the flaky behavior. Start with a simple attempt to just run +the flaky unit test. For example: + +```sh +go test ./pkg/kubelet/config -run TestInvalidPodFiltered ``` -$ stress ./package.test -test.run=FlakyTest + +Also make sure that you bypass the `go test` cache by using an uncachable +command line option: + +```sh +go test ./pkg/kubelet/config -count=1 -run TestInvalidPodFiltered ``` -It runs the command and writes output to `/tmp/gostress-*` files when it fails. -It periodically reports with run counts. Be careful with tests that use the -`net/http/httptest` package; they could exhaust the available ports on your -system! - -# Hunting flaky unit tests in Kubernetes - -Sometimes unit tests are flaky. This means that due to (usually) race -conditions, they will occasionally fail, even though most of the time they pass. - -We have a goal of 99.9% flake free tests. This means that there is only one -flake in one thousand runs of a test. - -Running a test 1000 times on your own machine can be tedious and time consuming. -Fortunately, there is a better way to achieve this using Kubernetes. - -_Note: these instructions are mildly hacky for now, as we get run once semantics -and logging they will get better_ - -There is a testing image `brendanburns/flake` up on the docker hub. We will use -this image to test our fix. - -Create a replication controller with the following config: - -```yaml -apiVersion: v1 -kind: ReplicationController -metadata: - name: flakecontroller -spec: - replicas: 24 - template: - metadata: - labels: - name: flake - spec: - containers: - - name: flake - image: brendanburns/flake - env: - - name: TEST_PACKAGE - value: pkg/tools - - name: REPO_SPEC - value: https://github.com/kubernetes/kubernetes +If even this is not revealing issues with the flaky test, try running with +[race detection](https://golang.org/doc/articles/race_detector.html) enabled: + +```sh +go test ./pkg/kubelet/config -race -count=1 -run TestInvalidPodFiltered ``` -Note that we omit the labels and the selector fields of the replication -controller, because they will be populated from the labels field of the pod -template by default. +Finally, you can stress test the unit test using the +[stress command](https://godoc.org/golang.org/x/tools/cmd/stress). Install it +with this command: ```sh -kubectl create -f ./controller.yaml +go get golang.org/x/tools/cmd/stress ``` -This will spin up 24 instances of the test. They will run to completion, then -exit, and the kubelet will restart them, accumulating more and more runs of the -test. +Then build your test binary: -You can examine the recent runs of the test by calling `docker ps -a` and -looking for tasks that exited with non-zero exit codes. Unfortunately, docker -ps -a only keeps around the exit status of the last 15-20 containers with the -same image, so you have to check them frequently. +```sh +go test ./pkg/kubelet/config -race -c +``` -You can use this script to automate checking for failures, assuming your cluster -is running on GCE and has four nodes: +Then run it under stress: ```sh -echo "" > output.txt -for i in {1..4}; do - echo "Checking kubernetes-node-${i}" - echo "kubernetes-node-${i}:" >> output.txt - gcloud compute ssh "kubernetes-node-${i}" --command="sudo docker ps -a" >> output.txt -done -grep "Exited ([^0])" output.txt +stress ./config.test -test.run TestInvalidPodFiltered ``` -Eventually you will have sufficient runs for your purposes. At that point you -can delete the replication controller by running: +The stress command runs the test binary repeatedly, reporting when it fails. It +will periodically report how many times it has run and how many failures have +occurred. + +You should see output like this: + +``` +411 runs so far, 0 failures +/var/folders/7f/9xt_73f12xlby0w362rgk0s400kjgb/T/go-stress-20200825T115041-341977266 +--- FAIL: TestInvalidPodFiltered (0.00s) + config_test.go:126: Expected no update in channel, Got types.PodUpdate{Pods:[]*v1.Pod{(*v1.Pod)(0xc00059e400)}, Op:1, Source:"test"} +FAIL +ERROR: exit status 1 +815 runs so far, 1 failures +``` + +Be careful with tests that use the `net/http/httptest` package; they could +exhaust the available ports on your system! + +## Deflaking integration tests + +Integration tests run similarly to unit tests, but they almost always expect a +running `etcd` instance. You should already have `etcd` installed if you have +followed the instructions in the [Development Guide](../development.md). Run +`etcd` in another shell window or tab. + +Compile your integration test using a command like this: ```sh -kubectl delete replicationcontroller flakecontroller +go test -c -race ./test/integration/endpointslice ``` -If you do a final check for flakes with `docker ps -a`, ignore tasks that -exited -1, since that's what happens when you stop the replication controller. +And then stress test the flaky test using the `stress` command: -Happy flake hunting! +```sh +stress ./endpointslice.test -test.run TestEndpointSliceMirroring +``` +For an example of a failing or flaky integration test, +[read this issue](https://github.com/kubernetes/kubernetes/issues/93496#issuecomment-678375312). + +Sometimes, but not often, a test will fail due to timeouts caused by +deadlocks. This can be tracked down by stress testing an entire package. The way +to track this down is to stress test individual tests in a package. This process +can take extra effort. Try following these steps: + +1. Run each test in the package individually to figure out the average runtime. +2. Stress each test individually, bounding the timeout to 100 times the average run time. +3. Isolate the particular test that is deadlocking. +4. Add debug output to figure out what is causing the deadlock. + +Hopefully this can help narrow down exactly where the deadlock is occurring, +revealing a simple fix! + +## Deflaking e2e tests + +A flaky [end-to-end (e2e) test](e2e-tests.md) offers its own set of +challenges. In particular, these tests are difficult because they test the +entire Kubernetes system. This can be both good and bad. It can be good because +we want the entire system to work when testing, but an e2e test can also fail +because of something completely unrelated, such as failing infrastructure or +misconfigured volumes. Be aware that you can't simply look at the title of an +e2e test to understand exactly what is being tested. If possible, look for unit +and integration tests related to the problem you are trying to solve. + +### Gathering information + +The first step in deflaking an e2e test is to gather information. We capture a +lot of information from e2e test runs, and you can use these artifacts to gather +information as to why a test is failing. + +Use the [Prow Status](https://prow.k8s.io/) tool to collect information on +specific test jobs. Drill down into a job and use the **Artifacts** tab to +collect information. For example, with +[this particular test job](https://prow.k8s.io/view/gcs/kubernetes-jenkins/pr-logs/directory/pull-kubernetes-e2e-gce/1296558932902285312), +we can collect the following: + +* `build-log.txt` +* In the control plane directory: `artifacts/e2e-171671cb3f-674b9-master/` + * `kube-apiserver-audit.log` (and rotated files) + * `kube-apiserver.log` + * `kube-controller-manager.log` + * `kube-scheduler.log` + * And more! + +The `artifacts/` directory will contain much more information. From inside the +directories for each node: +- `e2e-171671cb3f-674b9-minion-group-drkr` +- `e2e-171671cb3f-674b9-minion-group-lr2z` +- `e2e-171671cb3f-674b9-minion-group-qkkz` + +Look for these files: +* `kubelet.log` +* `docker.log` +* `kube-proxy.log` +* And so forth. + +### Filtering and correlating information + +Once you have gathered your information, the next step is to filter and +correlate the information. This can require some familiarity with the issue you are tracking +down, but look first at the relevant components, such as the test log, logs for the API +server, controller manager, and `kubelet`. + +Filter the logs to find events that happened around the time of the failure and +events that occurred in related namespaces and objects. + +The goal is to collate log entries from all of these different files so you can +get a picture of what was happening in the distributed system. This will help +you figure out exactly where the e2e test is failing. One tool that may help you +with this is [k8s-e2e-log-combiner](https://github.com/brianpursley/k8s-e2e-log-combiner) + +Kubernetes has a lot of nested systems, so sometimes log entries can refer to +events happening three levels deep. This means that line numbers in logs might +not refer to where problems and messages originate. Do not make any assumptions +about where messages are initiated! + +If you have trouble finding relevant logging information or events, don't be +afraid to add debugging output to the test. For an example of this approach, +[see this issue](https://github.com/kubernetes/kubernetes/pull/88297#issuecomment-588607417). + +### What to look for + +One of the first things to look for is if the test is assuming that something is +running synchronously when it actually runs asynchronously. For example, if the +test is kicking off a goroutine, you might need to add delays to simulate slow +operations and reproduce issues. + +Examples of the types of changes you could make to try to force a failure: + - `time.Sleep(time.Second)` at the top of a goroutine + - `time.Sleep(time.Second)` at the beginning of a watch event handler + - `time.Sleep(time.Second)` at the end of a watch event handler + - `time.Sleep(time.Second)` at the beginning of a sync loop worker + - `time.Sleep(time.Second)` at the end of a sync loop worker + +Sometimes, +[such as in this example](https://github.com/kubernetes/kubernetes/issues/93496#issuecomment-675631856), +a test might be causing a race condition with the system it is trying to +test. Investigate if the test is conflicting with an asynchronous background +process. To verify the issue, simulate the test losing the race by putting a +`time.Sleep(time.Second)` between test steps. + +If a test is assuming that an operation will happen quickly, it might not be +taking into account the configuration of a CI environment. A CI environment will +generally be more resource-constrained and will run multiple tests in +parallel. If it runs in less than a second locally, it could take a few seconds +in a CI environment. + +Unless your test is specifically testing performance/timing, don't set tight +timing tolerances. Use `wait.ForeverTestTimeout`, which is a reasonable stand-in +for operations that should not take very long. This is a better approach than +polling for 1 to 10 seconds. + +Is the test incorrectly assuming deterministic output? Remember that map iteration in go is +non-deterministic. If there is a list being compiled or a set of steps are being +performed by iterating over a map, they will not be completed in a predictable +order. Make sure the test is able to tolerate any order in a map. + +Be aware that if a test is mixing random allocation with static allocation, that +there will be intermittent conflicts. + +Finally, if you are using a fake client with a watcher, it can relist/rewatch at any point. +It is better to look for specific actions in the fake client rather than +asserting exact content of the full set. diff --git a/contributors/guide/README.md b/contributors/guide/README.md index d95b53c0..8b3a0dc5 100644 --- a/contributors/guide/README.md +++ b/contributors/guide/README.md @@ -5,100 +5,156 @@ aliases: [ "/guide" ] description: A small list of things that you should read and be familiar with before you get started with contributing. This includes such things as signing the - Contributor License Agreement, familiarizing yourself with our Code of Conduct + Contributor License Agreement, familiarizing yourself with our Code of Conduct, and more. --- -# Welcome +# Getting Started + +- [Getting Started](#getting-started) +- [Welcome](#welcome) +- [Contributor Guide](#contributor-guide) +- [Prerequisites](#prerequisites) + - [Sign the CLA](#sign-the-cla) + - [Code of Conduct](#code-of-conduct) + - [Setting Up Your Developer Environment](#setting-up-your-development-environment) + - [Community Expectations and Roles](#community-expectations-and-roles) +- [Contributor Playground](#kubernetes-contributor-playground) + - [Contributor Workshops](#contributor-workshops) +- [Community](#community) + - [Communication](#communication) + - [Events](#events) + - [Meetups](#meetups) + - [Mentorship](#mentorship) +- [Advanced Topics](#advanced-topics) + +## Welcome Have you ever wanted to contribute to the coolest cloud technology? -We will help you understand the organization of the Kubernetes project and direct you to the best places to get started. -You'll be able to pick up issues, write code to fix them, and get your work reviewed and merged. +This guide will help you understand the overall organization of the Kubernetes +project, and direct you to the best places to get started contributing. You'll +be able to pick up issues, write code to fix them, and get your work reviewed +and merged. -This document is the single source of truth for how to contribute to the code base. -Feel free to browse the [open issues](https://github.com/kubernetes/community/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%2Fcontributor-guide) and file new ones, all feedback welcome! +This document is the single source of truth for how to contribute to the code +base. Feel free to browse the [open issues] and file new ones, all feedback +is welcome! ## Contributor Guide -Welcome to Kubernetes! This guide is broken up into the following sections. -It is recommended that you follow these steps in order. +Welcome to Kubernetes! This guide is broken up into the following sections. +It is recommended that you follow these steps in order: - [Welcome](#welcome) - this page -- [Prerequisites](#prerequisites) - things you need to complete before contributing -- [Your First Contribution](first-contribution.md) - things you need to know before your first contribution -- [Contributing](contributing.md) - the main guide with contributor information +- [Prerequisites](#prerequisites) - tasks you need to complete before + you can start contributing to Kubernetes +- [Your First Contribution](./first-contribution.md) - things you'll need to know + before making your first contribution +- [Contributing](./contributing.md) - the main reference guide to contributing + to Kubernetes -## Resources Available +## Prerequisites -- [Kubernetes Contributor Playground](#kubernetes-contributor-playground) -- [Contributor Workshops](#contributor-workshops) -- [Community](#community) - - [Communication](#communication-1) - - [Events](#events) - - [Meetups](#meetups) - - [Mentorship](#mentorship) -- [Advanced Topics](#advanced-topics) - -# Prerequisites +Before submitting code to Kubernetes, you should first complete the following +prerequisites. These steps are checked automatically by [a bot] during your +first submission. Completing these steps will make your first contribution +easier: -Before submitting code to the project you should first take care of the following prerequisites. -These steps are checked by a bot during your first submission, so doing these steps first will make your first contribution easier: +### Sign the CLA -## Sign the CLA +Before you can contribute to Kubernetes, you will need to sign the +[Contributor License Agreement]. -Before you can contribute, you will need to sign the [Contributor License Agreement](/CLA.md). +### Code of Conduct -## Code of Conduct +Please make sure to read and observe the [Code of Conduct] and +[Community Values] -Please make sure to read and observe our [Code of Conduct](/code-of-conduct.md) and [Community Values](/values.md) +### Setting up your development environment -## Setting up your development environment +It is not required to set up a developer environment in order to contribute to +Kubernetes. -If you haven’t set up your environment, check the [developer resources](/contributors/devel/README.md#setting-up-your-dev-environment-coding-and-debugging). +If you plan to contribute code changes, review the [developer resources] page +for how to set up your environment. -## Community Expectations and Roles +### Community Expectations and Roles -Kubernetes is a community project. -Consequently, it is wholly dependent on its community to provide a productive, friendly and collaborative environment. +Kubernetes is a community project. Consequently, it is wholly dependent on its +community to provide a productive, friendly and collaborative environment. -- Read and review the [Community Expectations](expectations.md) for an understanding of code and review expectations. -- See [Community Membership](/community-membership.md) for a list the various responsibilities of contributor roles. You are encouraged to move up this contributor ladder as you gain experience. +- Read and review the [Community Expectations] for an + understanding of code and review expectations. +- See [Community Membership][CM] for a list the various + responsibilities of contributor roles. +- You are encouraged to move up this contributor ladder as you gain experience. -# Kubernetes Contributor Playground +## Kubernetes Contributor Playground -If you are looking for a safe place, where you can familiarize yourself with (some of) the Kubernetes Project's review and pull request processes, then the [Kubernetes Contributor Playground](https://github.com/kubernetes-sigs/contributor-playground/) is the right place for you. +If you are looking for a safe place, where you can familiarize yourself with +the pull request and issue review process in Kubernetes, then the +[Kubernetes Contributor Playground] is the right place for you. -## Contributor Workshops +### Contributor Workshops -A [Youtube playlist](https://www.youtube.com/playlist?list=PL69nYSiGNLP3M5X7stuD7N4r3uP2PZQUx) of the New Contributor workshop has been posted, and an outline of the video content can be found [here](/events/2018/05-contributor-summit). +A [Youtube playlist] of the New Contributor workshop has been posted. An +outline of the video content can be found [here]. -# Community +## Community -If you haven't noticed by now, we have a large, lively, and friendly open-source community. -We depend on new people becoming members and regular code contributors, so we would like you to come join us! -The [Community Membership Document](/community-membership.md) covers membership processes and roles. +Kubernetes is a large, lively, friendly open-source community. As many open +ource projects often do, it depends on new people becoming members and regular +code contributors. The [Community Membership Document][CM] covers membership +processes and roles. Please consider joining Kubernetes, and making your way +up the contributor ladder! -## Communication +### Communication -- [General Information](/communication) +- [General Information] relating to Kubernetes communication policies -## Events +### Events -Kubernetes participates in KubeCon + CloudNativeCon, held three times per year in China, Europe and in North America. -Information about these and other community events is available on the CNCF [events](https://www.cncf.io/events/) pages. +Kubernetes participates in KubeCon + CloudNativeCon, held three times per year +in China, Europe and in North America. Information about these and other +community events is available on the CNCF [Events] pages. ### Meetups -We follow the general [Cloud Native Computing Foundation guidelines](https://github.com/cncf/communitygroups) for Meetups. -You may also contact CNCF Staff driving the Community Groups (previously known as Meetups) program by email (meetups@cncf.io) - -## Mentorship - -Please learn about our mentoring initiatives [here](http://git.k8s.io/community/mentoring/README.md). -Feel free to ask us anything during our [Meet Our Contributors](https://github.com/kubernetes/community/blob/master/mentoring/programs/meet-our-contributors.md) to connect with us. - -# Advanced Topics - -This section includes things that need to be documented, but typical contributors do not need to interact with regularly. - -- [OWNERS files](owners.md) - The Kubernetes organizations are managed with OWNERS files, which outline which parts of the code are owned by what groups. +All Kubernetes meetups follow the general [Cloud Native Computing Foundation Guidelines] +You may also contact CNCF Staff driving the Community Groups (previously known +as Meetups) program by email (meetups@cncf.io) + +### Mentorship + +Learn more about the Kubernetes [mentoring initiatives]. Join past and present +Kubernetes Contributors for a live question-and-answer session during +[Meet Our Contributors]. + +## Advanced Topics + +This section includes things that need to be documented, but typical contributors +do not need to interact with regularly. + +- [OWNERS files] - The Kubernetes organizations are managed with OWNERS files, + which outline which parts of the code are owned by what groups. + + +[a bot]: https://github.com/k8s-ci-robot +[Contributor License Agreement]: /CLA.md +[Code of Conduct]: /code-of-conduct.md +[Community Values]: /values.md +[First Contribution]: ./first-contribution.md +[Contributing]: ./contributing.md +[Developer Resources]: /contributors/devel/README.md#setting-up-your-dev-environment-coding-and-debugging +[Community Expectations]: ./expectations.md +[CM]: /community-membership.md +[here]: /events/2019/11-contributor-summit +[General Information]: /communication +[mentoring initiatives]: /mentoring/README.md +[Meet Our Contributors]: /mentoring/programs/meet-our-contributors.md +[OWNERS files]: ./owners.md +[Cloud Native Computing Foundation Guidelines]: https://github.com/cncf/communitygroups +[Events]: https://www.cncf.io/events/ +[YouTube Playlist]: https://www.youtube.com/playlist?list=PL69nYSiGNLP3M5X7stuD7N4r3uP2PZQUx +[Kubernetes Contributor Playground]: https://github.com/kubernetes-sigs/contributor-playground/blob/master/README.md +[Open Issues]: https://github.com/kubernetes/community/issues?q=is%3Aissue+is%3Aopen+label%3Aarea%2Fcontributor-guide diff --git a/contributors/guide/contributing.md b/contributors/guide/contributing.md index 1878173c..573068da 100644 --- a/contributors/guide/contributing.md +++ b/contributors/guide/contributing.md @@ -62,7 +62,7 @@ Common new contributor PR issues are: * not having correctly signed the CLA ahead of your first PR. See the [CLA page](/CLA.md) for troubleshooting help, in some cases you might need to file a ticket with the CNCF to resolve a CLA problem. * finding the right SIG or reviewer(s) for the PR (see [Code Review](#code-review) section) and following any SIG or repository specific contributing guidelines (see [Learn about SIGs](#learn-about-sigs) section) -* dealing with test cases which fail on your PR, unrelated to the changes you introduce (see [Test Flakes](http://velodrome.k8s.io/dashboard/db/bigquery-metrics?orgId=1)) +* dealing with test cases which fail on your PR, unrelated to the changes you introduce (see [Test Flakes](/contributors/devel/sig-testing/flaky-tests.md)) * Not following [scalability good practices](scalability-good-practices.md) * Include mentions (like @person) and [keywords](https://help.github.com/en/articles/closing-issues-using-keywords) which could close the issue (like fixes #xxxx) in commit messages. diff --git a/contributors/guide/contributor-cheatsheet/README-de.md b/contributors/guide/contributor-cheatsheet/README-de.md index 4b99e707..04712a76 100644 --- a/contributors/guide/contributor-cheatsheet/README-de.md +++ b/contributors/guide/contributor-cheatsheet/README-de.md @@ -75,7 +75,6 @@ nützlicher Informationen gedacht, um deine Beitragserfahrung auf GitHub besser - [Prow] - Kubernetes CI/CD-System. - [Test Grid] - Ansicht historischer Tests und den zugehörigen Informationen. - [Triage Dashboard] - Aggregiert ähnliche Fehler zur besseren Fehlerbehandlung. -- [Velodrome] - Dashboard zur Überwachung der Job- und Testgesundheit. ### Wichtige Email-Adressen @@ -361,7 +360,6 @@ anderer Beitragenden zu überlassen, die als Reviewer und Approver für den PR z [Youtube Channel]: https://www.youtube.com/c/KubernetesCommunity/ [Triage Dashboard]: https://go.k8s.io/triage [Test Grid]: https://testgrid.k8s.io -[Velodrome]: https://go.k8s.io/test-health [Developer Statistiken]: https://k8s.devstats.cncf.io [Code of Conduct]: /code-of-conduct.md [user support requests]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README-fr.md b/contributors/guide/contributor-cheatsheet/README-fr.md index e39b26a2..f3c135f3 100644 --- a/contributors/guide/contributor-cheatsheet/README-fr.md +++ b/contributors/guide/contributor-cheatsheet/README-fr.md @@ -70,7 +70,6 @@ C'est un "TL;DR" ou une référence rapide d'informations utiles pour améliorer - [Prow] - Kubernetes CI/CD System. - [Test Grid] - Afficher les tests historiques et leurs informations associées. - [Triage Dashboard] - Regroupe les défaillances similaires pour un meilleur dépannage. -- [Velodrome] - Tableau de bord pour suivre le travail et tester la santé. ### Alias de messagerie importants @@ -301,7 +300,6 @@ Si vous ne savez pas si vous devez faire un squash de vos commits, il est préf [youtube channel]: https://www.youtube.com/c/KubernetesCommunity/ [triage dashboard]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [statistiques de développeur]: https://k8s.devstats.cncf.io [code of conduct]: /code-of-conduct.md [user support request]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README-hi.md b/contributors/guide/contributor-cheatsheet/README-hi.md index 77b78af3..95acbdf9 100644 --- a/contributors/guide/contributor-cheatsheet/README-hi.md +++ b/contributors/guide/contributor-cheatsheet/README-hi.md @@ -69,7 +69,6 @@ - [Prow] - कुबेरनेट्स CI / CD सिस्टम। - [परीक्षण ग्रिड] - ऐतिहासिक परीक्षण और उनसे जुड़ी जानकारी देखें। - [triage डैशबोर्ड] - बेहतरलिए समान विफलताओं को एक साथ समस्या निवारण केरखता है। -- [veldrome] - नौकरी और परीक्षण स्वास्थ्य को ट्रैक करने के लिए डैशबोर्ड। ### महत्वपूर्ण ईमेल उपनाम @@ -292,7 +291,6 @@ PR संशोधन का चरण। यदि आप अनिश्चि [youtube चैनल]: https://www.youtube.com/c/KubernetesCommunity/ [triage डैशबोर्ड]: https://go.k8s.io/triage [परीक्षण ग्रिड]: https://testgrid.k8s.io -[veldrome]: https://go.k8s.io/test-health [डेवलपर आँकड़े]: https://k8s.devstats.cncf.io [आचार संहिता]: /code-of-conduct.md [उपयोगकर्ता समर्थन अनुरोध]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request @@ -320,4 +318,4 @@ PR संशोधन का चरण। यदि आप अनिश्चि [डेवलपर गाइड]: /contributors/devel/README.md [Atlassian git tutorial]: https://www.atlassian.com/git/tutorials [Git magic]: http://www-cs-students.stanford.edu/~blynn/gitmagic/ -[सुरक्षा और प्रकटीकरण जानकारी]: https://kubernetes.io/docs/reference/issues-security/security/
\ No newline at end of file +[सुरक्षा और प्रकटीकरण जानकारी]: https://kubernetes.io/docs/reference/issues-security/security/ diff --git a/contributors/guide/contributor-cheatsheet/README-id.md b/contributors/guide/contributor-cheatsheet/README-id.md index 9f9ca443..3db415bc 100644 --- a/contributors/guide/contributor-cheatsheet/README-id.md +++ b/contributors/guide/contributor-cheatsheet/README-id.md @@ -76,7 +76,6 @@ di GitHub menjadi lebih baik. - [Prow] - Mekanisme CI/CD Kubernetes. - [Test Grid] - Melihat data _historical testing_ beserta informasi terkait. - [Dasbor Triase] - Melakukan agregasi _failure_ untuk mekanisme _troubleshoot_ yang lebih baik. -- [Velodrome] - Dasbor untuk melacak _job_ dan _testing_ kesehatan. ### Alamat Email Penting @@ -362,7 +361,6 @@ _squashing_ perlu dilakukan atau tidak. [youtube _channel_]: https://www.youtube.com/c/KubernetesCommunity/ [dasbor triase]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [Statistik Pengembang]: https://k8s.devstats.cncf.io [code of conduct]: /code-of-conduct.md [_user support request_]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request @@ -391,4 +389,4 @@ _squashing_ perlu dilakukan atau tidak. [Panduan _Testing_]: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/testing.md [Informasi _Security_ dan _Disclosure_]: https://kubernetes.io/docs/reference/issues-security/security/ [approve]: https://prow.k8s.io/command-help#approve -[Rilis Patch Kubernetes]: https://github.com/kubernetes/sig-release/blob/master/releases/patch-releases.md
\ No newline at end of file +[Rilis Patch Kubernetes]: https://github.com/kubernetes/sig-release/blob/master/releases/patch-releases.md diff --git a/contributors/guide/contributor-cheatsheet/README-it.md b/contributors/guide/contributor-cheatsheet/README-it.md index 100f54e9..89f3f0b2 100644 --- a/contributors/guide/contributor-cheatsheet/README-it.md +++ b/contributors/guide/contributor-cheatsheet/README-it.md @@ -76,7 +76,6 @@ condensato di informazioni utili per rendere migliore la tua esperienza di GitHu - [Prow] - Kubernetes CI/CD System. - [Test Grid] - Visualizzo lo storico dei test e tutte le informazioni associate. - [Triage Dashboard] - Aggrega problematiche simili per semplificare il troubleshooting. -- [Velodrome] - Dashboard per monitorare lo storico dei job e dei test. ### Important Email Aliases @@ -369,7 +368,6 @@ git push --force [youtube channel]: https://www.youtube.com/c/KubernetesCommunity/ [triage dashboard]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [developer statistics]: https://k8s.devstats.cncf.io [code of conduct]: /code-of-conduct.md [user support requests]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README-ja.md b/contributors/guide/contributor-cheatsheet/README-ja.md index 376ab019..0cd5265c 100644 --- a/contributors/guide/contributor-cheatsheet/README-ja.md +++ b/contributors/guide/contributor-cheatsheet/README-ja.md @@ -70,7 +70,6 @@ Kubernetesにコントリビュートする際のtipsや、Kubernetesプロジ - [Prow] - KubernetesのCI/CDシステム - [Test Grid] - 歴史的なテストや関連した情報を見る - [Triageダッシュボード] - よりよくトラブルシューティングをするために、似たような失敗をまとめる -- [Velodrome] - ジョブやテスト結果を追跡するためのダッシュボード ### 重要なEメールエイリアス @@ -309,7 +308,6 @@ git checkout -b myfeature [youtubeチャンネル]: https://www.youtube.com/c/KubernetesCommunity/ [triageダッシュボード]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [開発者統計]: https://k8s.devstats.cncf.io [code of conduct]: /code-of-conduct.md [ユーザーによるサポート要求]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README-ko.md b/contributors/guide/contributor-cheatsheet/README-ko.md index a6c1c4f8..1b58e40c 100644 --- a/contributors/guide/contributor-cheatsheet/README-ko.md +++ b/contributors/guide/contributor-cheatsheet/README-ko.md @@ -79,7 +79,6 @@ - [테스트 그리드] - 테스트 기록과 관련된 정보 확인 - [Triage 대시보드] - 더 나은 문제 해결을 위해 유사한 오류를 수집 -- [Velodrome] - 작업과 테스트 상태를 추적하는 대시보드 ### 중요한 이메일 별칭 @@ -367,7 +366,6 @@ PR을 검토하고 승인하도록 지정된 다른 참여자의 판단에 맡 [YouTube 채널]: https://www.youtube.com/c/KubernetesCommunity/ [triage 대시보드]: https://go.k8s.io/triage [테스트 그리드]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [개발자 통계]: https://k8s.devstats.cncf.io [행동 강령]: /code-of-conduct.md [사용자 지원 요청]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README-pt.md b/contributors/guide/contributor-cheatsheet/README-pt.md index 55faf4b0..0ef11db7 100644 --- a/contributors/guide/contributor-cheatsheet/README-pt.md +++ b/contributors/guide/contributor-cheatsheet/README-pt.md @@ -73,7 +73,6 @@ Melhor. - [Prow] - Kubernetes CI/CD System. - [Test Grid] - Veja o histórico de testes e suas informações associadas. - [Dashboard de Triagem] - Junta falhas semelhantes para melhor solução de problemas. -- [Velodrome] - Dashboard para rastrear jobs e testar a estabilidade. ### E-mails-Importantes @@ -348,7 +347,6 @@ fase de uma revisão do PR. Se você não tem certeza se deve efetuar o squashin [youtube]: https://www.youtube.com/c/KubernetesCommunity/ [Dashboard de Triagem]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [Estatísticas do Desenvolvedor]: https://k8s.devstats.cncf.io [Código de Conduta]: /code-of-conduct.md [solicitações de suporte ao usuário]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README-uk.md b/contributors/guide/contributor-cheatsheet/README-uk.md index 74c239bd..52ae06b1 100644 --- a/contributors/guide/contributor-cheatsheet/README-uk.md +++ b/contributors/guide/contributor-cheatsheet/README-uk.md @@ -70,7 +70,6 @@ - [Prow] - Kubernetes CI/CD система. - [Test Grid] - Перегляд історії тестів та дотичної до них інформації. - [Triage Dashboard] - Агрегування схожих помилок для їх кращого виправлення. -- [Velodrome] - Дашборд для відстеження статусу виконання задач і тестів. ### Важливі поштові адреси @@ -294,7 +293,6 @@ git checkout -b myfeature [youtube канал]: https://www.youtube.com/c/KubernetesCommunity/ [triage dashboard]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [developer statistics]: https://k8s.devstats.cncf.io [Кодексом поведінки Спільноти]: /code-of-conduct.md [підтримки користувачів]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README-zh.md b/contributors/guide/contributor-cheatsheet/README-zh.md index 8d83ee52..10aab189 100644 --- a/contributors/guide/contributor-cheatsheet/README-zh.md +++ b/contributors/guide/contributor-cheatsheet/README-zh.md @@ -70,7 +70,6 @@ - [Prow] - Kubernetes CI/CD 系统 - [Test Grid] - 查看过往的测试以及相关信息 - [Triage 仪表盘] - 把相似的失败聚合在一起以便排除故障 -- [Velodrome] - 追踪任务和测试健康度的仪表盘 ### 重要的 Email 地址 @@ -299,7 +298,6 @@ git checkout -b myfeature [YouTube 频道]: https://www.youtube.com/c/KubernetesCommunity/ [triage 仪表盘]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [开发者统计]: https://k8s.devstats.cncf.io [行为守则]: /code-of-conduct.md [用户支持请求]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/contributor-cheatsheet/README.md b/contributors/guide/contributor-cheatsheet/README.md index 19b6148c..e1722f2e 100644 --- a/contributors/guide/contributor-cheatsheet/README.md +++ b/contributors/guide/contributor-cheatsheet/README.md @@ -93,7 +93,6 @@ better. - [Test Grid] - View historical tests and their associated information. - [Triage Dashboard] - Aggregates similar failures together for better troubleshooting. -- [Velodrome] - Dashboard to track job and test health. ### Important Email Aliases @@ -394,7 +393,6 @@ git push --force [youtube channel]: https://www.youtube.com/c/KubernetesCommunity/ [triage dashboard]: https://go.k8s.io/triage [test grid]: https://testgrid.k8s.io -[velodrome]: https://go.k8s.io/test-health [developer statistics]: https://k8s.devstats.cncf.io [code of conduct]: /code-of-conduct.md [user support requests]: /contributors/guide/issue-triage.md#determine-if-its-a-support-request diff --git a/contributors/guide/first-contribution.md b/contributors/guide/first-contribution.md index 0126367e..5abae4c9 100644 --- a/contributors/guide/first-contribution.md +++ b/contributors/guide/first-contribution.md @@ -19,70 +19,98 @@ description: | ## Find something to work on -Help is always welcome! For example, documentation (like the text you are reading now) can always use improvement. -There's always code that can be clarified and variables or functions that can be renamed or commented. -There's always a need for more test coverage. -You get the idea - if you ever see something you think should be fixed, you should own it. -Here is how you get started. -If you have no idea what to start on, you can browse the [Contributor Role Board](https://discuss.kubernetes.io/c/contributors/role-board) to see who is looking for help. -Those interested in contributing without writing code may also find ideas in the [Non-Code Contributions Guide](non-code-contributions.md). +The first step to getting starting contributing to Kubernetes is to find something +to work on. Help is always welcome, and no contribution is too small! + +Here are some things you can do today to get started contributing: + +* Help improve the Kubernetes documentation +* Clarify code, variables, or functions that can be renamed or commented on +* Write test coverage +* Help triage issues + +If the above suggestions don't appeal to you, you can browse the +[Contributor Role Board] to see who is looking for help. Those interested +in contributing without writing code can also find ideas in the +[Non-Code Contributions Guide]. ### Find a good first topic -There are [multiple repositories](https://github.com/kubernetes/) within the Kubernetes organization. -Each repository has beginner-friendly issues that provide a good first issue. -For example, [kubernetes/kubernetes](https://git.k8s.io/kubernetes) has [help wanted](https://go.k8s.io/help-wanted) and [good first issue](https://go.k8s.io/good-first-issue) labels for issues that should not need deep knowledge of the system. -The `good first issue` label indicates that members have committed to providing [extra assistance](/contributors/guide/help-wanted.md) for new contributors. +There are [multiple repositories] within the Kubernetes organization. +Each repository has beginner-friendly issues that are a great place to +get started on your contributor journey. For example, [kubernetes/kubernetes] has +[help wanted] and [good first issue] labels for issues that don't need high-level +Kubernetes knowledge to contribute to. The `good first issue` label also indicates +that Kubernetes Members have committed to providing [extra assistance] for new +contributors. Another way to get started is to find a documentation improvement, +such as a missing/broken link, which will give you exposure to the code +submission/review process without the added complication of technical depth. -Another good strategy is to find a documentation improvement, such as a missing/broken link, which will give you exposure to the code submission/review process without the added complication of technical depth. Please see [Contributing](#contributing) below for the workflow. +### Issue Assignment in Github -#### Issue Assignment in Github +When you've found an issue to work on, you can assign it to yourself. -When you are willing to take on an issue, you can assign it to yourself. Just reply with `/assign` or `/assign @yourself` on an issue, -then the robot will assign the issue to you and your name will present at `Assignees` list. +* Reply with `/assign` or `/assign @yourself` on the issue you'd like to work on +* The [K8s-ci-robot] will automatically assign the issue to you. +* Your your name will then be listed under, `Assignees`. -### Learn about SIGs +## Learn about SIGs -You may have noticed that some repositories in the Kubernetes Organization are owned by [Special Interest Groups](/sig-list.md), or SIGs. -We organize the community into SIGs in order to improve our workflow and more easily manage what is a very large community project. -The developers within each SIG have autonomy and ownership over that SIG's part of Kubernetes. Check out the [list of SIGs](/sig-list.md) for contact information. +Some repositories in the Kubernetes Organization are owned by +[Special Interest Groups], or SIGs. -Understanding how to interact with SIGs is an important part of contributing. +The Kubernetes community is broken out into SIGs in order to improve its workflow, +and more easily manage what is a very large community project. The developers +within each SIG have autonomy and ownership over that SIG's part of Kubernetes. +Understanding how to interact with SIGs is an important part of contributing +to Kubernetes. Check out the [list of SIGs][sl] for contact information. -#### SIG structure +### SIG structure A SIG is an open, community effort. -Anybody is welcome to jump into a SIG and begin fixing issues, critiquing design proposals and reviewing code. -SIGs have regular [video meetings](https://kubernetes.io/community/) which everyone is welcome to. -Each SIG has a slack channel, meeting notes, and their own documentation that is useful to read and understand. -There is an entire SIG ([sig-contributor-experience](/sig-contributor-experience/README.md)) devoted to improving your experience as a contributor. -Contributing to Kubernetes should be easy. -If you find a rough edge, let us know! Better yet, help us fix it by joining the SIG; just -show up to one of the [bi-weekly meetings](https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit). +Anybody is welcome to jump into a SIG and begin fixing issues, critiqe design +proposals, and review code. SIGs have regular [video meetings] which everyone +is welcome to attend. Each SIG has a Slack channel, meeting notes, and their own +documentation that is useful to read and understand. There is an entire SIG +([sig-contributor-experience]) devoted to improving your experience as a contributor. +If you have an idea for improving the contributor experience, please consider +attending one of the Contributor Experience SIG's [weekly meetings]. -#### Find a SIG that is related to your contribution +### Find a SIG that is related to your contribution -Finding the appropriate SIG for your contribution and adding a SIG label will help you ask questions in the correct place and give your contribution higher visibility and a faster community response. +Finding the appropriate SIG for your contribution and adding a SIG label will +help you ask questions in the correct place and give your contribution higher +visibility and a faster community response. -For Pull Requests, the automatically assigned reviewer will add a SIG label if you haven't done so. See [Open A Pull Request](#open-a-pull-request) below. +For Pull Requests, the automatically assigned reviewer will add a SIG label +if you haven't already done so. -For Issues, we are still working on a more automated workflow. -Since SIGs do not directly map onto Kubernetes subrepositories, it may be difficult to find which SIG your contribution belongs in. -Here is the [list of SIGs](/sig-list.md) so that you can determine which is most likely related to your contribution. +For Issues, please note that the community is working on a more automated workflow. +Since SIGs do not directly map onto Kubernetes subrepositories, it may be +difficult to find which SIG your contribution belongs in. Review the +[list of SIGs][sl] to determine which SIG is most likely related to your +contribution. -*Example:* if you are filing a CNI issue (that's [Container Networking Interface](https://github.com/containernetworking/cni)), you should choose the [Network SIG](http://git.k8s.io/community/sig-network). Add the SIG label in a comment like so: +*Example:* if you are filing a CNI issue (that's [Container Networking Interface]) +you'd choose the [Network SIG]. Add the SIG label in a new comment on GitHub +by typing the following: ``` /sig network ``` -Follow the link in the SIG name column to reach each SIGs README. -Most SIGs will have a set of GitHub Teams with tags that can be mentioned in a comment on issues and pull requests for higher visibility. -If you are not sure about the correct SIG for an issue, you can try SIG-contributor-experience [here](/sig-contributor-experience#github-teams), or [ask in Slack](http://slack.k8s.io/). +Follow the link in the SIG name column to reach each SIG'ss README. + +Most SIGs will have a set of GitHub Teams with tags that can be mentioned in a +comment on issues and pull requests for higher visibility. If you are not sure +about the correct SIG for an issue, you can try [SIG-contributor-experience], +or [ask in Slack]. ### SIG-specific contributing guidelines -Some SIGs have their own `CONTRIBUTING.md` files, which may contain extra information or guidelines in addition to these general ones. -These are located in the SIG-specific community directories: + +Some SIGs have their own `CONTRIBUTING.md` files, which may contain extra information +or guidelines in addition to these general ones. These are located in the SIG-specific +community directories: - [`/sig-apps/CONTRIBUTING.md`](/sig-apps/CONTRIBUTING.md) - [`/sig-cli/CONTRIBUTING.md`](/sig-cli/CONTRIBUTING.md) @@ -93,10 +121,33 @@ These are located in the SIG-specific community directories: ### File an Issue Not ready to contribute code, but see something that needs work? -While the community encourages everyone to contribute code, it is also appreciated when someone reports an issue (aka problem). -Issues should be filed under the appropriate Kubernetes subrepository. -Check the [issue triage guide](./issue-triage.md) for more information. +While the community encourages everyone to contribute code, it is also appreciated +when someone reports an issue. Issues should be filed under the appropriate Kubernetes +subrepository. For example, a documentation issue should be opened in +[kubernetes/website]. Make sure to adhere to the prompted submission guidelines +while opening an issue. Check the [issue triage guide] for more information. + +[Contributor Role Board]: https://discuss.kubernetes.io/c/contributors/role-board +[k8s-ci-robot]: https://github.com/k8s-ci-robot +[Non-Code Contributions Guide]: ./non-code-contributions.md +[multiple repositories]: https://github.com/kubernetes/ +[kubernetes/kubernetes]: https://git.k8s.io/kubernetes +[help wanted]: https://go.k8s.io/help-wanted +[good first issue]: https://go.k8s.io/good-first-issue +[extra assistance]:./help-wanted.md +[sl]: /sig-list.md +[video meetings]: https://kubernetes.io/community/ +[sig-contributor-experience]: /sig-contributor-experience/README.md +[weekly meetings]: https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit +[container networking interface]: https://github.com/containernetworking/cni +[network SIG]: http://git.k8s.io/community/sig-network +[ask in Slack]: http://slack.k8s.io/ +[issue triage guide]: ./issue-triage.md +[kubernetes/website]: https://github.com/kubernetes/website/issues +[SIG Contributor Experience]: /sig-contributor-experience#contact + + + + -*Example:* a documentation issue should be opened to [kubernetes/website](https://github.com/kubernetes/website/issues). -Make sure to adhere to the prompted submission guidelines while opening an issue.
\ No newline at end of file diff --git a/contributors/guide/issue-triage.md b/contributors/guide/issue-triage.md index 2e0c1071..9152c7d5 100644 --- a/contributors/guide/issue-triage.md +++ b/contributors/guide/issue-triage.md @@ -153,7 +153,7 @@ Use [these labels](https://github.com/kubernetes/kubernetes/labels?utf8=%E2%9C%9 Depending on your permissions, either close or comment on any issues that are identified as support requests, duplicates, or not-reproducible bugs, or that lack enough information from the reporter. ### Support Requests -Some people mistakenly use GitHub issues to file support requests. Usually they're asking for help configuring some aspect of Kubernetes. To handle such an issue, direct the author to use our [support request channels](#support-requests-channels). Then apply the `triage/support` label, which is directed to our support structures, and apply the `close` label. +Some people mistakenly use GitHub issues to file support requests. Usually they're asking for help configuring some aspect of Kubernetes. To handle such an issue, direct the author to use our [support request channels](#support-requests-channels). Then apply the `kind/support` label, which is directed to our support structures, and apply the `close` label. Please find more detailed information about Support Requests in the [Footnotes section](#footnotes). diff --git a/events/office-hours.md b/events/office-hours.md index ba78e9bf..645d3fb1 100644 --- a/events/office-hours.md +++ b/events/office-hours.md @@ -22,7 +22,7 @@ Kubernetes, or to just passively learn by following along. Third Wednesday of every month, there are two sessions: - European Edition: [9am ET] -- Western Edition: [9am PT] +- Western Edition: [5pm PT] Tune into the [Kubernetes YouTube Channel] to follow along. @@ -170,7 +170,7 @@ more than welcome to pull up a chair and hang out. [YouTube channel]: https://www.youtube.com/c/KubernetesCommunity/ [9am ET]: http://www.thetimezoneconverter.com/?t=09:00&tz=ET%20%28Eastern%20Time%29 -[9am PT]: http://www.thetimezoneconverter.com/?t=12:00&tz=ET%20%28Eastern%20Time%29 +[5pm PT]: http://www.thetimezoneconverter.com/?t=17:00&&tz=PT%20(Pacific%20Time) [Kubernetes YouTube Channel]: https://www.youtube.com/c/KubernetesCommunity/live [#office-hours channel]: https://kubernetes.slack.com/messages/office-hours [discuss.kubernetes.io]: https://discuss.kubernetes.io diff --git a/github-management/README.md b/github-management/README.md index 8ccb566b..ba5024e2 100644 --- a/github-management/README.md +++ b/github-management/README.md @@ -72,7 +72,6 @@ project | [kubernetes](https://github.com/kubernetes) | Core | | [kubernetes-client](https://github.com/kubernetes-client) | API Client Libraries | | [kubernetes-csi](https://github.com/kubernetes-csi) | Container Storage Interface Components | -| [kubernetes-incubator](https://github.com/kubernetes-incubator) | Legacy Incubator Projects | | [kubernetes-retired](https://github.com/kubernetes-retired) | Retired/Archived Projects | | [kubernetes-security](https://github.com/kubernetes-security) | Private Security Fix Mirror | | [kubernetes-sigs](https://github.com/kubernetes-sigs) | SIG-related Projects | @@ -86,6 +85,7 @@ project | [kubernetes-extensions](https://github.com/kubernetes-extensions) | | | [kubernetes-federation](https://github.com/kubernetes-federation) | | | [kubernetes-graveyard](https://github.com/kubernetes-graveyard) | kubernetes-retired should be used instead going forward | +| [kubernetes-incubator](https://github.com/kubernetes-incubator) | Earlier used for legacy incubator projects | | [kubernetes-incubator-retired](https://github.com/kubernetes-incubator-retired) | kubernetes-retired should be used instead going forward | | [kubernetes-providers](https://github.com/kubernetes-providers) | | | [kubernetes-sidecars](https://github.com/kubernetes-sidecars) | | diff --git a/github-management/kubernetes-repositories.md b/github-management/kubernetes-repositories.md index c6b074f4..bcc43210 100644 --- a/github-management/kubernetes-repositories.md +++ b/github-management/kubernetes-repositories.md @@ -101,6 +101,8 @@ the developers who could not be reached * Additions of [the standard Kubernetes header](https://git.k8s.io/kubernetes/hack/boilerplate/boilerplate.go.txt) to code created by the contributors can occur post-transfer, but should ideally occur shortly thereafter. + * Should contain template files as per the + [kubernetes-template-project](https://github.com/kubernetes/kubernetes-template-project). Note that copyright notices should only be modified or removed by the people or organizations named in the notice. See [the FAQ below](#faq) for more information @@ -164,25 +166,6 @@ circumstances (e.g. a code of conduct violation). ## FAQ -**My project is currently in kubernetes-incubator, what is going to happen to -it?** - -Nothing. We’ll grandfather existing projects and they can stay in the incubator -org for as long as they want to. We expect/hope that most projects will either -move out to ecosystem, or into SIG or Core repositories following the same -approval process described below. - -**My project wants to graduate from incubator, how can it do that?** - -Either approval from a SIG to graduate to a SIG repository, or approval from -SIG-Architecture to graduate into the core repository. - -**My incubator project wants to go GA, how can it do that?** - -For now, the project determines if and when it is GA. For the future, we may -define a cross Kubernetes notion of GA for core and sig repositories, but that’s -not in this proposal. - **My project is currently in core, but doesn’t seem to fit these guidelines, what’s going to happen?** diff --git a/github-management/new-membership-procedure.md b/github-management/new-membership-procedure.md index f48f1df0..ce844d1c 100644 --- a/github-management/new-membership-procedure.md +++ b/github-management/new-membership-procedure.md @@ -47,7 +47,7 @@ required to be eligible to sponsor a new member. These requirements are: - Sponsors must be a member of the org they are attempting to sponsor for. - For example, if the membership being requested is for kubernetes-incubator, + For example, if the membership being requested is for kubernetes-sigs, then the sponsor should be a member of either that org, or main Kubernetes org (as members of the main org have implicit membership in other orgs). diff --git a/github-management/org-owners-guide.md b/github-management/org-owners-guide.md index 272c7cea..ea284b52 100644 --- a/github-management/org-owners-guide.md +++ b/github-management/org-owners-guide.md @@ -75,9 +75,6 @@ for all orgs going forward. Notable discrepancies at the moment: `kubernetes-sig-foo-pr-reviews` teams and are intended mostly as a fallback notification mechanism when requested reviewers are being unresponsive. Ideally OWNERS files can be used in lieu of these teams. -- `admins-foo` and `maintainers-foo` teams as used by the kubernetes-incubator - org. This was a mistake that swapped the usual convention, and we would like - to rename the team ### Structure and Process diff --git a/sig-apps/README.md b/sig-apps/README.md index 728689f1..1c7a45b4 100644 --- a/sig-apps/README.md +++ b/sig-apps/README.md @@ -13,7 +13,7 @@ Covers deploying and operating applications in Kubernetes. We focus on the devel The [charter](charter.md) defines the scope and governance of the Apps Special Interest Group. ## Meetings -* Regular SIG Meeting: [Mondays at 9:00 PT (Pacific Time)](https://zoom.us/j/739385290) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9:00&tz=PT%20%28Pacific%20Time%29). +* Regular SIG Meeting: [Mondays at 9:00 PT (Pacific Time)](https://zoom.us/j/739385290?pwd=ekVmNGRjT214MGJkY1JUUUpPMVlJUT09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9:00&tz=PT%20%28Pacific%20Time%29). * [Meeting notes and Agenda](https://docs.google.com/document/d/1LZLBGW2wRDwAfdBNHJjFfk9CFoyZPcIYGWU7R1PQ3ng/edit#). * [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP2LMq7vznITnpd2Fk1YIZF3). diff --git a/sig-architecture/README.md b/sig-architecture/README.md index 7219d6a7..e6c145c2 100644 --- a/sig-architecture/README.md +++ b/sig-architecture/README.md @@ -63,7 +63,9 @@ The following [subprojects][subproject-definition] are owned by sig-architecture ### code-organization [Described below](#code-organization) - **Owners:** + - https://raw.githubusercontent.com/kubernetes/component-helpers/master/OWNERS - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/OWNERS + - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/component-helpers/OWNERS - https://raw.githubusercontent.com/kubernetes/kubernetes/master/third_party/OWNERS - https://raw.githubusercontent.com/kubernetes/kubernetes/master/vendor/OWNERS - https://raw.githubusercontent.com/kubernetes/utils/master/OWNERS diff --git a/sig-auth/README.md b/sig-auth/README.md index ac9578b2..379a46a2 100644 --- a/sig-auth/README.md +++ b/sig-auth/README.md @@ -26,7 +26,7 @@ The Chairs of the SIG run operations and processes governing the SIG. * Mo Khan (**[@enj](https://github.com/enj)**), VMware * Mike Danese (**[@mikedanese](https://github.com/mikedanese)**), Google -* Tim Allclair (**[@tallclair](https://github.com/tallclair)**), Google +* Tim Allclair (**[@tallclair](https://github.com/tallclair)**), Apple ### Technical Leads The Technical Leads of the SIG establish new subprojects, decommission existing diff --git a/sig-cli/README.md b/sig-cli/README.md index 0c327bab..6feaf711 100644 --- a/sig-cli/README.md +++ b/sig-cli/README.md @@ -13,6 +13,9 @@ Covers kubectl and related tools. We focus on the development and standardizatio The [charter](charter.md) defines the scope and governance of the CLI Special Interest Group. ## Meetings +* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29). + * [Meeting notes and Agenda](https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit?usp=sharing). + * [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF). * Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29). * [Meeting notes and Agenda](https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit?usp=sharing). * [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF). diff --git a/sig-cluster-lifecycle/README.md b/sig-cluster-lifecycle/README.md index 21c0995d..6369a28a 100644 --- a/sig-cluster-lifecycle/README.md +++ b/sig-cluster-lifecycle/README.md @@ -103,6 +103,9 @@ The following [subprojects][subproject-definition] are owned by sig-cluster-life ### cluster-api-provider-ibmcloud - **Owners:** - https://raw.githubusercontent.com/kubernetes-sigs/cluster-api-provider-ibmcloud/master/OWNERS +### cluster-api-provider-nested +- **Owners:** + - https://raw.githubusercontent.com/kubernetes-sigs/cluster-api-provider-nested/master/OWNERS ### cluster-api-provider-openstack - **Owners:** - https://raw.githubusercontent.com/kubernetes-sigs/cluster-api-provider-openstack/master/OWNERS @@ -139,11 +142,6 @@ The following [subprojects][subproject-definition] are owned by sig-cluster-life - **Meetings:** - kops Office Hours: [Fridays at 09:00 PT (Pacific Time)](https://zoom.us/j/97072789944?pwd=VVlUR3dhN2h5TEFQZHZTVVd4SnJUdz09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT%20%28Pacific%20Time%29). - [Meeting notes and Agenda](https://docs.google.com/document/d/12QkyL0FkNbWPcLFxxRGSPt_tNPBHbmni3YLY-lHny7E/edit). -### kube-aws -- **Owners:** - - https://raw.githubusercontent.com/kubernetes-incubator/kube-aws/master/OWNERS -- **Contact:** - - Slack: [#kube-aws](https://kubernetes.slack.com/messages/kube-aws) ### kube-up - **Owners:** - https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/OWNERS diff --git a/sig-contributor-experience/README.md b/sig-contributor-experience/README.md index 34291ed8..c9e5b836 100644 --- a/sig-contributor-experience/README.md +++ b/sig-contributor-experience/README.md @@ -13,8 +13,8 @@ Developing and sustaining a healthy community of contributors is critical to sca The [charter](charter.md) defines the scope and governance of the Contributor Experience Special Interest Group. ## Meetings -* Regular SIG Meeting: [Wednesdays at 9:30 PT (Pacific Time)](https://zoom.us/j/397264241) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9:30&tz=PT%20%28Pacific%20Time%29). - * [Meeting notes and Agenda](https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/). +* Regular SIG Meeting: [Wednesdays at 9:30 PT (Pacific Time)](https://zoom.us/j/397264241?pwd=bHNnZVArNFdPaWVJMmttdko0Sktudz09) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=9:30&tz=PT%20%28Pacific%20Time%29). + * [Meeting notes and Agenda](https://docs.google.com/document/d/1CBz8qV_mD6rbDmTsMuosTOQGRXGhN3d8UrcULUI6Vkw/edit). * [Meeting recordings](https://www.youtube.com/watch?v=EMGUdOKwSns&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr). ## Leadership @@ -62,10 +62,10 @@ Manages operations and policy for upstream community group communication platfor - https://raw.githubusercontent.com/kubernetes-sigs/discuss-theme/master/OWNERS - https://raw.githubusercontent.com/kubernetes/community/master/communication/OWNERS - **Meetings:** - - APAC Coordinator Meeting: [Thursdays at 5:00 UTC](https://zoom.us/j/144440337) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=5:00&tz=UTC). + - APAC Coordinator Meeting: [Thursdays at 5:00 UTC](https://zoom.us/j/144440337?pwd=VEVBejdPYkE2MGdUSDZZZnVlNFdrdz09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=5:00&tz=UTC). - [Meeting notes and Agenda](https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/). - [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr). - - Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time)](https://zoom.us/j/596959769) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=8:00&tz=PT%20%28Pacific%20Time%29). + - Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time)](https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=8:00&tz=PT%20%28Pacific%20Time%29). - [Meeting notes and Agenda](https://docs.google.com/document/d/1KDoqbw2A6W7rLSbIRuOlqH8gkoOnp2IHHuV9KyJDD2c/edit). - [Meeting recordings](https://www.youtube.com/watch?v=EMGUdOKwSns&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr). ### contributors-documentation @@ -86,9 +86,6 @@ Creates and runs contributor-focused events, such as the Contributor Summit. Ev - **Contact:** - Slack: [#events](https://kubernetes.slack.com/messages/events) - **Meetings:** - - Events Planning Subproject: [Mondays at 10:00 PT (Pacific Time)](https://zoom.us/j/702991595) (weekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=10:00&tz=PT%20%28Pacific%20Time%29). - - [Meeting notes and Agenda](https://docs.google.com/document/d/1oLXv5_rM4f645jlXym_Vd7AUq7x6DV-O87E6tcW1sjU/edit). - - [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP3SLsQMQT8Pglu1JSmxZwgk). - Office Hours European Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 09:00 ET (Eastern Time)](https://hackmd.io/@k8s/office-hours) (monthly on 3rd Wednesday). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=ET%20%28Eastern%20Time%29). - Office Hours Western Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 12:00 ET (Eastern Time)]() (monthly on 3rd Wednesday). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=12:00&tz=ET%20%28Eastern%20Time%29). - [Meeting notes and Agenda](https://hackmd.io/@k8s/office-hours). @@ -106,7 +103,7 @@ Manages and controls Github permissions, repos, and groups, including Org Member - **Contact:** - Slack: [#github-management](https://kubernetes.slack.com/messages/github-management) - **Meetings:** - - GitHub Administration Subproject: [Thursdays at 09:30 PT (Pacific Time)](https://zoom.us/j/442435463) (monthly on 4th Thursday). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:30&tz=PT%20%28Pacific%20Time%29). + - GitHub Administration Subproject: [Thursdays at 09:30 PT (Pacific Time)](https://zoom.us/j/442435463?pwd=Rk1PWWpSSTJDaWJKdzRYb2EyTlkvZz09) (Monthly on 4th Thursday). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:30&tz=PT%20%28Pacific%20Time%29). - [Meeting notes and Agenda](https://docs.google.com/document/d/1IiVrr1hcFWmbboExk971FsMUGfr2Wp68mdMribCuzLs/edit). - [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr). ### k8s.io @@ -119,15 +116,9 @@ Oversees and develops programs for helping contributors ascend the contributor l - https://raw.githubusercontent.com/kubernetes-sigs/contributor-playground/master/OWNERS - https://raw.githubusercontent.com/kubernetes/community/master/mentoring/OWNERS - **Meetings:** - - New Contributor Workshop Development Meeting: [Mondays at 4:00 PT](https://zoom.us/j/95894431386) (Biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=4:00&tz=PT). + - Mentoring Subproject Meeting (NA/APAC): [Mondays at 4:00 PT](https://zoom.us/j/95894431386?pwd=RFdmQzlZeVZDVWJzcFVXZXR5djNwUT09) (Biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=4:00&tz=PT). - [Meeting notes and Agenda](https://docs.google.com/document/d/1XiXjDWCc087VKqX2b6LMGRnlaRyLYGh2-eWQQr6dAmc/edit). - [Meeting recordings](https://www.youtube.com/watch?v=Cqf9dIiS6Ig&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr). - - sig-contribex mentoring subproject meeting (APAC Friendly Time): [Mondays at 20:30 PT](https://zoom.us/j/94884623370) (2nd and 4th Tuesday of each month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=20:30&tz=PT). - - [Meeting notes and Agenda](https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit#heading=h.o9thwxp2o68r). - - [Meeting recordings](https://www.youtube.com/watch?v=Cqf9dIiS6Ig&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr). - - sig-contribex mentoring subproject meeting (EU/NA Friendly Time): [Tuesdays at 08:30 PT](https://zoom.us/j/98162537924) (2nd and 4th Tuesday of each month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=08:30&tz=PT). - - [Meeting notes and Agenda](https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit#heading=h.o9thwxp2o68r). - - [Meeting recordings](https://www.youtube.com/watch?v=Cqf9dIiS6Ig&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr). ### slack-infra Creates and maintains tools and automation for Kubernetes Slack. - **Owners:** diff --git a/sig-contributor-experience/charter.md b/sig-contributor-experience/charter.md index f68ef745..b8fb42ae 100644 --- a/sig-contributor-experience/charter.md +++ b/sig-contributor-experience/charter.md @@ -25,7 +25,7 @@ We do this by listening - whether it’s through our roadshows to SIG meetings, - They are expected to escalate to the project's code of conduct committee when issues rise above the level of simple moderation - Work with other SIGs and interested parties in the project to execute GitHub tasks where required, see [GitHub Management] for more detail - Own and execute events that are targeted to the Kubernetes contributor community, including: - - The weekly [Kubernetes Community meeting] + - [Kubernetes Community meeting] - [Contributor Summit(s)] - [Steering Committee elections] (though we do not own policy creation, see 'out of scope' below) - Retrospective moderation for other SIGs upon request @@ -63,7 +63,7 @@ We cross-cut all SIGs and WGs to deliver the following processes: - [kubernetes-sig-contribex@]googlegroups.com - sig-leads@googlegroups.com - [kubernetes-dev@]googlegroups.com with the GitHub issue link including the subject [NOTICE]: $announcement - - We will also announce it at the weekly Kubernetes Community Meeting on Thursdays + - We will also announce it at the Kubernetes Community Meeting - Depending on how wide of an ecosystem change this is, we may also slack, blog, tweet, and use other channels to get the word out. - Our standard time box is 72 business hours; however, there may be situations where we need to act quickly but the time period will always be clear and upfront. - Encourage automation to improve productivity for contributors where it makes sense and consult with SIG Testing if automation is covering GitHub workflows. @@ -128,7 +128,7 @@ Chairs and Technical Leads [CNCF]: https://cncf.io [GitHub issues]: https://github.com/kubernetes/community/issues [project list]: https://github.com/orgs/kubernetes/projects/1 -[Kubernetes Community meeting]: https://git.k8s.io/community/communication#weekly-meeting +[Kubernetes Community meeting]: https://docs.google.com/document/d/1VQDIAB0OqiSjIHI8AWMvSdceWhnz56jNpZrLs6o7NJY/edit [mentoring programs]: https://git.k8s.io/community/mentoring [Steering Committee elections]: https://git.k8s.io/community/events/elections [Slack]: https://git.k8s.io/community/communication/slack-guidelines.md diff --git a/sig-contributor-experience/surveys/2019/README.md b/sig-contributor-experience/surveys/2019/README.md index 226aafa2..61ce5edb 100644 --- a/sig-contributor-experience/surveys/2019/README.md +++ b/sig-contributor-experience/surveys/2019/README.md @@ -50,7 +50,7 @@ survey_data = prepare_2019.get_df( ) ``` - + The high spike seen on 1/13/20 aligns with the time when the survey was publicized on Twitter. To consider the potential effects of this, we examine how the response rate varied by various demographic information. @@ -103,7 +103,7 @@ response_rates = response_rates.assign( ``` - + The survey was advertised on Twitter, and two groups had the largest number of disproportionate responses. Those responses came from either contributors working on their membership, or users that have been contributing less than a year. The largest group is users that fall into both categories. @@ -119,7 +119,7 @@ The survey was advertised on Twitter, and two groups had the largest number of d ``` - + @@ -136,7 +136,7 @@ The survey was advertised on Twitter, and two groups had the largest number of d ``` - + ```python @@ -151,7 +151,7 @@ The survey was advertised on Twitter, and two groups had the largest number of d ) ``` - + @@ -181,7 +181,7 @@ In the following sections, we look at the rest of the demographic variables indi ``` - + ```python @@ -202,7 +202,7 @@ In the following sections, we look at the rest of the demographic variables indi ``` - + @@ -221,7 +221,7 @@ In the following sections, we look at the rest of the demographic variables indi ``` - + @@ -245,7 +245,7 @@ In the following sections, we look at the rest of the demographic variables indi ``` - + @@ -266,7 +266,7 @@ In the following sections, we look at the rest of the demographic variables indi ``` - + @@ -283,7 +283,7 @@ employer_support ``` - + @@ -820,7 +820,7 @@ The following plots use offset stacked bar charts, showing the overall rankings ``` - + @@ -849,7 +849,7 @@ Mentoring is the most important project, with very few respondents rating it neg ``` - + @@ -878,7 +878,7 @@ It is reasonable to expect that different roles in Kubernetes may value differen ``` - + @@ -907,7 +907,7 @@ Similarly to contributor roles, the interest in the next level does not appear t ``` - + @@ -942,7 +942,7 @@ blocker_ratings = list( ``` - + @@ -967,7 +967,7 @@ The most frequent blocker across all contributors is debugging test failures, fo ``` - + @@ -992,7 +992,7 @@ When we look at blockers, by the length of the contributor, we can see that cont ``` - + @@ -1020,7 +1020,7 @@ When it comes to debugging, it is less of an issue for new contributors, most li ``` - + @@ -1044,7 +1044,7 @@ Looking at contributors that have trouble finding issues to work on there is a c ``` - + @@ -1070,7 +1070,7 @@ When we segment the contributors by level, we again see that debugging test fail ``` - + @@ -1095,7 +1095,7 @@ This in-depth view confirms that debugging test failures is an issue across all ``` - + @@ -1118,7 +1118,7 @@ When we look at the spread of blockers across interest in the next level, we see ``` - + @@ -1151,7 +1151,7 @@ survey_data.loc[:, "Check_for_news:_@kubernetesio_twitter"] = survey_data[ ``` - + @@ -1180,7 +1180,7 @@ Contributors who use Twitter as their primary source of news, about Kubernetes, ``` - + @@ -1205,7 +1205,7 @@ survey_data.loc[:,'Check_for_news:_@kubernetesio_twitter'] = survey_data[ ``` - + @@ -1229,7 +1229,7 @@ Most contributors are getting their news primarily from the official dev mailing ``` - + @@ -1255,7 +1255,7 @@ Looking across each level of the contributor ladder, most levels display the sam ``` - + @@ -1285,7 +1285,7 @@ Because of the large increase in responses after the survey was advertised on Tw ``` - + @@ -1310,7 +1310,7 @@ Of users who get their news primarily through Twitter, most are members, or thos ``` - + @@ -1336,7 +1336,7 @@ Many contributors, who use Twitter as their primary news source, have been contr ``` - + @@ -1360,7 +1360,7 @@ Of the contributors that rely on the k/community GitHub page, there are relative ``` - + s @@ -1387,7 +1387,7 @@ The distribution of contributors by their levels is an interesting mix, showing ``` - + @@ -1405,7 +1405,7 @@ The above plot shows the proportion of users in each bucket created by the two-w ``` - + @@ -1423,7 +1423,7 @@ contributions are being made in other repositories. Most of these are still unde ``` - + @@ -1447,7 +1447,7 @@ When we exclude first year users, the pattern remains mostly the same, with Docu ``` - + @@ -1471,7 +1471,7 @@ The contribution areas vary by the user level on the ladder, with those working ``` - + @@ -1499,7 +1499,7 @@ Looking at contribution areas by length of time contributing, it is clear that t ``` - + @@ -1527,7 +1527,7 @@ Contributors with employer support are more likely to contribute to the main rep ``` - + @@ -1560,7 +1560,7 @@ use_ratings.reverse() ``` - + @@ -1588,7 +1588,7 @@ Among all contributors, Slack and GitHub are the most frequently used resources, ) ``` - + @@ -1616,7 +1616,7 @@ When segmenting out the resource use by contribution length, the pattern stays r ) ``` - + @@ -1643,7 +1643,7 @@ The use of resources, across interest in the next level, shows only one major di + p9.theme(strip_text_y=p9.element_text(margin={"r": 0.8, "units": "in"})) ) ``` - + @@ -1670,7 +1670,7 @@ The level of the contributor on the ladder shows a large difference between thos ) ``` - + @@ -1704,7 +1704,7 @@ The largest group not using Google Groups are those who do not know that there i ) ) ``` - + @@ -1730,7 +1730,7 @@ The use of Google Drive, which is primarily used for administrative tasks, incre ``` - + @@ -1754,7 +1754,7 @@ There is a slight tendency that the longer the contributor is involved in the pr ``` - + @@ -1795,7 +1795,7 @@ help_plot ``` - + @@ -1816,7 +1816,7 @@ A majority of users, across all demographics, make use of the Help Wanted and Go ``` - + @@ -1852,7 +1852,7 @@ The relative proportions of contributors who use the labels does not change with ``` - + @@ -1876,7 +1876,7 @@ The plot above shows that these labels are especially helpful for those who are ``` - + @@ -1911,7 +1911,7 @@ mentoring_plot ``` - + @@ -1933,7 +1933,7 @@ Most contributors feel that they do not have enough experience to mentor others, ) ``` - + @@ -1958,7 +1958,7 @@ A majority of those who already mentor, as well as those who are interested in m ``` - + @@ -1984,7 +1984,7 @@ moc_plot ``` - + @@ -2017,7 +2017,7 @@ Across all contributors, most do not know about the existence of Meet our Contri ``` - + @@ -2041,7 +2041,7 @@ Among all contributors who are interested in the next level of the ladder, most ``` - + @@ -2077,7 +2077,7 @@ In the next series of plots, we analyze only those contributors who do not know ``` - + @@ -2114,7 +2114,7 @@ Across all levels of the contributor ladder, many who are interested in the next ``` - + @@ -2152,7 +2152,7 @@ The plot above shows that a majority of those unaware, have not been contributor ``` - + @@ -2187,7 +2187,7 @@ The plot above shows that MoC is found useful by those who watch it. This is the ``` - + @@ -2205,7 +2205,7 @@ The majority of those who found MoC useful are contributors who are working towa ``` - + @@ -2229,7 +2229,7 @@ The primary reason contributors don't attend Thursday meetings is that they have ``` - + @@ -2251,7 +2251,7 @@ Across contributor levels, the dominant reason for their attendance would be "fe ``` - + @@ -2302,7 +2302,7 @@ reason_for_not_going = ( reason_for_not_going ``` - + @@ -2342,7 +2342,7 @@ unattendance_contrib = unattendance_contrib.assign( ``` - + @@ -2368,7 +2368,7 @@ unattendance_level = unattendance_level.assign(percent = unattendance_level.Resp ``` - + @@ -2409,7 +2409,7 @@ unattendance_support = unattendance_support.assign( ``` - + @@ -2428,7 +2428,7 @@ agree_ratings = ["Strongly Disgree", "Disagree", "Neutral", "Agree", "Strongly A ``` - + @@ -2448,7 +2448,7 @@ Overall, the plot above displays the proportions one would hope to see. Many con ``` - + diff --git a/sig-contributor-experience/surveys/2019/images/README_113_0.png b/sig-contributor-experience/surveys/2019/images/README_113_0.png Binary files differnew file mode 100644 index 00000000..725141ea --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_113_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_115_0.png b/sig-contributor-experience/surveys/2019/images/README_115_0.png Binary files differnew file mode 100644 index 00000000..c80bf8fb --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_115_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_117_0.png b/sig-contributor-experience/surveys/2019/images/README_117_0.png Binary files differnew file mode 100644 index 00000000..e59962ab --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_117_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_119_0.png b/sig-contributor-experience/surveys/2019/images/README_119_0.png Binary files differnew file mode 100644 index 00000000..756d325e --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_119_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_123_0.png b/sig-contributor-experience/surveys/2019/images/README_123_0.png Binary files differnew file mode 100644 index 00000000..a7250653 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_123_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_127_0.png b/sig-contributor-experience/surveys/2019/images/README_127_0.png Binary files differnew file mode 100644 index 00000000..fd5f7da4 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_127_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_131_0.png b/sig-contributor-experience/surveys/2019/images/README_131_0.png Binary files differnew file mode 100644 index 00000000..43daa53e --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_131_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_133_0.png b/sig-contributor-experience/surveys/2019/images/README_133_0.png Binary files differnew file mode 100644 index 00000000..0d6037e6 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_133_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_135_0.png b/sig-contributor-experience/surveys/2019/images/README_135_0.png Binary files differnew file mode 100644 index 00000000..5ebd644c --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_135_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_137_0.png b/sig-contributor-experience/surveys/2019/images/README_137_0.png Binary files differnew file mode 100644 index 00000000..cddf6e7d --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_137_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_139_0.png b/sig-contributor-experience/surveys/2019/images/README_139_0.png Binary files differnew file mode 100644 index 00000000..2600d2b1 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_139_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_141_0.png b/sig-contributor-experience/surveys/2019/images/README_141_0.png Binary files differnew file mode 100644 index 00000000..90a3662e --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_141_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_143_0.png b/sig-contributor-experience/surveys/2019/images/README_143_0.png Binary files differnew file mode 100644 index 00000000..9b2ee7bf --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_143_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_146_0.png b/sig-contributor-experience/surveys/2019/images/README_146_0.png Binary files differnew file mode 100644 index 00000000..bec7ff3c --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_146_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_148_0.png b/sig-contributor-experience/surveys/2019/images/README_148_0.png Binary files differnew file mode 100644 index 00000000..f7d24faa --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_148_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_166_0.png b/sig-contributor-experience/surveys/2019/images/README_166_0.png Binary files differnew file mode 100644 index 00000000..4dd8ed0b --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_166_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_50_0.png b/sig-contributor-experience/surveys/2019/images/README_50_0.png Binary files differnew file mode 100644 index 00000000..990b8422 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_50_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_52_0.png b/sig-contributor-experience/surveys/2019/images/README_52_0.png Binary files differnew file mode 100644 index 00000000..34f2ab7c --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_52_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_54_0.png b/sig-contributor-experience/surveys/2019/images/README_54_0.png Binary files differnew file mode 100644 index 00000000..65a90560 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_54_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_59_0.png b/sig-contributor-experience/surveys/2019/images/README_59_0.png Binary files differnew file mode 100644 index 00000000..975d8bf7 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_59_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_62_0.png b/sig-contributor-experience/surveys/2019/images/README_62_0.png Binary files differnew file mode 100644 index 00000000..7d568bf6 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_62_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_66_0.png b/sig-contributor-experience/surveys/2019/images/README_66_0.png Binary files differnew file mode 100644 index 00000000..34d08d8f --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_66_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_70_0.png b/sig-contributor-experience/surveys/2019/images/README_70_0.png Binary files differnew file mode 100644 index 00000000..17b28df1 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_70_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_72_0.png b/sig-contributor-experience/surveys/2019/images/README_72_0.png Binary files differnew file mode 100644 index 00000000..e93f41cf --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_72_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_75_0.png b/sig-contributor-experience/surveys/2019/images/README_75_0.png Binary files differnew file mode 100644 index 00000000..38a46e4f --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_75_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_77_0.png b/sig-contributor-experience/surveys/2019/images/README_77_0.png Binary files differnew file mode 100644 index 00000000..7fdd14b4 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_77_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_79_0.png b/sig-contributor-experience/surveys/2019/images/README_79_0.png Binary files differnew file mode 100644 index 00000000..b8f0991b --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_79_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_82_0.png b/sig-contributor-experience/surveys/2019/images/README_82_0.png Binary files differnew file mode 100644 index 00000000..c77c169a --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_82_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_84_0.png b/sig-contributor-experience/surveys/2019/images/README_84_0.png Binary files differnew file mode 100644 index 00000000..cc52a72e --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_84_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_86_0.png b/sig-contributor-experience/surveys/2019/images/README_86_0.png Binary files differnew file mode 100644 index 00000000..cf1a4571 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_86_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_88_0.png b/sig-contributor-experience/surveys/2019/images/README_88_0.png Binary files differnew file mode 100644 index 00000000..0acd80fa --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_88_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_90_0.png b/sig-contributor-experience/surveys/2019/images/README_90_0.png Binary files differnew file mode 100644 index 00000000..8f310687 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_90_0.png diff --git a/sig-contributor-experience/surveys/2019/images/README_92_0.png b/sig-contributor-experience/surveys/2019/images/README_92_0.png Binary files differnew file mode 100644 index 00000000..7959b742 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/README_92_0.png diff --git a/sig-contributor-experience/surveys/2019/images/blockers.png b/sig-contributor-experience/surveys/2019/images/blockers.png Binary files differnew file mode 100644 index 00000000..4ce02b66 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/blockers.png diff --git a/sig-contributor-experience/surveys/2019/images/channel-freq-contribladderint.png b/sig-contributor-experience/surveys/2019/images/channel-freq-contribladderint.png Binary files differnew file mode 100644 index 00000000..ea9d992e --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/channel-freq-contribladderint.png diff --git a/sig-contributor-experience/surveys/2019/images/channel-freq-contriblength.png b/sig-contributor-experience/surveys/2019/images/channel-freq-contriblength.png Binary files differnew file mode 100644 index 00000000..ab397688 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/channel-freq-contriblength.png diff --git a/sig-contributor-experience/surveys/2019/images/channel-freq-contriblvl.png b/sig-contributor-experience/surveys/2019/images/channel-freq-contriblvl.png Binary files differnew file mode 100644 index 00000000..91d37bcc --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/channel-freq-contriblvl.png diff --git a/sig-contributor-experience/surveys/2019/images/channel-frequency.png b/sig-contributor-experience/surveys/2019/images/channel-frequency.png Binary files differnew file mode 100644 index 00000000..8e5a155d --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/channel-frequency.png diff --git a/sig-contributor-experience/surveys/2019/images/commmtg-contriblength.png b/sig-contributor-experience/surveys/2019/images/commmtg-contriblength.png Binary files differnew file mode 100644 index 00000000..0b5cbf22 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/commmtg-contriblength.png diff --git a/sig-contributor-experience/surveys/2019/images/contriblength-contriblvl-linechart.png b/sig-contributor-experience/surveys/2019/images/contriblength-contriblvl-linechart.png Binary files differnew file mode 100644 index 00000000..553b369d --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/contriblength-contriblvl-linechart.png diff --git a/sig-contributor-experience/surveys/2019/images/contriblength.png b/sig-contributor-experience/surveys/2019/images/contriblength.png Binary files differnew file mode 100644 index 00000000..2418bed2 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/contriblength.png diff --git a/sig-contributor-experience/surveys/2019/images/contriblvlint.png b/sig-contributor-experience/surveys/2019/images/contriblvlint.png Binary files differnew file mode 100644 index 00000000..92273181 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/contriblvlint.png diff --git a/sig-contributor-experience/surveys/2019/images/contribnews-contriblvl.png b/sig-contributor-experience/surveys/2019/images/contribnews-contriblvl.png Binary files differnew file mode 100644 index 00000000..b02958b6 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/contribnews-contriblvl.png diff --git a/sig-contributor-experience/surveys/2019/images/contribnxtlvl.png b/sig-contributor-experience/surveys/2019/images/contribnxtlvl.png Binary files differnew file mode 100644 index 00000000..4d049e09 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/contribnxtlvl.png diff --git a/sig-contributor-experience/surveys/2019/images/contribregions.png b/sig-contributor-experience/surveys/2019/images/contribregions.png Binary files differnew file mode 100644 index 00000000..21ffe3a9 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/contribregions.png diff --git a/sig-contributor-experience/surveys/2019/images/emplsupport.png b/sig-contributor-experience/surveys/2019/images/emplsupport.png Binary files differnew file mode 100644 index 00000000..847e1048 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/emplsupport.png diff --git a/sig-contributor-experience/surveys/2019/images/gsocoutreachyint-compmentorsupport.png b/sig-contributor-experience/surveys/2019/images/gsocoutreachyint-compmentorsupport.png Binary files differnew file mode 100644 index 00000000..742e8b91 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/gsocoutreachyint-compmentorsupport.png diff --git a/sig-contributor-experience/surveys/2019/images/infrastatements.png b/sig-contributor-experience/surveys/2019/images/infrastatements.png Binary files differnew file mode 100644 index 00000000..76bb2876 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/infrastatements.png diff --git a/sig-contributor-experience/surveys/2019/images/mailinglistfreq-contriblength.png b/sig-contributor-experience/surveys/2019/images/mailinglistfreq-contriblength.png Binary files differnew file mode 100644 index 00000000..20a31786 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/mailinglistfreq-contriblength.png diff --git a/sig-contributor-experience/surveys/2019/images/mailinglistfreq-contriblvl.png b/sig-contributor-experience/surveys/2019/images/mailinglistfreq-contriblvl.png Binary files differnew file mode 100644 index 00000000..533180b2 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/mailinglistfreq-contriblvl.png diff --git a/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblength.png b/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblength.png Binary files differnew file mode 100644 index 00000000..38c7820f --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblength.png diff --git a/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblvl.png b/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblvl.png Binary files differnew file mode 100644 index 00000000..98fbcd71 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblvl.png diff --git a/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblvlint.png b/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblvlint.png Binary files differnew file mode 100644 index 00000000..5c88a850 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/mostimpproj-contriblvlint.png diff --git a/sig-contributor-experience/surveys/2019/images/nosummit-contriblength.png b/sig-contributor-experience/surveys/2019/images/nosummit-contriblength.png Binary files differnew file mode 100644 index 00000000..6bf92487 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/nosummit-contriblength.png diff --git a/sig-contributor-experience/surveys/2019/images/nosummit-contriblvl.png b/sig-contributor-experience/surveys/2019/images/nosummit-contriblvl.png Binary files differnew file mode 100644 index 00000000..5b9001bb --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/nosummit-contriblvl.png diff --git a/sig-contributor-experience/surveys/2019/images/nosummit-empsupport.png b/sig-contributor-experience/surveys/2019/images/nosummit-empsupport.png Binary files differnew file mode 100644 index 00000000..a8961a46 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/nosummit-empsupport.png diff --git a/sig-contributor-experience/surveys/2019/images/nosummit.png b/sig-contributor-experience/surveys/2019/images/nosummit.png Binary files differnew file mode 100644 index 00000000..e5e8e881 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/nosummit.png diff --git a/sig-contributor-experience/surveys/2019/images/otherossproj.png b/sig-contributor-experience/surveys/2019/images/otherossproj.png Binary files differnew file mode 100644 index 00000000..4c4e81b7 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/otherossproj.png diff --git a/sig-contributor-experience/surveys/2019/images/respbyday-contriblength-noofrepos.png b/sig-contributor-experience/surveys/2019/images/respbyday-contriblength-noofrepos.png Binary files differnew file mode 100644 index 00000000..5257326a --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/respbyday-contriblength-noofrepos.png diff --git a/sig-contributor-experience/surveys/2019/images/respbyday-intnxtlvl-noofrepos.png b/sig-contributor-experience/surveys/2019/images/respbyday-intnxtlvl-noofrepos.png Binary files differnew file mode 100644 index 00000000..4e28f44b --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/respbyday-intnxtlvl-noofrepos.png diff --git a/sig-contributor-experience/surveys/2019/images/respbyday-levelofcontrib-noofrepos.png b/sig-contributor-experience/surveys/2019/images/respbyday-levelofcontrib-noofrepos.png Binary files differnew file mode 100644 index 00000000..9b2e639d --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/respbyday-levelofcontrib-noofrepos.png diff --git a/sig-contributor-experience/surveys/2019/images/respbyday.png b/sig-contributor-experience/surveys/2019/images/respbyday.png Binary files differnew file mode 100644 index 00000000..dce9cefc --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/respbyday.png diff --git a/sig-contributor-experience/surveys/2019/images/testfailures-twitter.png b/sig-contributor-experience/surveys/2019/images/testfailures-twitter.png Binary files differnew file mode 100644 index 00000000..ec982dcf --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/testfailures-twitter.png diff --git a/sig-contributor-experience/surveys/2019/images/youtube-contriblvlint.png b/sig-contributor-experience/surveys/2019/images/youtube-contriblvlint.png Binary files differnew file mode 100644 index 00000000..61d82570 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/youtube-contriblvlint.png diff --git a/sig-contributor-experience/surveys/2019/images/youtubefreq-contriblength.png b/sig-contributor-experience/surveys/2019/images/youtubefreq-contriblength.png Binary files differnew file mode 100644 index 00000000..4d940ad0 --- /dev/null +++ b/sig-contributor-experience/surveys/2019/images/youtubefreq-contriblength.png diff --git a/sig-docs/README.md b/sig-docs/README.md index b5569c08..b8a2b904 100644 --- a/sig-docs/README.md +++ b/sig-docs/README.md @@ -19,6 +19,9 @@ The [charter](charter.md) defines the scope and governance of the Docs Special I * Korean Team Meeting: [Thursdays at 13:00 UTC](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=13:00&tz=UTC). * [Meeting notes and Agenda](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit). * [Meeting recordings](https://www.youtube.com/playlist?list=PLAOP7m08QDCWZ7RwGca6cU4vzrOMw3ht7). +* Localization Subgroup Meeting: [Mondays at 15:00 UTC](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/) (monthly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=15:00&tz=UTC). + * [Meeting notes and Agenda](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/). + * [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8). * Regular SIG Meeting: [Tuesdays at 17:30 UTC](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit) (weekly - except fourth Tuesday every month). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=17:30&tz=UTC). * [Meeting notes and Agenda](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit). * [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8). diff --git a/sig-instrumentation/charter.md b/sig-instrumentation/charter.md index 2de868be..45602991 100644 --- a/sig-instrumentation/charter.md +++ b/sig-instrumentation/charter.md @@ -28,8 +28,8 @@ APIs). [List of subprojects](https://github.com/kubernetes/community/tree/master/sig-instrumentation#subprojects) -- Components required for any Kubernetes cluster in regards to observability. Also referred to as the [core metrics pipeline][core-metrics-pipeline], meaning metrics that are to be consumed by the scheduler, kubectl and autoscaling. ([kubernetes-incubator/metrics-server](https://github.com/kubernetes-incubator/metrics-server), [kubernetes/heapster](https://github.com/kubernetes/heapster)) -- Interfaces/API definitions required for any Kubernetes cluster in regards to observability. These the APIs defined in order to interface external system (such as Prometheus, Stackdriver, etc.) to be exposed to Kubernetes as a common interface, in order for Kubernetes to be able to treat metric sources as a generic metrics API. ([kubernetes/metrics](https://github.com/kubernetes/metrics), [kubernetes-incubator/custom-metrics-apiserver](https://github.com/kubernetes-incubator/custom-metrics-apiserver)) +- Components required for any Kubernetes cluster in regards to observability. Also referred to as the [core metrics pipeline][core-metrics-pipeline], meaning metrics that are to be consumed by the scheduler, kubectl and autoscaling. ([kubernetes-sigs/metrics-server](https://github.com/kubernetes-sigs/metrics-server), [kubernetes/heapster](https://github.com/kubernetes/heapster)) +- Interfaces/API definitions required for any Kubernetes cluster in regards to observability. These the APIs defined in order to interface external system (such as Prometheus, Stackdriver, etc.) to be exposed to Kubernetes as a common interface, in order for Kubernetes to be able to treat metric sources as a generic metrics API. ([kubernetes/metrics](https://github.com/kubernetes/metrics), [kubernetes-sigs/custom-metrics-apiserver](https://github.com/kubernetes-sigs/custom-metrics-apiserver)) - Well established but optional components or adapters for Kubernetes clusters, if endorsed by members. Each component must have two or more members as maintainers. ([kubernetes/kube-state-metrics](https://github.com/kubernetes/kube-state-metrics), not yet officially owned by SIG-Instrumentation, but an example prospect for this category: [DirectXMan12/k8s-prometheus-adapter](https://github.com/DirectXMan12/k8s-prometheus-adapter)) #### Cross-cutting and Externally Facing Processes diff --git a/sig-list.md b/sig-list.md index b642fa12..c345ed67 100644 --- a/sig-list.md +++ b/sig-list.md @@ -23,15 +23,15 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md) | Name | Label | Chairs | Contact | Meetings | |------|-------|--------|---------|----------| |[API Machinery](sig-api-machinery/README.md)|api-machinery|* [David Eads](https://github.com/deads2k), Red Hat<br>* [Federico Bongiovanni](https://github.com/fedebongio), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-api-machinery)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-api-machinery)|* Kubebuilder and Controller Runtime Meeting: [Thursdays at 09:00 PT (Pacific Time) (biweekly)]()<br>* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/apimachinery)<br> -|[Apps](sig-apps/README.md)|apps|* [Janet Kuo](https://github.com/janetkuo), Google<br>* [Kenneth Owens](https://github.com/kow3ns), Brex<br>* [Matt Farina](https://github.com/mattfarina), Rancher Labs<br>* [Adnan Abdulhussein](https://github.com/prydonius), Brex<br>|* [Slack](https://kubernetes.slack.com/messages/sig-apps)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-apps)|* Regular SIG Meeting: [Mondays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/739385290)<br> +|[Apps](sig-apps/README.md)|apps|* [Janet Kuo](https://github.com/janetkuo), Google<br>* [Kenneth Owens](https://github.com/kow3ns), Brex<br>* [Matt Farina](https://github.com/mattfarina), Rancher Labs<br>* [Adnan Abdulhussein](https://github.com/prydonius), Brex<br>|* [Slack](https://kubernetes.slack.com/messages/sig-apps)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-apps)|* Regular SIG Meeting: [Mondays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/739385290?pwd=ekVmNGRjT214MGJkY1JUUUpPMVlJUT09)<br> |[Architecture](sig-architecture/README.md)|architecture|* [Derek Carr](https://github.com/derekwaynecarr), Red Hat<br>* [Davanum Srinivas](https://github.com/dims), VMware<br>* [John Belamaric](https://github.com/johnbelamaric), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-architecture)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture)|* Enhancements Subproject Meeting: [Tuesdays at 8:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/95357819945)<br>* Production Readiness Office Hours: [Wednesdays at 12:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/482444151)<br>* Regular SIG Meeting: [Thursdays at 19:00 UTC (biweekly)](https://zoom.us/j/845605479)<br>* code organization Office Hours: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/159990793)<br>* conformance office Hours: [Tuesdays at 19:00 UTC (biweekly)](https://zoom.us/j/427337923)<br> -|[Auth](sig-auth/README.md)|auth|* [Mo Khan](https://github.com/enj), VMware<br>* [Mike Danese](https://github.com/mikedanese), Google<br>* [Tim Allclair](https://github.com/tallclair), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-auth)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-auth)|* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/264572674)<br> +|[Auth](sig-auth/README.md)|auth|* [Mo Khan](https://github.com/enj), VMware<br>* [Mike Danese](https://github.com/mikedanese), Google<br>* [Tim Allclair](https://github.com/tallclair), Apple<br>|* [Slack](https://kubernetes.slack.com/messages/sig-auth)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-auth)|* Regular SIG Meeting: [Wednesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/264572674)<br> |[Autoscaling](sig-autoscaling/README.md)|autoscaling|* [Guy Templeton](https://github.com/gjtempleton), Skyscanner<br>* [Marcin Wielgus](https://github.com/mwielgus), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-autoscaling)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-autoscaling)|* Regular SIG Meeting: [Mondays at 14:00 UTC (biweekly/triweekly)](https://zoom.us/j/944410904)<br> -|[CLI](sig-cli/README.md)|cli|* [Sean Sullivan](https://github.com/seans3), Google<br>* [Maciej Szulik](https://github.com/soltysh), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cli)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cli)|* Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br> +|[CLI](sig-cli/README.md)|cli|* [Sean Sullivan](https://github.com/seans3), Google<br>* [Maciej Szulik](https://github.com/soltysh), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cli)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cli)|* Bug Scrub: [Wednesdays at 09:00 PT (Pacific Time) (monthly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br>* Regular SIG Meeting: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09)<br> |[Cloud Provider](sig-cloud-provider/README.md)|cloud-provider|* [Andrew Sy Kim](https://github.com/andrewsykim), VMware<br>* [Walter Fender](https://github.com/cheftako), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cloud-provider)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cloud-provider)|* Regular SIG Meeting: [Wednesdays at 13:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/508079177?pwd=ZmEvMksxdTFTc0N1eXFLRm91QUlyUT09)<br>* (cloud-provider-extraction-migration) Weekly Sync removing the in-tree cloud providers led by @cheftako and @mcrute: [Thursdays at 13:30 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1KLsGGzNXQbsPeELCeF_q-f0h0CEGSe20xiwvcR2NlYM/edit)<br>* (provider-alibaba-cloud) Regular Alibaba Cloud Subproject Meeting: [Tuesdays at 12:00 UTC (monthly 2020 start date: Jan. 7th)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)<br>* (provider-aws) Regular AWS Subproject Meeting: [Fridays at 9:00 PT (Pacific Time) (biweekly 2019 start date: Jan. 11th)](https://zoom.us/my/k8ssigaws)<br>* (provider-azure) Azure Subproject Meeting (biweekly): [Mondays at 18:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/586836662)<br>* (provider-gcp) Regular GCP Subproject Meeting: [Thursdays at 16:00 UTC (biweekly)](https://docs.google.com/document/d/1FQx0BPlkkl1Bn0c9ocVBxYIKojpmrS1CFP5h0DI68AE/edit)<br>* (provider-ibmcloud) Regular IBM Subproject Meeting: [Wednesdays at 14:00 EST (biweekly)](https://zoom.us/j/9392903494)<br>* (provider-openstack) Regular OpenStack Subproject Meeting: [Wednesdays at 08:00 PT (Pacific Time) (biweekly starting Wednesday March 20, 2019)](https://docs.google.com/document/d/1bW3j4hFN4D8rv2LFv-DybB3gcE5ISAaOO_OpvDCgrGg/edit)<br>* (provider-vsphere) Cloud Provider vSphere monthly syncup: [Wednesdays at 09:00 PT (Pacific Time) (monthly - first Wednesday every month)](https://zoom.us/j/584244729)<br> |[Cluster Lifecycle](sig-cluster-lifecycle/README.md)|cluster-lifecycle|* [Justin Santa Barbara](https://github.com/justinsb), Google<br>* [Lubomir Ivanov](https://github.com/neolit123), VMware<br>* [Timothy St. Clair](https://github.com/timothysc), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-cluster-lifecycle)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle)|* Regular SIG Meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/916523531?pwd=eVhPNU5IQWtBYWhmT1N4T0V6bHZFZz09)<br>* Regular SIG Meeting in China: [Tuesdays at 20:00 Beijing (biweekly)](https://zoom.us/j/179916854?pwd=dzRhbjFnRGVQRDVUVHY1a29JV2JxUT09)<br>* (cluster-addons) Cluster Addons meeting: [Tuesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/130096731?pwd=U3pzWloxZ0lpbEtadTZGSERRdENrZz09)<br>* (cluster-api) Cluster API office hours: [Wednesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/861487554?pwd=dTVGVVFCblFJc0VBbkFqQlU0dHpiUT09)<br>* (cluster-api-provider-aws) Cluster API (AWS implementation) office hours: [Mondays at 10:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/423312508?pwd=Tk9OWnZ4WHg2T2xRek9xZXA1eFQ4dz09)<br>* (cluster-api-provider-azure) Cluster API Provider Azure office hours: [Thursdays at 08:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/566930821?pwd=N2JuRWljc3hGS3ZnVlBLTk42TFlzQT09)<br>* (cluster-api-provider-digitalocean) Cluster API Provider DigitalOcean office hours: [Thursdays at 09:00 PT (Pacific Time) (monthly, second Thursday of the month)](https://zoom.us/j/91312171751?pwd=bndnMDdJMkhySDVncjZoR1VhdFBTZz09)<br>* (cluster-api-provider-vsphere) Cluster API vSphere meeting: [Thursdays at 10:00 PT (Pacific Time) (biweekly starting Thursday June 25th, 2020)](https://zoom.us/j/92253194848?pwd=cVVVNDMxeTl1QVJPUlpvLzNSVU1JZz09)<br>* (etcdadm) etcdadm Office Hours: [Mondays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/612375927?pwd=MldxRnRSOExCVW1rbjM4ZzBSc3MvUT09)<br>* (image-builder) Image Builder office hours: [Thursdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/807524571?pwd=WEFTeDJzeWU3bVFkcWQ0UEdZRkRCdz09)<br>* (kops) kops Office Hours: [Fridays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97072789944?pwd=VVlUR3dhN2h5TEFQZHZTVVd4SnJUdz09)<br>* (kubeadm) kubeadm Office Hours: [Wednesdays at 09:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/179916854?pwd=dzRhbjFnRGVQRDVUVHY1a29JV2JxUT09)<br>* (kubespray) Kubespray Office Hours: [Wednesdays at 08:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/532465189?pwd=THMvL2MzdjZXWG55eHpJMkU2dkI1dz09)<br>* (minikube) minikube office hours: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97017029363?pwd=U3MvZ3pMMHM5eWorSjgzUnd5OEFtUT09)<br> -|[Contributor Experience](sig-contributor-experience/README.md)|contributor-experience|* [Jorge Castro](https://github.com/castrojo), VMware<br>* [Bob Killen](https://github.com/mrbobbytables), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-contribex)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-contribex)|* Regular SIG Meeting: [Wednesdays at 9:30 PT (Pacific Time) (weekly)](https://zoom.us/j/397264241)<br>* (community-management) APAC Coordinator Meeting: [Thursdays at 5:00 UTC (biweekly)](https://zoom.us/j/144440337)<br>* (community-management) Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time) (weekly)](https://zoom.us/j/596959769)<br>* (events) Events Planning Subproject: [Mondays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/702991595)<br>* (events) Office Hours European Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 09:00 ET (Eastern Time) (monthly on 3rd Wednesday)](https://hackmd.io/@k8s/office-hours)<br>* (events) Office Hours Western Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 12:00 ET (Eastern Time) (monthly on 3rd Wednesday)]()<br>* (github-management) GitHub Administration Subproject: [Thursdays at 09:30 PT (Pacific Time) (monthly on 4th Thursday)](https://zoom.us/j/442435463)<br>* (mentoring) New Contributor Workshop Development Meeting: [Mondays at 4:00 PT (Biweekly)](https://zoom.us/j/95894431386)<br>* (mentoring) sig-contribex mentoring subproject meeting (APAC Friendly Time): [Mondays at 20:30 PT (2nd and 4th Tuesday of each month)](https://zoom.us/j/94884623370)<br>* (mentoring) sig-contribex mentoring subproject meeting (EU/NA Friendly Time): [Tuesdays at 08:30 PT (2nd and 4th Tuesday of each month)](https://zoom.us/j/98162537924)<br> -|[Docs](sig-docs/README.md)|docs|* [Jim Angel](https://github.com/jimangel), Google<br>* [Kaitlyn Barnard](https://github.com/kbarnard10), Kong<br>* [Zach Corleissen](https://github.com/zacharysarah), Linux Foundation<br>|* [Slack](https://kubernetes.slack.com/messages/sig-docs)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)|* APAC SIG Meeting: [Wednesdays at 01:00 UTC (monthly - Wednesday, after the fourth Tuesday, every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)<br>* Korean Team Meeting: [Thursdays at 13:00 UTC (biweekly)](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit)<br>* Regular SIG Meeting: [Tuesdays at 17:30 UTC (weekly - except fourth Tuesday every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)<br> +|[Contributor Experience](sig-contributor-experience/README.md)|contributor-experience|* [Jorge Castro](https://github.com/castrojo), VMware<br>* [Bob Killen](https://github.com/mrbobbytables), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-contribex)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-contribex)|* Regular SIG Meeting: [Wednesdays at 9:30 PT (Pacific Time) (weekly)](https://zoom.us/j/397264241?pwd=bHNnZVArNFdPaWVJMmttdko0Sktudz09)<br>* (community-management) APAC Coordinator Meeting: [Thursdays at 5:00 UTC (biweekly)](https://zoom.us/j/144440337?pwd=VEVBejdPYkE2MGdUSDZZZnVlNFdrdz09)<br>* (community-management) Marketing Team Meeting: [Fridays at 8:00 PT (Pacific Time) (weekly)](https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09)<br>* (events) Office Hours European Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 09:00 ET (Eastern Time) (monthly on 3rd Wednesday)](https://hackmd.io/@k8s/office-hours)<br>* (events) Office Hours Western Edition (Open Q&A for end-user kubernetes related questions): [Wednesdays at 12:00 ET (Eastern Time) (monthly on 3rd Wednesday)]()<br>* (github-management) GitHub Administration Subproject: [Thursdays at 09:30 PT (Pacific Time) (Monthly on 4th Thursday)](https://zoom.us/j/442435463?pwd=Rk1PWWpSSTJDaWJKdzRYb2EyTlkvZz09)<br>* (mentoring) Mentoring Subproject Meeting (NA/APAC): [Mondays at 4:00 PT (Biweekly)](https://zoom.us/j/95894431386?pwd=RFdmQzlZeVZDVWJzcFVXZXR5djNwUT09)<br> +|[Docs](sig-docs/README.md)|docs|* [Jim Angel](https://github.com/jimangel), Google<br>* [Kaitlyn Barnard](https://github.com/kbarnard10), Kong<br>* [Zach Corleissen](https://github.com/zacharysarah), Linux Foundation<br>|* [Slack](https://kubernetes.slack.com/messages/sig-docs)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)|* APAC SIG Meeting: [Wednesdays at 01:00 UTC (monthly - Wednesday, after the fourth Tuesday, every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)<br>* Korean Team Meeting: [Thursdays at 13:00 UTC (biweekly)](https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit)<br>* Localization Subgroup Meeting: [Mondays at 15:00 UTC (monthly)](https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/)<br>* Regular SIG Meeting: [Tuesdays at 17:30 UTC (weekly - except fourth Tuesday every month)](https://docs.google.com/document/d/1ddHwLK3kUMX1wVFIwlksjTk0MsqitBnWPe1LRa1Rx5A/edit)<br> |[Instrumentation](sig-instrumentation/README.md)|instrumentation|* [Elana Hashman](https://github.com/ehashman), Red Hat<br>* [Han Kang](https://github.com/logicalhan), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-instrumentation)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-instrumentation)|* Regular SIG Meeting: [Thursdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)<br>* Regular Triage Meeting: [Wednesdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/5342565819?pwd=RlVsK21NVnR1dmE3SWZQSXhveHZPdz09)<br> |[Multicluster](sig-multicluster/README.md)|multicluster|* [Jeremy Olmsted-Thompson](https://github.com/jeremyot), Google<br>* [Paul Morie](https://github.com/pmorie), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-multicluster)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-multicluster)|* Regular SIG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (weekly)](https://zoom.us/my/k8s.mc)<br> |[Network](sig-network/README.md)|network|* [Casey Davenport](https://github.com/caseydavenport), Tigera<br>* [Dan Williams](https://github.com/dcbw), Red Hat<br>* [Tim Hockin](https://github.com/thockin), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-network)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-network)|* Network Policy API Meeting: [Mondays at 13:00 PT (Pacific Time) (weekly)](https://zoom.us/j/96264742248)<br>* SIG Network Meeting: [Thursdays at 14:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/361123509)<br>* Service APIs Meeting (APAC Friendly Time): [Thursdays at 16:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/441530404)<br>* Service APIs Meeting (EMEA Friendly Time): [Thursdays at 10:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/140577552)<br>* Service APIs Office Hours: [Wednesdays at 15:00 PT (Pacific Time) (weekly)](https://zoom.us/j/289465529)<br> @@ -39,8 +39,8 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md) |[Release](sig-release/README.md)|release|* [Stephen Augustus](https://github.com/justaugustus), VMware<br>* [Tim Pepper](https://github.com/tpepper), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-release)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-release)|* Regular SIG Meeting: [Tuesdays at 14:30 UTC (biweekly)](https://zoom.us/j/327142148)<br>* (Release Engineering) Release Engineering: [Tuesdays at 14:30 UTC (biweekly)](https://zoom.us/j/240812475)<br> |[Scalability](sig-scalability/README.md)|scalability|* [Matt Matejczyk](https://github.com/mm4tt), Google<br>* [Shyam Jeedigunta](https://github.com/shyamjvs), AWS<br>|* [Slack](https://kubernetes.slack.com/messages/sig-scalability)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scale)|* Regular SIG Meeting: [Thursdays at 17:30 UTC (bi-weekly ([upcoming meeting dates](#upcoming-meeting-dates)))](https://zoom.us/j/94252896018?pwd=cTlMMlBoTHZqUEdjRm9VY2NWNUg5dz09)<br> |[Scheduling](sig-scheduling/README.md)|scheduling|* [Wei Huang](https://github.com/Huang-Wei), IBM<br>* [Abdullah Gharaibeh](https://github.com/ahg-g), Google<br>|* [Slack](https://kubernetes.slack.com/messages/sig-scheduling)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-scheduling)|* 10AM PT Meeting: [Thursdays at 17:00 UTC (biweekly starting Thursday June 7, 2018)](https://zoom.us/j/841218129)<br> -|[Security](sig-security/README.md)|security|* [Ian Coldwater](https://github.com/iancoldwater), Salesforce<br>* [Tabitha Sable](https://github.com/tabbysable), Datadog<br>|* [Slack](https://kubernetes.slack.com/messages/sig-security)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-security)|* Regular SIG Meeting: [Mondays at 12:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/8416212023)<br> -|[Service Catalog](sig-service-catalog/README.md)|service-catalog|* [Jonathan Berkhahn](https://github.com/jberkhahn), IBM<br>* [Mateusz Szostok](https://github.com/mszostok), Independent<br>|* [Slack](https://kubernetes.slack.com/messages/sig-service-catalog)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-service-catalog)|* Regular SIG Meeting: [Mondays at 13:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/7201225346)<br> +|[Security](sig-security/README.md)|security|* [Ian Coldwater](https://github.com/iancoldwater), Salesforce<br>* [Tabitha Sable](https://github.com/tabbysable), Datadog<br>|* [Slack](https://kubernetes.slack.com/messages/sig-security)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-security)|* Regular SIG Meeting: [Mondays at 12:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/9934z1184192?pwd=L25Tc0ZOL3FqU09KNERlTU12dFhTQT09)<br> +|[Service Catalog](sig-service-catalog/README.md)|service-catalog|* [Jonathan Berkhahn](https://github.com/jberkhahn), IBM<br>* [Konstantin Semenov](https://github.com/jhvhs), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-service-catalog)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-service-catalog)|* Regular SIG Meeting: [Mondays at 13:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/7201225346)<br> |[Storage](sig-storage/README.md)|storage|* [Saad Ali](https://github.com/saad-ali), Google<br>* [Xing Yang](https://github.com/xing-yang), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/sig-storage)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-storage)|* Regular SIG Meeting: [Thursdays at 9:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/614261834)<br> |[Testing](sig-testing/README.md)|testing|* [Benjamin Elder](https://github.com/BenTheElder), Google<br>* [Aaron Crickenberger](https://github.com/spiffxp), Google<br>* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/sig-testing)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-testing)|* SIG Testing Bi-Weekly Meeting: [Tuesdays at 10:00 PT (Pacific Time) (bi-weekly starting Tuesday August 13, 2019)](https://zoom.us/j/135450138?pwd=WGJyaVZzekJCWFBTMGJGTXVjUFJaUT09)<br>* (testing-commons) Testing Commons: [Fridays at 13:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/790505720?pwd=VThEeVJqTnFPY0o1bDFZQk1ZRjJLQT09)<br> |[UI](sig-ui/README.md)|ui|* [Sebastian Florek](https://github.com/floreks), Loodse<br>* [Jeffrey Sica](https://github.com/jeefy), Red Hat<br>* [Marcin Maciaszczyk](https://github.com/maciaszczykm), Loodse<br>|* [Slack](https://kubernetes.slack.com/messages/sig-ui)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)|* Regular SIG Meeting: [Thursdays at 09:00 PT (Pacific Time) (bi-weekly)](https://groups.google.com/forum/#!forum/kubernetes-sig-ui)<br> @@ -54,13 +54,12 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md) |[API Expression](wg-api-expression/README.md)|* API Machinery<br>* Architecture<br>|* [Antoine Pelisse](https://github.com/apelisse), Google<br>* [Kevin Wiesmueller](https://github.com/kwiesmueller), //SEIBERT/MEDIA GmbH<br>|* [Slack](https://kubernetes.slack.com/messages/wg-api-expression)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-api-expression)|* Regular WG Meeting: [Tuesdays at 9:30 PT (Pacific Time) (biweekly)](https://zoom.us/j/94238112084)<br> |[Component Standard](wg-component-standard/README.md)|* API Machinery<br>* Architecture<br>* Cluster Lifecycle<br>|* [Michael Taufen](https://github.com/mtaufen), Google<br>* [Leigh Capili](https://github.com/stealthybox), Weaveworks<br>|* [Slack](https://kubernetes.slack.com/messages/wg-component-standard)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-component-standard)|* Regular WG Meeting (please join kubernetes-dev@googlegroups.com or kubernetes-wg-component-standard@googlegroups.com to access the notes): [Tuesdays at 08:30 PT (Pacific Time) (weekly)](https://zoom.us/j/8027741546)<br>* Weekly Mentorship Office Hours - Come ask questions and get help: [Tuesdays at 10:00 PT (Pacific Time) (weekly)](https://zoom.us/j/8027741546)<br> |[Data Protection](wg-data-protection/README.md)|* Apps<br>* Storage<br>|* [Xing Yang](https://github.com/xing-yang), VMware<br>* [Xiangqian Yu](https://github.com/yuxiangqian), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-data-protection)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-data-protection)|* Regular WG Meeting: [Wednesdays at 9:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/6933410772)<br> -|[IoT Edge](wg-iot-edge/README.md)|* Multicluster<br>* Network<br>|* [Steve Wong](https://github.com/cantbewong), VMware<br>* [Cindy Xing](https://github.com/cindyxing), Microsoft<br>* [Dejan Bosanac](https://github.com/dejanb), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-iot-edge)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-iot-edge)|* APAC WG Meeting: [Wednesdays at 5:00 UTC (every four weeks)](https://zoom.us/j/760932414)<br>* Regular WG Meeting (Pacific Time): [Wednesdays at 09:00 PT (every four weeks)](https://zoom.us/j/760932414)<br> +|[IoT Edge](wg-iot-edge/README.md)|* Multicluster<br>* Network<br>|* [Steve Wong](https://github.com/cantbewong), VMware<br>* [Cindy Xing](https://github.com/cindyxing), Microsoft<br>* [Dejan Bosanac](https://github.com/dejanb), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-iot-edge)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-iot-edge)|* APAC WG Meeting: [Wednesdays at 5:00 UTC (every four weeks)](https://zoom.us/j/91251176046?pwd=cmdqclovM3R3eDB1VlpuL1ZGU1hnZz09)<br>* Regular WG Meeting (Pacific Time): [Wednesdays at 09:00 PT (every four weeks)](https://zoom.us/j/92778512626?pwd=MXhlemwvYnhkQmkxeXllQ0Z5VGs4Zz09)<br> |[K8s Infra](wg-k8s-infra/README.md)|* Architecture<br>* Contributor Experience<br>* Release<br>* Testing<br>|* [Bart Smykla](https://github.com/bartsmykla), VMware<br>* [Davanum Srinivas](https://github.com/dims), VMware<br>* [Aaron Crickenberger](https://github.com/spiffxp), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-k8s-infra)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-k8s-infra)|* Regular WG Meeting: [Wednesdays at 8:30 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/8152322659?pwd=UWc3UFdoT0xlMTRQTEZFNzZBSE4rdz09)<br> -|[LTS](wg-lts/README.md)|* API Machinery<br>* CLI<br>* Node<br>|* [Dhawal Yogesh Bhanusali](https://github.com/imkin), VMware<br>* [Quinton Hoole](https://github.com/quinton-hoole), Huawei<br>* [Tim Pepper](https://github.com/tpepper), VMware<br>* [Nick Young](https://github.com/youngnick), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/wg-lts)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-lts)|* Regular WG Meeting: [Tuesdays at 09:00 PT (Pacific Time) (bi-weekly)](https://zoom.us/j/473177294)<br> |[Multitenancy](wg-multitenancy/README.md)|* API Machinery<br>* Auth<br>* Network<br>* Node<br>* Scheduling<br>* Storage<br>|* [Sanjeev Rampal](https://github.com/srampal), Cisco<br>* [Tasha Drew](https://github.com/tashimi), VMware<br>|* [Slack](https://kubernetes.slack.com/messages/wg-multitenancy)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-multitenancy)|* Regular WG Meeting: [Tuesdays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/my/k8s.sig.auth)<br> |[Naming](wg-naming/README.md)|* Architecture<br>* Contributor Experience<br>* Docs<br>|* [Celeste Horgan](https://github.com/celestehorgan), CNCF<br>* [Jaice Singer DuMars](https://github.com/jdumars), Apple<br>* [Stephen Augustus](https://github.com/justaugustus), VMware<br>* [Zach Corleissen](https://github.com/zacharysarah), Linux Foundation<br>|* [Slack](https://kubernetes.slack.com/messages/wg-naming)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-naming)|* Regular WG Meeting: [Mondays at 10:30 PT (Pacific Time) (monthly - second Monday of month)](https://zoom.us/j/91522666403?pwd=WnRSNlNhNXhDWkR2ZU9ydGpsNWxtZz09)<br> |[Policy](wg-policy/README.md)|* Architecture<br>* Auth<br>* Multicluster<br>* Network<br>* Node<br>* Scheduling<br>* Storage<br>|* [Erica von Buelow](https://github.com/ericavonb), Red Hat<br>* [Howard Huang](https://github.com/hannibalhuang), Huawei<br>|* [Slack](https://kubernetes.slack.com/messages/wg-policy)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-policy)|* Regular WG Meeting: [Wednesdays at 16:00 PT (Pacific Time) (weekly)](https://zoom.us/j/7375677271)<br> -|[Security Audit](wg-security-audit/README.md)|* Auth<br>|* [Aaron Small](https://github.com/aasmall), Invitae<br>* [Craig Ingram](https://github.com/cji), Stripe<br>* [Jay Beale](https://github.com/jaybeale), InGuardians<br>* [Joel Smith](https://github.com/joelsmith), Red Hat<br>|* [Slack](https://kubernetes.slack.com/messages/wg-security-audit)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-security-audit)|* Regular WG Meeting: [Mondays at 12:00 PT (Pacific Time) (weekly)](https://docs.google.com/document/d/1RbC4SBZBlKth7IjYv_NaEpnmLGwMJ0ElpUOmsG-bdRA/edit)<br> +|[Reliability](wg-reliability/README.md)|* Architecture<br>* Cluster Lifecycle<br>* Release<br>* Scalability<br>* Testing<br>|* [David Eads](https://github.com/deads2k), Red Hat<br>* [Steve Kuznetsov](https://github.com/stevekuznetsov), Red Hat<br>* [Wojciech Tyczynski](https://github.com/wojtek-t), Google<br>|* [Slack](https://kubernetes.slack.com/messages/wg-reliability)<br>* [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-wg-reliability)|* Regular WG Meeting: [Mondays at 11:00 PT (Pacific Time) (biweekly)](https://zoom.us/j/97964505804?pwd=R3hzSnArQWJHYmdWUnpSUDh3aXhFUT09)<br> ### Master User Group List @@ -74,8 +73,8 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md) | Name | Label | Members | Contact | |------|--------|---------|---------| |[Code of Conduct](committee-code-of-conduct/README.md)|code-of-conduct|* [Aeva Black](https://github.com/AevaOnline), Microsoft<br>* [Celeste Horgan](https://github.com/celestehorgan), CNCF<br>* [Karen Chu](https://github.com/karenhchu), Microsoft<br>* [Tasha Drew](https://github.com/tashimi), VMware<br>* [Tim Pepper](https://github.com/tpepper), VMware<br>|* [Private Mailing List](conduct@kubernetes.io) -|[Product Security](committee-product-security/README.md)|product-security|* [CJ Cullen](https://github.com/cjcullen), Google<br>* [Craig Ingram](https://github.com/cji), Stripe<br>* [Joel Smith](https://github.com/joelsmith), Red Hat<br>* [Luke Hinds](https://github.com/lukehinds), Red Hat<br>* [Micah Hausler](https://github.com/micahhausler), Amazon<br>* [Swamy Shivaganga Nagaraju](https://github.com/swamymsft), Microsoft<br>* [Tim Allclair](https://github.com/tallclair), Google<br>|* [Private Mailing List](security@kubernetes.io) -|[Steering](committee-steering/README.md)|steering|* [Christoph Blecker](https://github.com/cblecker), Red Hat<br>* [Derek Carr](https://github.com/derekwaynecarr), Red Hat<br>* [Davanum Srinivas](https://github.com/dims), VMware<br>* [Lachlan Evenson](https://github.com/lachie83), Microsoft<br>* [Nikhita Raghunath](https://github.com/nikhita), VMware<br>* [Paris Pittman](https://github.com/parispittman), Apple<br>* [Aaron Crickenberger](https://github.com/spiffxp), Google<br>|* [Slack](https://kubernetes.slack.com/messages/steering-committee)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/forum/#!forum/steering)<br>* [Private Mailing List](steering-private@kubernetes.io) +|[Product Security](committee-product-security/README.md)|product-security|* [CJ Cullen](https://github.com/cjcullen), Google<br>* [Craig Ingram](https://github.com/cji), Stripe<br>* [Joel Smith](https://github.com/joelsmith), Red Hat<br>* [Luke Hinds](https://github.com/lukehinds), Red Hat<br>* [Micah Hausler](https://github.com/micahhausler), Amazon<br>* [Swamy Shivaganga Nagaraju](https://github.com/swamymsft), Microsoft<br>* [Tim Allclair](https://github.com/tallclair), Apple<br>|* [Private Mailing List](security@kubernetes.io) +|[Steering](committee-steering/README.md)|steering|* [Christoph Blecker](https://github.com/cblecker), Red Hat<br>* [Derek Carr](https://github.com/derekwaynecarr), Red Hat<br>* [Davanum Srinivas](https://github.com/dims), VMware<br>* [Jordan Liggitt](https://github.com/liggitt), Google<br>* [Bob Killen](https://github.com/mrbobbytables), Google<br>* [Nikhita Raghunath](https://github.com/nikhita), VMware<br>* [Paris Pittman](https://github.com/parispittman), Apple<br>|* [Slack](https://kubernetes.slack.com/messages/steering-committee)<br>* [Mailing List](https://groups.google.com/a/kubernetes.io/forum/#!forum/steering)<br>* [Private Mailing List](steering-private@kubernetes.io) <!-- BEGIN CUSTOM CONTENT --> <!-- END CUSTOM CONTENT --> diff --git a/sig-node/README.md b/sig-node/README.md index b1de1548..8249e789 100644 --- a/sig-node/README.md +++ b/sig-node/README.md @@ -66,11 +66,11 @@ The following [subprojects][subproject-definition] are owned by sig-node: - https://raw.githubusercontent.com/kubernetes/node-problem-detector/master/OWNERS - **Contact:** - Slack: [#node-problem-detector](https://kubernetes.slack.com/messages/node-problem-detector) -### seccomp-operator +### security-profiles-operator - **Owners:** - - https://raw.githubusercontent.com/kubernetes-sigs/seccomp-operator/master/OWNERS + - https://raw.githubusercontent.com/kubernetes-sigs/security-profiles-operator/master/OWNERS - **Contact:** - - Slack: [#seccomp-operator](https://kubernetes.slack.com/messages/seccomp-operator) + - Slack: [#security-profiles-operator](https://kubernetes.slack.com/messages/security-profiles-operator) [subproject-definition]: https://github.com/kubernetes/community/blob/master/governance.md#subprojects <!-- BEGIN CUSTOM CONTENT --> diff --git a/sig-security/README.md b/sig-security/README.md index ba580ccc..983886ca 100644 --- a/sig-security/README.md +++ b/sig-security/README.md @@ -13,7 +13,7 @@ Covers horizontal security initiatives for the Kubernetes project, including reg The [charter](charter.md) defines the scope and governance of the Security Special Interest Group. ## Meetings -* Regular SIG Meeting: [Mondays at 12:00 PT (Pacific Time)](https://zoom.us/j/8416212023) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=12:00&tz=PT%20%28Pacific%20Time%29). +* Regular SIG Meeting: [Mondays at 12:00 PT (Pacific Time)](https://zoom.us/j/9934z1184192?pwd=L25Tc0ZOL3FqU09KNERlTU12dFhTQT09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=12:00&tz=PT%20%28Pacific%20Time%29). * [Meeting notes and Agenda](https://docs.google.com/document/d/1GgmmNYN88IZ2v2NBiO3gdU8Riomm0upge_XNVxEYXp0/edit?usp=sharing). * [Meeting recordings](https://www.youtube.com/playlist?list=PL69nYSiGNLP1mXOLAc9ti0oX8s_ookQCi). diff --git a/wg-security-audit/Atredis and Trail of Bits Proposal.pdf b/sig-security/security-audit-2019/Atredis and Trail of Bits Proposal.pdf Binary files differindex ca82ac39..ca82ac39 100644 --- a/wg-security-audit/Atredis and Trail of Bits Proposal.pdf +++ b/sig-security/security-audit-2019/Atredis and Trail of Bits Proposal.pdf diff --git a/wg-security-audit/RFP.md b/sig-security/security-audit-2019/RFP.md index dd9fc94e..dd9fc94e 100644 --- a/wg-security-audit/RFP.md +++ b/sig-security/security-audit-2019/RFP.md diff --git a/wg-security-audit/RFP_Decision.md b/sig-security/security-audit-2019/RFP_Decision.md index c00fdf5c..c00fdf5c 100644 --- a/wg-security-audit/RFP_Decision.md +++ b/sig-security/security-audit-2019/RFP_Decision.md diff --git a/wg-security-audit/ancillary-data/dataflow/original dataflow.dot b/sig-security/security-audit-2019/ancillary-data/dataflow/original dataflow.dot index 02d2f830..02d2f830 100644 --- a/wg-security-audit/ancillary-data/dataflow/original dataflow.dot +++ b/sig-security/security-audit-2019/ancillary-data/dataflow/original dataflow.dot diff --git a/wg-security-audit/ancillary-data/dataflow/original dataflow.png b/sig-security/security-audit-2019/ancillary-data/dataflow/original dataflow.png Binary files differindex 62c6680e..62c6680e 100644 --- a/wg-security-audit/ancillary-data/dataflow/original dataflow.png +++ b/sig-security/security-audit-2019/ancillary-data/dataflow/original dataflow.png diff --git a/wg-security-audit/ancillary-data/dataflow/process.sh b/sig-security/security-audit-2019/ancillary-data/dataflow/process.sh index 0a446eb3..0a446eb3 100644 --- a/wg-security-audit/ancillary-data/dataflow/process.sh +++ b/sig-security/security-audit-2019/ancillary-data/dataflow/process.sh diff --git a/wg-security-audit/ancillary-data/dataflow/requirements.txt b/sig-security/security-audit-2019/ancillary-data/dataflow/requirements.txt index f65609d4..f65609d4 100644 --- a/wg-security-audit/ancillary-data/dataflow/requirements.txt +++ b/sig-security/security-audit-2019/ancillary-data/dataflow/requirements.txt diff --git a/wg-security-audit/ancillary-data/dataflow/tm.py b/sig-security/security-audit-2019/ancillary-data/dataflow/tm.py index 245501ff..245501ff 100644 --- a/wg-security-audit/ancillary-data/dataflow/tm.py +++ b/sig-security/security-audit-2019/ancillary-data/dataflow/tm.py diff --git a/wg-security-audit/ancillary-data/dataflow/updated-dataflow.dot b/sig-security/security-audit-2019/ancillary-data/dataflow/updated-dataflow.dot index 671e2dde..671e2dde 100644 --- a/wg-security-audit/ancillary-data/dataflow/updated-dataflow.dot +++ b/sig-security/security-audit-2019/ancillary-data/dataflow/updated-dataflow.dot diff --git a/wg-security-audit/ancillary-data/dataflow/updated-dataflow.png b/sig-security/security-audit-2019/ancillary-data/dataflow/updated-dataflow.png Binary files differindex c86cd09e..c86cd09e 100644 --- a/wg-security-audit/ancillary-data/dataflow/updated-dataflow.png +++ b/sig-security/security-audit-2019/ancillary-data/dataflow/updated-dataflow.png diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/container-runtime.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/container-runtime.md index 98130bf1..98130bf1 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/container-runtime.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/container-runtime.md diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/etcd.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/etcd.md index bbba4fff..bbba4fff 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/etcd.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/etcd.md diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/kcm-ccm-notes.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kcm-ccm-notes.md index b6bfbb64..b6bfbb64 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/kcm-ccm-notes.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kcm-ccm-notes.md diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/kube-apiserver.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kube-apiserver.md index 0fb851d8..0fb851d8 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/kube-apiserver.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kube-apiserver.md diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/kube-proxy.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kube-proxy.md index 521d0e83..521d0e83 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/kube-proxy.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kube-proxy.md diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/kube-scheduler.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kube-scheduler.md index 5628f8d1..5628f8d1 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/kube-scheduler.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kube-scheduler.md diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/kubelet.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kubelet.md index ec972ded..ec972ded 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/kubelet.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/kubelet.md diff --git a/wg-security-audit/ancillary-data/rapid-risk-assessments/template.md b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/template.md index b3808395..b3808395 100644 --- a/wg-security-audit/ancillary-data/rapid-risk-assessments/template.md +++ b/sig-security/security-audit-2019/ancillary-data/rapid-risk-assessments/template.md diff --git a/wg-security-audit/findings/AtredisPartners_Attacking_Kubernetes-v1.0.pdf b/sig-security/security-audit-2019/findings/AtredisPartners_Attacking_Kubernetes-v1.0.pdf Binary files differindex 65ab1e66..65ab1e66 100644 --- a/wg-security-audit/findings/AtredisPartners_Attacking_Kubernetes-v1.0.pdf +++ b/sig-security/security-audit-2019/findings/AtredisPartners_Attacking_Kubernetes-v1.0.pdf diff --git a/wg-security-audit/findings/Kubernetes Final Report.pdf b/sig-security/security-audit-2019/findings/Kubernetes Final Report.pdf Binary files differindex fea307e6..fea307e6 100644 --- a/wg-security-audit/findings/Kubernetes Final Report.pdf +++ b/sig-security/security-audit-2019/findings/Kubernetes Final Report.pdf diff --git a/wg-security-audit/findings/Kubernetes Threat Model.pdf b/sig-security/security-audit-2019/findings/Kubernetes Threat Model.pdf Binary files differindex 9f7be3ea..9f7be3ea 100644 --- a/wg-security-audit/findings/Kubernetes Threat Model.pdf +++ b/sig-security/security-audit-2019/findings/Kubernetes Threat Model.pdf diff --git a/wg-security-audit/findings/Kubernetes White Paper.pdf b/sig-security/security-audit-2019/findings/Kubernetes White Paper.pdf Binary files differindex 867bb48e..867bb48e 100644 --- a/wg-security-audit/findings/Kubernetes White Paper.pdf +++ b/sig-security/security-audit-2019/findings/Kubernetes White Paper.pdf diff --git a/sig-service-catalog/README.md b/sig-service-catalog/README.md index 08d975bb..58334d48 100644 --- a/sig-service-catalog/README.md +++ b/sig-service-catalog/README.md @@ -23,7 +23,7 @@ The [charter](charter.md) defines the scope and governance of the Service Catalo The Chairs of the SIG run operations and processes governing the SIG. * Jonathan Berkhahn (**[@jberkhahn](https://github.com/jberkhahn)**), IBM -* Mateusz Szostok (**[@mszostok](https://github.com/mszostok)**), Independent +* Konstantin Semenov (**[@jhvhs](https://github.com/jhvhs)**), VMware ## Emeritus Leads @@ -32,6 +32,7 @@ The Chairs of the SIG run operations and processes governing the SIG. * Doug Davis (**[@duglin](https://github.com/duglin)**) * Jay Boyd (**[@jboyd01](https://github.com/jboyd01)**) * Michael Kibbe (**[@kibbles-n-bytes](https://github.com/kibbles-n-bytes)**) +* Mateusz Szostok (**[@mszostok](https://github.com/mszostok)**) * Paul Morie (**[@pmorie](https://github.com/pmorie)**) * Ville Aikas (**[@vaikas-google](https://github.com/vaikas-google)**) diff --git a/sig-service-catalog/charter.md b/sig-service-catalog/charter.md index 6ecd0dfe..39852e24 100644 --- a/sig-service-catalog/charter.md +++ b/sig-service-catalog/charter.md @@ -25,8 +25,8 @@ This SIG’s main goals are: ### Code, Binaries and services -- [Source Repository](https://github.com/kubernetes-incubator/service-catalog) - - See [OWNERS](https://raw.githubusercontent.com/kubernetes-incubator/service-catalog/master/OWNERS) for who has access. +- [Source Repository](https://github.com/kubernetes-sigs/service-catalog) + - See [OWNERS](https://raw.githubusercontent.com/kubernetes-sigs/service-catalog/master/OWNERS) for who has access. - [Image Repository](https://quay.io/organization/kubernetes-service-catalog) - Canary builds are published on pushes to master. - Release builds (and latest) are published on tags. @@ -44,7 +44,7 @@ This SIG’s main goals are: - Files hosted on Azure blob storage. - Azure account managed by Carolyn Van Slyck (Microsoft) and Aaron Schlesinger (Microsoft). -- [Travis](https://travis-ci.org/kubernetes-incubator/service-catalog) +- [Travis](https://travis-ci.org/kubernetes-sigs/service-catalog) - Runs the CI builds. - Maintainers have access. - [Jenkins](https://service-catalog-jenkins.appspot.com/) @@ -61,7 +61,7 @@ This SIG's charter deviates from the [sig-governance](https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md) roles. We do not have the Tech Lead role, and have a honorary Emeritus Chair role. -- [Maintainers](https://github.com/orgs/kubernetes-incubator/teams/maintainers-service-catalog/members) +- [Maintainers](https://github.com/orgs/kubernetes-sigs/teams/service-catalog-maintainers/members) - Maintainer is equivalent to the standard [Kubernetes definition of Approver](https://github.com/kubernetes/community/blob/master/community-membership.md#approver). - Responsible for reviewing pull requests, and approving pull requests for merge. @@ -115,7 +115,7 @@ roles. We do not have the Tech Lead role, and have a honorary Emeritus Chair rol - Must accept and adhere to the Kubernetes [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy). - Defined in - [SECURITY_CONTACTS](https://github.com/kubernetes-incubator/service-catalog/blob/master/SECURITY_CONTACTS) + [SECURITY_CONTACTS](https://github.com/kubernetes-sigs/service-catalog/blob/master/SECURITY_CONTACTS) file. ## Organizational management @@ -129,7 +129,7 @@ roles. We do not have the Tech Lead role, and have a honorary Emeritus Chair rol reports, deep dives, etc.) should make their slides available for perusal and feedback at least 2 week in advance. - [Working - groups](https://github.com/kubernetes-incubator/service-catalog/wiki/Working-Groups) + groups](https://github.com/kubernetes-sigs/service-catalog/wiki/Working-Groups) can be initiated by any member. To create a new one, add the topic to the weekly call’s agenda for discussion. - These are not the same as cross-SIG working groups. @@ -137,7 +137,7 @@ roles. We do not have the Tech Lead role, and have a honorary Emeritus Chair rol members can meet to discuss and solve problems for our SIG. ### Project management -- [Milestones](https://github.com/kubernetes-incubator/service-catalog/milestones) +- [Milestones](https://github.com/kubernetes-sigs/service-catalog/milestones) are defined by SIG maintainers. - Anyone is free to request a discussion of the milestones/plans during a weekly call. @@ -147,7 +147,7 @@ roles. We do not have the Tech Lead role, and have a honorary Emeritus Chair rol - Major releases are planned and discussed among the SIG members during regular weekly calls. - The release process is defined - [here](https://github.com/kubernetes-incubator/service-catalog/wiki/Release-Process). + [here](https://github.com/kubernetes-sigs/service-catalog/wiki/Release-Process). - Anyone can request to work on an issue by commenting on it with `#dibs`. diff --git a/sig-storage/README.md b/sig-storage/README.md index 9cf1fd6e..65a213f2 100644 --- a/sig-storage/README.md +++ b/sig-storage/README.md @@ -65,6 +65,7 @@ The following [subprojects][subproject-definition] are owned by sig-storage: - https://raw.githubusercontent.com/kubernetes-sigs/gluster-file-external-provisioner/master/OWNERS ### kubernetes-cosi - **Owners:** + - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-api/master/OWNERS - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-controller/master/OWNERS - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-csi-adapter/master/OWNERS - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-provisioner-sidecar/master/OWNERS diff --git a/sig-testing/charter.md b/sig-testing/charter.md index 7f4f0e47..0d98fa49 100644 --- a/sig-testing/charter.md +++ b/sig-testing/charter.md @@ -27,7 +27,7 @@ health of the project. contributors who wish to provide additional test results not generated by the project's CI - Extraction, display and analysis of test artifacts via tools like - [gubernator], [kettle], [testgrid], [triage] and [velodrome] + [gubernator], [kettle], [testgrid], and [triage] - Configuration management of jobs and ensuring they use a consistent process via tools such as [job configs], [kubetest] - Tools that facilitate configuration management of github such as @@ -131,7 +131,6 @@ Subprojects are created by Tech Leads following the process defined in [sig-gove [testgrid]: https://testgrid.k8s.io [tide]: https://prow.k8s.io/tide [triage]: https://go.k8s.io/triage -[velodrome]: https://velodrome.k8s.io [Release Team test-infra role]: https://git.k8s.io/sig-release/release-team/role-handbooks/test-infra [kubernetes-dev@]: https://groups.google.com/forum/#!forum/kubernetes-dev diff --git a/sig-wg-lifecycle.md b/sig-wg-lifecycle.md index eeb1ca89..39bb2eaa 100644 --- a/sig-wg-lifecycle.md +++ b/sig-wg-lifecycle.md @@ -103,7 +103,7 @@ Sometimes it might be necessary to sunset a SIG or Working Group. SIGs/WGs may a - [ ] Each subproject a SIG owns must transfer ownership to a new SIG, outside the project, or be retired - [ ] File an issue with kubernetes/org if there are multiple repos - [ ] Retire or transfer any test-infra jobs or testgrid dashboards, if applicable, owned by the SIG. Work with SIG-Testing on this. - - [ ] Migrate/Remove/Deprecate any SIG/WG labels in labels.yaml - instructions in [labels.md] + - [ ] Migrate/Remove/Deprecate any SIG/WG labels in labels.yaml; find instructions in [labels.md] - [ ] Remove or rename any GitHub teams that refer to the SIG - [ ] Update sigs.yaml to remove or rename @@ -112,7 +112,7 @@ Sometimes it might be necessary to sunset a SIG or Working Group. SIGs/WGs may a [Creation]: #Creation [Retirement]: #Retirement [GitHub]: #GitHub -[labels.md] /kubernetes/test-infra/blob/master/label_sync/labels.md +[labels.md]: https://git.k8s.io/test-infra/label_sync/labels.md [sig-governance.md]: /committee-steering/governance/sig-governance.md [SIG charter process]: /committee-steering/governance [wg-governance.md]: /committee-steering/governance/wg-governance.md @@ -168,7 +168,7 @@ sigs: time: "9:00" tz: PT (Pacific Time) frequency: biweekly - url: https://zoom.us/j/739385290 + url: https://zoom.us/j/739385290?pwd=ekVmNGRjT214MGJkY1JUUUpPMVlJUT09 archive_url: https://docs.google.com/document/d/1LZLBGW2wRDwAfdBNHJjFfk9CFoyZPcIYGWU7R1PQ3ng/edit# recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP2LMq7vznITnpd2Fk1YIZF3 contact: @@ -323,7 +323,9 @@ sigs: contact: slack: k8s-code-organization owners: + - https://raw.githubusercontent.com/kubernetes/component-helpers/master/OWNERS - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/OWNERS + - https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/component-helpers/OWNERS - https://raw.githubusercontent.com/kubernetes/kubernetes/master/third_party/OWNERS - https://raw.githubusercontent.com/kubernetes/kubernetes/master/vendor/OWNERS - https://raw.githubusercontent.com/kubernetes/utils/master/OWNERS @@ -370,7 +372,7 @@ sigs: company: Google - github: tallclair name: Tim Allclair - company: Google + company: Apple tech_leads: - github: deads2k name: David Eads @@ -604,6 +606,14 @@ sigs: - github: fabianofranz name: Fabiano Franz meetings: + - description: Bug Scrub + day: Wednesday + time: "09:00" + tz: PT (Pacific Time) + frequency: monthly + url: https://zoom.us/j/288426795?pwd=UDdoYnFyNjBiS1RHcXRxS1BCNy9wUT09 + archive_url: https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit?usp=sharing + recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP28HaTzSlFe6RJVxpFmbUvF - description: Regular SIG Meeting day: Wednesday time: "09:00" @@ -968,6 +978,9 @@ sigs: - name: cluster-api-provider-ibmcloud owners: - https://raw.githubusercontent.com/kubernetes-sigs/cluster-api-provider-ibmcloud/master/OWNERS + - name: cluster-api-provider-nested + owners: + - https://raw.githubusercontent.com/kubernetes-sigs/cluster-api-provider-nested/master/OWNERS - name: cluster-api-provider-openstack owners: - https://raw.githubusercontent.com/kubernetes-sigs/cluster-api-provider-openstack/master/OWNERS @@ -1024,11 +1037,6 @@ sigs: frequency: biweekly url: https://zoom.us/j/97072789944?pwd=VVlUR3dhN2h5TEFQZHZTVVd4SnJUdz09 archive_url: https://docs.google.com/document/d/12QkyL0FkNbWPcLFxxRGSPt_tNPBHbmni3YLY-lHny7E/edit - - name: kube-aws - contact: - slack: kube-aws - owners: - - https://raw.githubusercontent.com/kubernetes-incubator/kube-aws/master/OWNERS - name: kube-up owners: - https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/OWNERS @@ -1114,8 +1122,8 @@ sigs: time: "9:30" tz: PT (Pacific Time) frequency: weekly - url: https://zoom.us/j/397264241 - archive_url: https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/ + url: https://zoom.us/j/397264241?pwd=bHNnZVArNFdPaWVJMmttdko0Sktudz09 + archive_url: https://docs.google.com/document/d/1CBz8qV_mD6rbDmTsMuosTOQGRXGhN3d8UrcULUI6Vkw/edit recordings_url: https://www.youtube.com/watch?v=EMGUdOKwSns&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr contact: slack: sig-contribex @@ -1148,7 +1156,7 @@ sigs: time: "5:00" tz: UTC frequency: biweekly - url: https://zoom.us/j/144440337 + url: https://zoom.us/j/144440337?pwd=VEVBejdPYkE2MGdUSDZZZnVlNFdrdz09 archive_url: https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/ recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr - description: Marketing Team Meeting @@ -1156,7 +1164,7 @@ sigs: time: "8:00" tz: PT (Pacific Time) frequency: weekly - url: https://zoom.us/j/596959769 + url: https://zoom.us/j/596959769?pwd=TURBNlZPb3BEWVFmbWlCYXlMVVJiUT09 archive_url: https://docs.google.com/document/d/1KDoqbw2A6W7rLSbIRuOlqH8gkoOnp2IHHuV9KyJDD2c/edit recordings_url: https://www.youtube.com/watch?v=EMGUdOKwSns&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr - name: contributors-documentation @@ -1180,14 +1188,6 @@ sigs: owners: - https://raw.githubusercontent.com/kubernetes/community/master/events/OWNERS meetings: - - description: Events Planning Subproject - day: Monday - time: "10:00" - tz: PT (Pacific Time) - frequency: weekly - url: https://zoom.us/j/702991595 - archive_url: https://docs.google.com/document/d/1oLXv5_rM4f645jlXym_Vd7AUq7x6DV-O87E6tcW1sjU/edit - recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP3SLsQMQT8Pglu1JSmxZwgk - description: Office Hours European Edition (Open Q&A for end-user kubernetes related questions) day: Wednesday @@ -1221,8 +1221,8 @@ sigs: day: Thursday time: "09:30" tz: PT (Pacific Time) - frequency: monthly on 4th Thursday - url: https://zoom.us/j/442435463 + frequency: Monthly on 4th Thursday + url: https://zoom.us/j/442435463?pwd=Rk1PWWpSSTJDaWJKdzRYb2EyTlkvZz09 archive_url: https://docs.google.com/document/d/1IiVrr1hcFWmbboExk971FsMUGfr2Wp68mdMribCuzLs/edit recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr - name: k8s.io @@ -1238,30 +1238,14 @@ sigs: - https://raw.githubusercontent.com/kubernetes-sigs/contributor-playground/master/OWNERS - https://raw.githubusercontent.com/kubernetes/community/master/mentoring/OWNERS meetings: - - description: New Contributor Workshop Development Meeting + - description: Mentoring Subproject Meeting (NA/APAC) day: Monday time: "4:00" tz: PT frequency: Biweekly - url: https://zoom.us/j/95894431386 + url: https://zoom.us/j/95894431386?pwd=RFdmQzlZeVZDVWJzcFVXZXR5djNwUT09 archive_url: https://docs.google.com/document/d/1XiXjDWCc087VKqX2b6LMGRnlaRyLYGh2-eWQQr6dAmc/edit recordings_url: https://www.youtube.com/watch?v=Cqf9dIiS6Ig&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr - - description: sig-contribex mentoring subproject meeting (APAC Friendly Time) - day: Monday - time: "20:30" - tz: PT - frequency: 2nd and 4th Tuesday of each month - url: https://zoom.us/j/94884623370 - archive_url: https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit#heading=h.o9thwxp2o68r - recordings_url: https://www.youtube.com/watch?v=Cqf9dIiS6Ig&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr - - description: sig-contribex mentoring subproject meeting (EU/NA Friendly Time) - day: Tuesday - time: "08:30" - tz: PT - frequency: 2nd and 4th Tuesday of each month - url: https://zoom.us/j/98162537924 - archive_url: https://docs.google.com/document/d/1qf-02B7EOrItQgwXFxgqZ5qjW0mtfu5qkYIF1Hl4ZLI/edit#heading=h.o9thwxp2o68r - recordings_url: https://www.youtube.com/watch?v=Cqf9dIiS6Ig&list=PL69nYSiGNLP2x_48wbOPO0vXQgNTm_xxr - name: slack-infra description: Creates and maintains tools and automation for Kubernetes Slack. contact: @@ -1320,6 +1304,14 @@ sigs: url: https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit archive_url: https://docs.google.com/document/d/1h5sMhBpPB5unJmBAS7KzDiPs-_eFQOu5o4UyHwMtFCA/edit recordings_url: https://www.youtube.com/playlist?list=PLAOP7m08QDCWZ7RwGca6cU4vzrOMw3ht7 + - description: Localization Subgroup Meeting + day: Monday + time: "15:00" + tz: UTC + frequency: monthly + url: https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/ + archive_url: https://docs.google.com/document/d/1NwO1AN8Ea2zlK8uAdaDAKf1-LZDAFvSewIfrKqfl5No/ + recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP3b5hlx0YV7Lo7DtckM84y8 - description: Regular SIG Meeting day: Tuesday time: "17:30" @@ -1713,11 +1705,11 @@ sigs: slack: node-problem-detector owners: - https://raw.githubusercontent.com/kubernetes/node-problem-detector/master/OWNERS - - name: seccomp-operator + - name: security-profiles-operator contact: - slack: seccomp-operator + slack: security-profiles-operator owners: - - https://raw.githubusercontent.com/kubernetes-sigs/seccomp-operator/master/OWNERS + - https://raw.githubusercontent.com/kubernetes-sigs/security-profiles-operator/master/OWNERS - dir: sig-release name: Release mission_statement: > @@ -1992,7 +1984,7 @@ sigs: time: "12:00" tz: PT (Pacific Time) frequency: biweekly - url: https://zoom.us/j/8416212023 + url: https://zoom.us/j/9934z1184192?pwd=L25Tc0ZOL3FqU09KNERlTU12dFhTQT09 archive_url: https://docs.google.com/document/d/1GgmmNYN88IZ2v2NBiO3gdU8Riomm0upge_XNVxEYXp0/edit?usp=sharing recordings_url: https://www.youtube.com/playlist?list=PL69nYSiGNLP1mXOLAc9ti0oX8s_ookQCi contact: @@ -2026,9 +2018,9 @@ sigs: - github: jberkhahn name: Jonathan Berkhahn company: IBM - - github: mszostok - name: Mateusz Szostok - company: Independent + - github: jhvhs + name: Konstantin Semenov + company: VMware emeritus_leads: - github: arschles name: Aaron Schlesinger @@ -2040,6 +2032,8 @@ sigs: name: Jay Boyd - github: kibbles-n-bytes name: Michael Kibbe + - github: mszostok + name: Mateusz Szostok - github: pmorie name: Paul Morie - github: vaikas-google @@ -2153,6 +2147,7 @@ sigs: contact: slack: sig-storage-cosi owners: + - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-api/master/OWNERS - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-controller/master/OWNERS - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-csi-adapter/master/OWNERS - https://raw.githubusercontent.com/kubernetes-sigs/container-object-storage-interface-provisioner-sidecar/master/OWNERS @@ -2584,14 +2579,14 @@ workinggroups: time: "5:00" tz: UTC frequency: every four weeks - url: https://zoom.us/j/760932414 + url: https://zoom.us/j/91251176046?pwd=cmdqclovM3R3eDB1VlpuL1ZGU1hnZz09 archive_url: https://docs.google.com/document/d/1Yuwy9IO4X6XKq2wLW0pVZn5yHQxlyK7wdYBZBXRWiKI/edit?usp=sharing - description: Regular WG Meeting (Pacific Time) day: Wednesday time: "09:00" tz: PT frequency: every four weeks - url: https://zoom.us/j/760932414 + url: https://zoom.us/j/92778512626?pwd=MXhlemwvYnhkQmkxeXllQ0Z5VGs4Zz09 archive_url: https://docs.google.com/document/d/1Yuwy9IO4X6XKq2wLW0pVZn5yHQxlyK7wdYBZBXRWiKI/edit?usp=sharing contact: slack: wg-iot-edge @@ -2634,49 +2629,6 @@ workinggroups: contact: slack: wg-k8s-infra mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-k8s-infra -- dir: wg-lts - name: LTS - mission_statement: > - Answer the question: Does Kubernetes need a longer support term? If yes, figure - out what that looks like for Kubernetes and propose this to the rest of the project. - If no, figure out how to help end users cope with this and propose that to the - rest of the project. If a proposal is accepted, the working group's mission will - change to implement it. - - The working group is sponsored by SIG Release, but has the potential to span almost - all SIGs. For more background see the [WG formation proposal](https://docs.google.com/presentation/d/1-Z-mUNIs3mUi7AdP1KwoAVNviwKrCoo3lxMb5wzCWbk/edit?usp=sharing). - - charter_link: charter.md - stakeholder_sigs: - - API Machinery - - CLI - - Node - label: lts - leadership: - chairs: - - github: imkin - name: Dhawal Yogesh Bhanusali - company: VMware - - github: quinton-hoole - name: Quinton Hoole - company: Huawei - - github: tpepper - name: Tim Pepper - company: VMware - - github: youngnick - name: Nick Young - company: VMware - meetings: - - description: Regular WG Meeting - day: Tuesday - time: "09:00" - tz: PT (Pacific Time) - frequency: bi-weekly - url: https://zoom.us/j/473177294 - archive_url: https://docs.google.com/document/d/1J2CJ-q9WlvCnIVkoEo9tAo19h08kOgUJAS3HxaSMsLA/edit?usp=sharing - contact: - slack: wg-lts - mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-lts - dir: wg-multitenancy name: Multitenancy mission_statement: > @@ -2785,39 +2737,43 @@ workinggroups: contact: slack: wg-policy mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-policy -- dir: wg-security-audit - name: Security Audit +- dir: wg-reliability + name: Reliability mission_statement: > - Perform a security audit on k8s with a vendor and produce as artifacts a threat - model and whitepaper outlining everything found during the audit. + Allow users to safely use Kubernetes for managing production workloads by ensuring + Kubernetes is stable and reliable. + charter_link: charter.md stakeholder_sigs: - - Auth - label: security-audit + - Architecture + - Cluster Lifecycle + - Release + - Scalability + - Testing + label: reliability leadership: chairs: - - github: aasmall - name: Aaron Small - company: Invitae - - github: cji - name: Craig Ingram - company: Stripe - - github: jaybeale - name: Jay Beale - company: InGuardians - - github: joelsmith - name: Joel Smith + - github: deads2k + name: David Eads company: Red Hat + - github: stevekuznetsov + name: Steve Kuznetsov + company: Red Hat + - github: wojtek-t + name: Wojciech Tyczynski + company: Google meetings: - description: Regular WG Meeting day: Monday - time: "12:00" + time: "11:00" tz: PT (Pacific Time) - frequency: weekly - url: https://docs.google.com/document/d/1RbC4SBZBlKth7IjYv_NaEpnmLGwMJ0ElpUOmsG-bdRA/edit + frequency: biweekly + url: https://zoom.us/j/97964505804?pwd=R3hzSnArQWJHYmdWUnpSUDh3aXhFUT09 + archive_url: https://docs.google.com/document/d/1KF_kof3rBWzis87wMkwXicetREuutxlPI6dFDSqdWbo/edit + recordings_url: TODO contact: - slack: wg-security-audit - mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-security-audit + slack: wg-reliability + mailing_list: https://groups.google.com/forum/#!forum/kubernetes-wg-reliability usergroups: - dir: ug-big-data name: Big Data @@ -2956,7 +2912,7 @@ committees: company: Microsoft - github: tallclair name: Tim Allclair - company: Google + company: Apple meetings: [] contact: private_mailing_list: security@kubernetes.io @@ -2989,24 +2945,31 @@ committees: - github: dims name: Davanum Srinivas company: VMware - - github: lachie83 - name: Lachlan Evenson - company: Microsoft + - github: liggitt + name: Jordan Liggitt + company: Google + - github: mrbobbytables + name: Bob Killen + company: Google - github: nikhita name: Nikhita Raghunath company: VMware - github: parispittman name: Paris Pittman company: Apple - - github: spiffxp - name: Aaron Crickenberger - company: Google meetings: + - description: Private Steering Committee Meeting + day: third Monday + time: "9:30" + tz: PT (Pacific Time) + frequency: monthly + url: https://bit.ly/k8s-steering-wd + recordings_url: https://www.youtube.com/watch?v=YAzgJRQxsdc&list=PL69nYSiGNLP1yP1B_nd9-drjoxp0Q14qM - description: Public Steering Committee Meeting - day: Monday - time: "11:00" + day: first Monday + time: "9:30" tz: PT (Pacific Time) - frequency: biweekly + frequency: monthly url: https://bit.ly/k8s-steering-wd recordings_url: https://www.youtube.com/watch?v=YAzgJRQxsdc&list=PL69nYSiGNLP1yP1B_nd9-drjoxp0Q14qM contact: diff --git a/wg-iot-edge/README.md b/wg-iot-edge/README.md index 40ac7ff1..6ea9e433 100644 --- a/wg-iot-edge/README.md +++ b/wg-iot-edge/README.md @@ -15,9 +15,9 @@ A Working Group dedicated to discussing, designing and documenting using Kuberne * SIG Network ## Meetings -* APAC WG Meeting: [Wednesdays at 5:00 UTC](https://zoom.us/j/760932414) (every four weeks). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=5:00&tz=UTC). +* APAC WG Meeting: [Wednesdays at 5:00 UTC](https://zoom.us/j/91251176046?pwd=cmdqclovM3R3eDB1VlpuL1ZGU1hnZz09) (every four weeks). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=5:00&tz=UTC). * [Meeting notes and Agenda](https://docs.google.com/document/d/1Yuwy9IO4X6XKq2wLW0pVZn5yHQxlyK7wdYBZBXRWiKI/edit?usp=sharing). -* Regular WG Meeting (Pacific Time): [Wednesdays at 09:00 PT](https://zoom.us/j/760932414) (every four weeks). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT). +* Regular WG Meeting (Pacific Time): [Wednesdays at 09:00 PT](https://zoom.us/j/92778512626?pwd=MXhlemwvYnhkQmkxeXllQ0Z5VGs4Zz09) (every four weeks). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=09:00&tz=PT). * [Meeting notes and Agenda](https://docs.google.com/document/d/1Yuwy9IO4X6XKq2wLW0pVZn5yHQxlyK7wdYBZBXRWiKI/edit?usp=sharing). ## Organizers diff --git a/wg-naming/OWNERS b/wg-naming/OWNERS new file mode 100644 index 00000000..b85dde17 --- /dev/null +++ b/wg-naming/OWNERS @@ -0,0 +1,8 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - wg-naming-leads +approvers: + - wg-naming-leads +labels: + - wg/naming diff --git a/wg-naming/language-evaluation-framework.md b/wg-naming/language-evaluation-framework.md new file mode 100644 index 00000000..959e9270 --- /dev/null +++ b/wg-naming/language-evaluation-framework.md @@ -0,0 +1,118 @@ + +# A framework for evaluating harmful language + +## About + +The language evaluation framework is a guidance document developed by the Kubernetes Naming Working Group. It outlines a structured framework for evaluating language and terminology for harm to the community. This enables the community to navigate divisive conversations with a measure of clarity. + +The framework was created for an open source technology project. The framework may be applicable to other fields as well. + +## Using the framework + +The framework is divided into three sections: first-, second-, and third-order concerns, ranked in order of potential harm to the community. + +First-order concerns are language where harm is egregious, overt, and clearly problematic. Second-order concerns are language which is problematic but with a less definite impact. Third-order concerns indicate language that could use improvement but does no demonstrable harm. + +Answer all questions for each term evaluated. + + +When complete, consider questions answered in the affirmative: in general, the more questions answered “yes” or “possibly”, the more likely it is that the language in question needs to be replaced. + +If any first-order concerns are a “yes”, replace the language. + +If a significant number of second- or third- order concerns are a “yes”, strongly consider replacing the language. + +This framework is intentionally non-prescriptive. The intention in this work is to reduce harm for the community; let harm reduction guide your decisions. + +### First-order concerns + +First-order concerns are characterized by: + +- Overtness: regardless of its use in the context of code or technology, there is little to no ambiguity outside of technology as to whether the language in question indicates harm +- Identity-specificity: language in question specifically unambiguously identifies a group of people + +#### Is the term overtly racist? + +Examples include “master/slave”. + +#### Is the term overtly sexist, transphobic, or pejorative about a gender identity? + +Examples do _not_ include “transclusion” of dependencies, or “binary” operators. + +#### Is the term overtly ableist, or pejorative to neurodiverse or disabled people + +Examples include performing “sanity checks”. + +#### Is the term overtly homophobic? + +Examples do not include “homogenizing” or “homogenous” data. + +### Second-order concerns + +Second-order concerns are characterized by: + +- Ambiguity: outside the context of code or technology, language might have connotations related to harmful scenarios like war, militarization, or policing, but the actual etymology of the term is not related to harm of a specific identity +- Lack of specific identity: concerns in this category do not target specific identities, or do so in a non-overt way + +#### Is the term violent? + +Examples include “KILL” commands in Unix systems. + +#### Is the term militaristic? + +Examples include “marshal/unmarshal”. + + +### Third-order concerns + +Third-order concerns are characterized by: + +- Clarity: is the language in use a metaphor that could be described more precisely using different words? + +- Anthropomorphism: does language unnecessarily humanize components or processes? + +- Idiomatic: Is language unclear to someone outside a specific culture? + + +#### Is the term evocative instead of descriptive? + +Examples include “PetSet” (evocative) versus “StatefulSet” (descriptive). + +#### Is the term ambiguous? + +Examples include the use of ABORT/STOP/KILL in Unix-like systems, where they map to specific behaviors, versus general usage in programming languages, where they map to different behaviors or are used interchangeably. + +## Footnotes + +### Changes over time + +In general, strong democratic societies become more progressive and accepting as time passes. This is a feature, not a bug. + +As a result, terms that were once deemed acceptable may, at some future point, be deemed unacceptable. + +We recommend: + +- Placing a date at the top of any documents/recommendations related to naming, language inclusivity, or harm reduction +- Expecting that some of your work will need re-evaluation at a later date +- Openness to updating language as readers and cultures change + + +### Dealing with trolls + +In the handful of months since this work began, both Kubernetes as a whole and WG Naming have dealt with a number of issues and comments from trolls. We anticipate that anyone using this document to guide their own work will receive the same kind of attention. + +In Kubernetes we mostly encounter [sea lions](http://wondermark.com/1k62/) (concern trolls), who seek to legitimize debate over false concerns in order to use up contributors' energy and time. + +We work with our GitHub and other moderation teams to shut down trolling behavior at the source and remove trolling content. + +In cases where it’s unclear whether the poster is a legitimate user or a troll, we direct the work back to them: because they’re clearly “legitimately interested” in this topic, we ask them to join us in the WG Naming mailing list, drafting a formal suggestion (attached to an email address and identity we can track) and suggesting replacement terminology. Most trolls do not want to put in the effort. + +Rather than be discouraged by trolls, consider it a heartening sign that you are engaged in meaningful work. + +### Kudos + +This work would not have come into shape without referencing the following resources freely available online. We thank the authors of these original documents for helping guide our thoughts on the topic: + +- [APA Style Guide: General Principles for reducing bias](https://apastyle.apa.org/style-grammar-guidelines/bias-free-language/general-principles) +- [Shopify Polaris Content Guidelines: Descriptive vs. Evocative names](https://polaris.shopify.com/content/naming#section-descriptive-vs-evocative-names) +- [CNET: Twitter engineers: out with the old words...](https://www.cnet.com/news/twitter-engineers-replace-racially-loaded-tech-terms-like-master-slave/) diff --git a/wg-naming/recommendations/template.md b/wg-naming/recommendations/template.md new file mode 100644 index 00000000..9779d80c --- /dev/null +++ b/wg-naming/recommendations/template.md @@ -0,0 +1,26 @@ +# Recommendation: replace Old Term + +**Last Updated**: date PR was last updated, e.g. 2020-10-16 +**Status:** Accepted + +## Suggested Alternatives + +Replacements: +- `new term`: description of where this term is applicable. +<any additional terms> + +- Make the recommendation the title of the PR. For example: "Change default repository branches from 'master' to 'main'" +- Provide a brief, 1-3 sentence summary of the reasoning for this change +- Provide alternate recommendation(s) if needed + +## Context + +- Provide information about the recommendation. Why does this proposal matter? Who does it affect? How will it help? How does it evaluate against the [language-evaluation-framework]? + +## Precedents + +Provide any research, links to PR(s) from the Kubernetes project or other communities, standards body documents, or style guides that provide precedent for this decision. + +## Impact + +Link to the results of a [Hound](https://cs.k8s.io/) keyword search. What impact will this change create? diff --git a/wg-reliability/README.md b/wg-reliability/README.md new file mode 100644 index 00000000..d8a612a7 --- /dev/null +++ b/wg-reliability/README.md @@ -0,0 +1,39 @@ +<!--- +This is an autogenerated file! + +Please do not edit this file directly, but instead make changes to the +sigs.yaml file in the project root. + +To understand how this file is generated, see https://git.k8s.io/community/generator/README.md +---> +# Reliability Working Group + +Allow users to safely use Kubernetes for managing production workloads by ensuring Kubernetes is stable and reliable. + +The [charter](charter.md) defines the scope and governance of the Reliability Working Group. + +## Stakeholder SIGs +* SIG Architecture +* SIG Cluster Lifecycle +* SIG Release +* SIG Scalability +* SIG Testing + +## Meetings +* Regular WG Meeting: [Mondays at 11:00 PT (Pacific Time)](https://zoom.us/j/97964505804?pwd=R3hzSnArQWJHYmdWUnpSUDh3aXhFUT09) (biweekly). [Convert to your timezone](http://www.thetimezoneconverter.com/?t=11:00&tz=PT%20%28Pacific%20Time%29). + * [Meeting notes and Agenda](https://docs.google.com/document/d/1KF_kof3rBWzis87wMkwXicetREuutxlPI6dFDSqdWbo/edit). + * [Meeting recordings](TODO). + +## Organizers + +* David Eads (**[@deads2k](https://github.com/deads2k)**), Red Hat +* Steve Kuznetsov (**[@stevekuznetsov](https://github.com/stevekuznetsov)**), Red Hat +* Wojciech Tyczynski (**[@wojtek-t](https://github.com/wojtek-t)**), Google + +## Contact +- Slack: [#wg-reliability](https://kubernetes.slack.com/messages/wg-reliability) +- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-wg-reliability) +- [Open Community Issues/PRs](https://github.com/kubernetes/community/labels/wg%2Freliability) +<!-- BEGIN CUSTOM CONTENT --> + +<!-- END CUSTOM CONTENT --> diff --git a/wg-reliability/charter.md b/wg-reliability/charter.md new file mode 100644 index 00000000..699e09bb --- /dev/null +++ b/wg-reliability/charter.md @@ -0,0 +1,114 @@ +# WG Reliability Charter + +This charter adheres to the conventions described in the [Kubernetes Charter README] +and uses the Roles and Organization Management outlined in [sig-governance]. + +[sig-governance]: https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md +[Kubernetes Charter README]: https://github.com/kubernetes/community/blob/master/committee-steering/governance/README.md + +## Scope + +The Reliability Working Group (WG Reliability) is organized with the goal of +allowing users to safely use Kubernetes for managing production workloads by +ensuring Kubernetes is stable and reliable. + +### In Scope + +- What reliability means for Kubernetes and how to measure it? +- Measuring Kubernetes reliability in tests +- Introducing criteria for blocking the release if the reliability is + below the bar +- Building a list of end-user outages and reliability issues + (if applicable with mitigations and/or workarounds) +- Creating and prioritizing a list of areas that require reliability + investments +- Work with relevant SIGs on delivering necessary infrastructure + (e.g. test frameworks) to unblock further steps +- Initiate and drive cross-SIG reliability improvements + +For all of the above, we will focus on core Kubernetes components and addons. +Other SIG subprojects/components (e.g. SIG Scheduling descheduler) are out of +scope. + +### Out of scope + +- Designing and executing on improvements clearly falling into individual SIG + responsibilities. + +## Special Powers + +The Reliability WG will create a proposal that will allow blocking +feature-oriented contributions from any SIG if requested reliability-related +improvements are not being addressed. The exact criteria will have to be +approved by SIG Architecture, SIG Release, SIG Testing and automatically +enforced. + +The exact scope of blocking hasn't yet been decided. There are at least two +high-level options: blocking PRs and blocking graduation of features. +Conformance vs everything enabled by default has to be explicitly defined). +As a result, the mechanics of blocking hasn't been decided as they will +heavily depend on the exact scope. As mentioned above, all of those will have +to be explicitly approved by SIGs mentioned above. + +The blocking criteria (once approved) will be passed to SIG Architecture +Production Readiness subproject or SIG Architecture generally for reassignment +at the lead's discretion. + +Note that ideally the criteria should be extendable to other areas (e.g. +security), but that's not the goal by itself. + +## Stakeholders + +Stakeholders in this working group span multiple SIGs. + +In the first phase of defining reliability for Kubernetes building list of +reliability gaps and areas for investments the following SIGs will be +involved: + +- SIG Architecture + High-level input on requirements. +- SIG Scalability + Input on scale test gaps and reliability issues at scale. +- SIG Cluster Lifecycle + Input on cluster setup and upgrade mechanics. +- SIG Release + Input on blocking and soak requirements. +- SIG Testing + Input on testing mechanics, missing frameworks, etc. +- SIG * + Input on reliability gaps in their areas. + +The group will be also reaching out to users and cluster operator +(e.g. via surveys), to build the full picture. We will likely leverage +the CNCF end-user group for this purpose. + +In the later phase improving reliability, every single SIG may potentially +be involved depending on the findings from the initial phase. + +## Deliverables + +The artifacts the group is supposed to deliver include: +- Document defining what reliability means for Kubernetes and how to measure it. +- List of known user outages and potential failure modes +- List of specific investmenets that should happen to improve reliability +- Set of processes to introduce in Kubernetes to avoid over time degradation + of reliability + +The actual investments will be owned by corresponding SIGs. + +## Roles and Organization Management + +This sig follows adheres to the Roles and Organization Management outlined in +[sig-governance] and opts-in to updates and modifications to [sig-governance]. + +[sig-governance]: https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md + +## Timelines and Disbanding + +The exact timeline for existing of this working group is hard to predict at +this time. + +The group will start working on the deliverables mentioned above. Once the +group we will be satisfied with the current shape of them and no additional +coordination on their execution will be needed, we will retire Working Group +and pass oversight of reliability to SIG Architecture PRR subproject. |
