1 of 84

2 of 84

From Automation to Community:

A Deep Dive Into SIG Contributor Experience

Priyanka Saggu, SUSE

Madhav Jivrajani, VMware

Kaslin Fields, Google

3 of 84

Code of Conduct

Remember the Golden Rule: Treat others as you would want to be treated - with kindness and respect

​

​

Scan the QR code to access and

review the CNCF Code of Conduct:

​

​

4 of 84

Virtual Audience Closed Captioning

​

Closed captioning for the virtual audience is available during each session through Wordly. The Wordly functionality can be found under the “Translations” tab on the session page.

​

Wordly will default to English. If another language is needed, simply click the dropdown at the bottom of the “Translations” tab and choose from one of 26+ languages available so you don’t miss a beat from our presenters.

​

​

*Note: Closed captioning is ONLY available during the scheduled live sessions and will not be available for the recordings on-demand within the virtual conference platform.

5 of 84

Who Are We?

Madhav Jivrajani

@MadhavJivrajani

Kaslin Fields

@kaslinfields

Priyanka Saggu

@_psaggu

6 of 84

Before We Start…

7 of 84

�registry.k8s.io is GA!🎉

​

🚨❄️k8s.gcr.io is frozen❄️🚨

​

More info on

https://k8s.io/image-registry-redirect

​

8 of 84

How Does ContribEx… ContribEx?

9 of 84

How Does ContribEx… ContribEx?

Subprojects!

10 of 84

Subprojects Overview

  • Community - Owns and manages overall community repo, including community group documentation and operations.

11 of 84

Subprojects Overview

  • Community - Owns and manages overall community repo, including community group documentation and operations.
  • Community Management - Manages operations and policy for upstream community group communication platforms.

12 of 84

Subprojects Overview

  • Community - Owns and manages overall community repo, including community group documentation and operations.
  • Community Management - Manages operations and policy for upstream community group communication platforms.
  • Contributor Documentation - Writes and maintains documentation around contributing to Kubernetes, including the Contributor's Guide, Developer's Guide, and contributor website.

13 of 84

Subprojects Overview

  • Community - Owns and manages overall community repo, including community group documentation and operations.
  • Community Management - Manages operations and policy for upstream community group communication platforms.
  • Contributor Documentation - Writes and maintains documentation around contributing to Kubernetes, including the Contributor's Guide, Developer's Guide, and contributor website.
  • Devstats - Maintains and updates https://k8s.devstats.cncf.io, including taking requests for new charts.

14 of 84

Subprojects Overview

  • Elections - New subproject! Oversees running elections in the community. Maintains documentation and software for elections.

15 of 84

Subprojects Overview

  • Elections - New subproject! Oversees running elections in the community. Maintains documentation and software for elections.
  • Events - Creates and runs contributor-focused events, such as the Contributor Summit. Event Teams are part of this subproject.

16 of 84

Subprojects Overview

  • Elections - New subproject! Oversees running elections in the community. Maintains documentation and software for elections.
  • Events - Creates and runs contributor-focused events, such as the Contributor Summit. Event Teams are part of this subproject.
  • GitHub Management - Manages and controls Github permissions, repos, and groups, including Org Membership.

17 of 84

Subprojects Overview

  • Elections - New subproject! Oversees running elections in the community. Maintains documentation and software for elections.
  • Events - Creates and runs contributor-focused events, such as the Contributor Summit. Event Teams are part of this subproject.
  • GitHub Management - Manages and controls Github permissions, repos, and groups, including Org Membership.
  • Mentoring - Oversees and develops programs for helping contributors ascend the contributor ladder, including our group mentoring cohorts.

18 of 84

Subprojects Overview

  • Elections - New subproject! Oversees running elections in the community. Maintains documentation and software for elections.
  • Events - Creates and runs contributor-focused events, such as the Contributor Summit. Event Teams are part of this subproject.
  • GitHub Management - Manages and controls Github permissions, repos, and groups, including Org Membership.
  • Mentoring - Oversees and develops programs for helping contributors ascend the contributor ladder, including our group mentoring cohorts.
  • Slack Infra - Creates and maintains tools and automation for Kubernetes Slack.

19 of 84

Subprojects Overview

  • Elections - New subproject! Oversees running elections in the community. Maintains documentation and software for elections.
  • Events - Creates and runs contributor-focused events, such as the Contributor Summit. Event Teams are part of this subproject.
  • GitHub Management - Manages and controls Github permissions, repos, and groups, including Org Membership.
  • Mentoring - Oversees and develops programs for helping contributors ascend the contributor ladder, including our group mentoring cohorts.
  • Slack Infra - Creates and maintains tools and automation for Kubernetes Slack.
  • Contributor Comms - Amplifying the success of and distributing information to Kubernetes contributors.

20 of 84

Mentoring Prereq - The Ladder

Subproject Owner

- Set priorities and approve proposals for subproject

- Responsibility and leadership for entire repository/directory

Approver

- Approve contributions for acceptance

- Highly experienced reviewer and contributor in subproject

Reviewer

- History of reviewing; reviews frequently

- Authorship in subproject

Member

- Active contributor to the project

- Sponsored by two Reviewers

Non-member Contributors

21 of 84

Mentoring

  • Programs / Initiatives:
    • Group Mentoring Cohorts - Semi-structured group mentoring initiative with a small group of people
      • We need more SIGs/WGs to do this!
        • We are happy to help more groups kick this off, reach out to us on the #sig-contribex slack channel.
    • Shadow Programs (Building Teams) - Scalable apprenticeship program
      • The folks presenting here as shadows for SIG Contribex leadership positions!

22 of 84

Mentoring

  • Few projects submitted for Google Summer of Code (GSoC)
  • Others programs put on hold based on interest in the community:
    • Outreachy
    • Meet Our Contributors (merged with Office Hours)
  • Need more approvers/subproject owners with bandwidth to be able to assist in mentoring efforts

​

23 of 84

GitHub Management: Update

Changes In Lifecycle and Triage Flow of Issues

​

​

24 of 84

GitHub Management: Update

Previous Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

25 of 84

GitHub Management: Update

Previous Issue Triage and Lifecycle Flow

Issue

needs-triage

/triage accepted

triage/accepted

90 days

of inactivity

lifecycle/stale

30 more days

of inactivity

lifecycle/rotten

30 more days

of inactivity

/close not-planned

26 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

27 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

Assuming issue has

triage/accepted

Don’t mark as stale/rotten

Hence, avoid auto-close.

28 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

Assuming issue has

triage/accepted

Don’t mark as stale/rotten

Hence, avoid auto-close.

Assuming issue has NO

triage/accepted

Previous lifecycle kicks in

29 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

Assuming issue has

triage/accepted

Don’t mark as stale/rotten

Hence, avoid auto-close.

Assuming issue has NO

triage/accepted

Previous lifecycle kicks in

priority/important-longterm

Assuming issue has

triage/accepted

with

/remove-triage accepted

After 1 year of inactivity

30 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

Assuming issue has

triage/accepted

Don’t mark as stale/rotten

Hence, avoid auto-close.

Assuming issue has NO

triage/accepted

Previous lifecycle kicks in

Assuming issue has

triage/accepted

priority/important-soon

with

/remove-triage accepted

priority/important-longterm

with

/remove-triage accepted

After 90 days of inactivity

After 1 year of inactivity

31 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

Assuming issue has

triage/accepted

Don’t mark as stale/rotten

Hence, avoid auto-close.

Assuming issue has NO

triage/accepted

Previous lifecycle kicks in

Assuming issue has

triage/accepted

priority/critical-urgent

with

/remove-triage accepted

priority/important-soon

with

/remove-triage accepted

priority/important-longterm

with

/remove-triage accepted

After 30 days of inactivity

After 90 days of inactivity

After 1 year of inactivity

32 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

Assuming issue has

triage/accepted

Don’t mark as stale/rotten

Hence, avoid auto-close.

Assuming issue has NO

triage/accepted

Previous lifecycle kicks in

Assuming issue has

triage/accepted

priority/critical-urgent

with

After 30 days of inactivity

/remove-triage accepted

priority/important-soon

with

After 90 days of inactivity

/remove-triage accepted

priority/important-longterm

with

After 1 year of inactivity

/remove-triage accepted

priority/backlog

with

After 1 year of inactivity

/remove-triage accepted

33 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

needs-triage

/triage accepted

triage/accepted

Assuming issue has

triage/accepted

Don’t mark as stale/rotten

Hence, avoid auto-close.

Assuming issue has NO

triage/accepted

Previous lifecycle kicks in

Assuming issue has

triage/accepted

priority/critical-urgent

with

After 30 days of inactivity

/remove-triage accepted

priority/important-soon

with

After 90 days of inactivity

/remove-triage accepted

priority/important-longterm

with

After 1 year of inactivity

/remove-triage accepted

priority/backlog

with

After 1 year of inactivity

/remove-triage accepted

No auto-close

No auto-close

No auto-close

Auto-close

34 of 84

GitHub Management: Update

New Issue Triage and Lifecycle Flow

Note: Additionally, if issues have good first issue and/or help wanted labels, we exclude them from the entire lifecycle process.

​

35 of 84

GitHub Management: Update

Thank you @tallclair and @BenTheElder for these changes! ✨

36 of 84

Deep Dive: Annual Reports

What Are Annual Reports?

​

  • The Kubernetes Annual Report is a document worked on and produced by the Kubernetes community to succinctly describe what the community has been upto in the past year.
  • This document covers details from what each SIG/WG has been upto, to broader topics of community health and calls for action.

​

37 of 84

Deep Dive: Annual Reports

Why Are Annual Reports Important?

​

  • Among other important things, it breaks down these updates by SIGs/WGs.
  • And each of these have a Help Wanted section.
    • Use this to see what areas need most help in a SIG
    • You can also use this to aid conversations with your employer!

​

38 of 84

Deep Dive: Annual Reports

Current Process for Generating Annual Reports

❯ git clone https://github.com/kubernetes/community.git

​

❯ cd community/

​

❯ make ANNUAL_REPORT=true

39 of 84

Deep Dive: Annual Reports

Current Process for Generating Annual Reports

go run ./generator/app.go

...

Generating annual reports

Generating generator/generated/2022_sig-docs.md

...

Generating sig-api-machinery/annual-report-2022.md

...

Generating generator/generated/2022_sig-instrumentation.md

...�Generating wg-api-expression/annual-report-2022.md

...�Finished generation!

​

❯ make ANNUAL_REPORT=true

Generated Annual Report templates for SIG(s) and WG(s)

40 of 84

Deep Dive: Annual Reports

Current Process for Generating Annual Reports

41 of 84

Deep Dive: Annual Reports

Current Process for Generating Annual Reports

go run ./generator/app.go

...

Generating annual reports

Generating generator/generated/2022_sig-docs.md

...

Generating sig-api-machinery/annual-report-2022.md

...

Generating generator/generated/2022_sig-instrumentation.md

...�Generating wg-api-expression/annual-report-2022.md

...�Finished generation!

❯ make ANNUAL_REPORT=true

Generated GitHub Issue Templates for SIG(s) and WG(s)

42 of 84

Deep Dive: Annual Reports

Current Process for Generating Annual Reports

❯ for i in $(ls -1 generator/generated/*.md); do hub issue create -F $i && rm $i; done

43 of 84

Deep Dive: Annual Reports

Current Process for Generating Annual Reports

❯ for i in $(ls -1 generator/generated/*.md); do hub issue create -F $i && rm $i; done

44 of 84

Deep Dive: Annual Reports

Sprinkling Some Automation On Annual Reports

Auto generating list of KEPs worked on by SIG(s) or WG(s) during the Annual Report year

45 of 84

Deep Dive: Annual Reports

Sprinkling Some Automation On Annual Reports

Auto generating list of KEPs worked on by SIG(s) or WG(s) during the Annual Report year

46 of 84

Deep Dive: Annual Reports

Sprinkling Some Automation On Annual Reports

Auto-generating new, retired & continuing subprojects & working groups during the Annual Report year

47 of 84

Deep Dive: Annual Reports

Sprinkling Some Automation On Annual Reports

Auto-generating new, retired & continuing subprojects & working groups during the Annual Report year

48 of 84

Deep Dive: Granular Approval

What is “Approval” and how does it work currently?

  • Reviewers
  • Approvers
  • OWNERS file

An OWNERS file:

reviewers:

  • x
  • y

approvers:

  • z

​

49 of 84

Deep Dive: Granular Approval

Current Approval Process

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

50 of 84

Deep Dive: Granular Approval

Current Approval Process

pkg

├── api

│ ├── first.go

│ └── first_test.go

└── registry

├── apps

│ ├── one.go

│ └── one_test.go

└── first.go

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

51 of 84

Deep Dive: Granular Approval

Current Approval Process

pkg

├── api

│ ├── first.go

│ └── first_test.go

└── registry

├── apps

│ ├── one.go

│ └── one_test.go

└── first.go

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

x comments: /approve

52 of 84

Deep Dive: Granular Approval

Current Approval Process

pkg

├── api ✓

│ ├── first.go ✓

│ └── first_test.go ✓

└── registry

├── apps

│ ├── one.go

│ └── one_test.go

└── first.go

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

x comments: /approve

53 of 84

Deep Dive: Granular Approval

Current Approval Process

pkg ✓

├── api ✓

│ ├── first.go ✓

│ └── first_test.go ✓

└── registry ✓

├── apps

│ ├── one.go ✓

│ └── one_test.go ✓

└── first.go ✓

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

b comments: /approve

54 of 84

Deep Dive: Granular Approval

Current Approval Process: The Problem

pkg ✓

├── api ✓

│ ├── first.go ✓

│ └── first_test.go ✓

└── registry ✓

├── apps

│ ├── one.go ✓

│ └── one_test.go ✓

└── first.go ✓

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

b comments: /approve

b only has expertise on testing, remaining expertise lies with c, a.

55 of 84

Deep Dive: Granular Approval

Current Approval Process: The Problem

The problem becomes more elaborate when changes like dependency bumps are made to Kubernetes

​

56 of 84

Deep Dive: Granular Approval

Granular Approval

This work allows approvers to approve files granularly:

  • /approve files <path-to-a-single-file>
  • /approve files <path-with-wild-card>
  • /approve files <regex matching files>

​

This helps distribute approval privileges among approvers and approvers no longer have to (unavoidably) approve files they do not have confidence over.

57 of 84

Deep Dive: Granular Approval

Granular Approval Process

pkg

├── api ✓

│ ├── first.go ✓

│ └── first_test.go ✓

└── registry

├── apps

│ ├── one.go

│ └── one_test.go

└── first.go

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

b comments: /approve *_test.go

58 of 84

Deep Dive: Granular Approval

Granular Approval Process

pkg

├── api ✓

│ ├── first.go ✓

│ └── first_test.go ✓

└── registry

├── apps

│ ├── one.go

│ └── one_test.go ✓

└── first.go

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

b comments: /approve *_test.go

59 of 84

Deep Dive: Granular Approval

Granular Approval Process

pkg

├── api ✓

│ ├── first.go ✓

│ └── first_test.go ✓

└── registry

├── apps ✓

│ ├── one.go ✓

│ └── one_test.go ✓

└── first.go

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

b comments: /approve *_test.go

c comments: /approve pkg/registry/apps/*

​

60 of 84

Deep Dive: Granular Approval

Granular Approval Process

pkg ✓

├── api ✓

│ ├── first.go ✓

│ └── first_test.go ✓

└── registry ✓

├── apps ✓

│ ├── one.go ✓

│ └── one_test.go ✓

└── first.go ✓

​

​

pkg/

├── api/

│ ├── OWNERS

└── registry/

├── OWNERS

├── apps/

​

​

pkg/api/OWNERS = x, y, z (approvers)

pkg/registry/OWNERS = a, b, c (approvers)

​

b comments: /approve *_test.go

c comments: /approve pkg/registry/apps/*

a comments: /approve

61 of 84

Deep Dive: Peribolos Team Management

What is “Peribolos”?

Kubernetes Reconciliation Loop

Declared State

Observed State

Observe State

Take actions

62 of 84

Deep Dive: Peribolos Team Management

What is “Peribolos”?

Org Reconciliation Loop

Declared Members

Observed Members

List Members

Invite, Promote, Remove Members

63 of 84

Deep Dive: Peribolos Team Management

What is “Peribolos”?

Org Reconciliation Loop

Declared Members

Observed Members

List Members

Invite, Promote, Remove Members

Repeat for metadata, teams, et. al.

64 of 84

Deep Dive: Peribolos Team Management

How Does Peribolos Work?

  • Peribolos enables the declaration of GitHub org settings, teams, and memberships in yaml format.
  • GitHub is then updated to match the declared Org configuration.

65 of 84

Deep Dive: Peribolos Team Management

orgs:

​

this-org:

company: foo

email: foo

name: foo

description: foo

has_organization_projects: true

has_repository_projects: true

default_repository_permission: read

members_can_create_repositories: false

members:

- anne

- bob

admins:

- carl

Top Level Key

Name of GitHub Organisation (“kubernetes”, “kubernetes-sigs”, etc)

Org Settings

Org Member Settings

How Does Peribolos Work?

66 of 84

Deep Dive: Peribolos Team Management

orgs:

​

this-org:

...

teams:

team-one:

description: people working on team-one

privacy: closed

previously:

- old-team-one

members:

- anne

maintainers:

- jane

repos:

some-repo: admin

other-repo: read

team-two:

...

that-org:

...

Teams Settings

Team Config

Team Members

Ensure Team has Listed Permissions Levels on Repos in Org

How Does Peribolos Work?

67 of 84

❯ go run ./prow/cmd/peribolos --dump kubernetes-sigs \

--github-token-path ~/github-token > org-config.yaml

Deep Dive: Peribolos Team Management

How Does Peribolos Work?

  • Peribolos can dump the current configuration of a GitHub org into a yaml format.

68 of 84

❯ go run ./prow/cmd/peribolos --dump kubernetes-sigs \

--github-token-path ~/github-token > org-config.yaml

Deep Dive: Peribolos Team Management

How Does Peribolos Work?

  • Peribolos can dump the current configuration of a GitHub org into a yaml format.
  • Edit the `org-config.yaml` file before applying the org config, to remove any unwanted metadata that Peribolos shouldn't handle.

( use `org-config.yaml` for dry-run first! )

❯ go run ./prow/cmd/peribolos --config-path org.yaml \

--github-token-path ~/github-token # --confirm

69 of 84

Deep Dive: Peribolos Team Management

The Present State!

70 of 84

Deep Dive: Peribolos Team Management

The Present State!

71 of 84

Deep Dive: Peribolos Team Management

The Present State!

72 of 84

Deep Dive: Peribolos Team Management

(WIP) Solution!

73 of 84

Deep Dive: Peribolos Team Management

(WIP) Solution!

74 of 84

Deep Dive: Peribolos Team Management

(WIP) Solution!

75 of 84

Deep Dive: Peribolos Team Management

(WIP) Solution!

# restrictions.yaml

​

restrictions:

...

...

- path: "kubernetes/sigs-docs/teams.yaml"

allowedRepos:

- "^website"

...

...

- path: "kubernetes/sig-testing/teams.yaml"

allowedRepos:

- "^test-infra"

- "^publishing-bot"

...

...

# kubernetes/sig-docs/teams.yaml

​

teams:

...

website-admins:

description: Admin access to the website repo

previously:

- kubernetes-website-admins

members:

- divya-mohan0209

- jimangel

- natalisucks

- reylejano

privacy: closed

repos:

website: admin

test-infra: admin

​

76 of 84

Deep Dive: Peribolos Team Management

(WIP) Solution!

# restrictions.yaml

​

restrictions:

...

...

- path: "kubernetes/sigs-docs/teams.yaml"

allowedRepos:

- "^website"

...

...

- path: "kubernetes/sig-testing/teams.yaml"

allowedRepos:

- "^test-infra"

- "^publishing-bot"

...

...

# kubernetes/sig-docs/teams.yaml

​

teams:

...

website-admins:

description: Admin access to the website repo

previously:

- kubernetes-website-admins

members:

- divya-mohan0209

- jimangel

- natalisucks

- reylejano

privacy: closed

repos:

website: admin ✓

test-infra: admin ✗

​

❯ make verify

INFO[0000] Validating restrictions for kubernetes org

"kubernetes/sig-docs/teams.yaml": cannot define repo "test-infra" for team "website-admins"

FATA[0000] restriction violation(s) detected.

exit status 1

⚠️

77 of 84

Deep Dive: Peribolos Team Management

(WIP) Solution!

# restrictions.yaml

​

restrictions:

...

...

- path: "kubernetes/sigs-docs/teams.yaml"

allowedRepos:

- "^website"

...

...

- path: "kubernetes/sig-testing/teams.yaml"

allowedRepos:

- "^test-infra"

- "^publishing-bot"

...

...

# kubernetes/sig-docs/teams.yaml

​

teams:

...

website-admins:

description: Admin access to the website repo

previously:

- kubernetes-website-admins

members:

- divya-mohan0209

- jimangel

- natalisucks

- reylejano

privacy: closed

repos:

website: admin ✓

​

❯ make verify

INFO[0000] Validating restrictions for kubernetes org

SUCCESS verify-restrictions.sh 0s

✅

78 of 84

Get Involved!

​

79 of 84

Tips on your first SIG Meeting

  • Find a buddy
  • Volunteer to take notes
  • Attend regularly
    • Be stubborn!
  • Small, dependable contributions > volunteering for the world
  • SIGs should have a list of “good first issues” for you to chew on, if they don’t then … start with issue triaging

80 of 84

There are non-code related paths available

If you’re interested in having a non-code contributions meeting on a recurring meeting, please reach out on the #sig-contribex slack channel!

81 of 84

What are the most important areas that you can�help with?

  • Mentoring Mentoring Mentoring!
    • Get involved with the reorganization of mentoring, in any area!
      • Mentoring co-lead
      • Group Mentoring Coordinator
      • Outreachy, GSoC and/or LFX coordinator
      • SIG Lead Mentoring Coordinator

82 of 84

Where to find us

  • Chairs
    • @mrbobbytables
    • @jberkus
    • @kaslin
    • @palnabarun
    • you?
  • Technical Leads
    • @cblecker
    • @nikhita
    • @MadhavJivrajani
    • @Priyankasaggu11929
    • you?
  • Home page: README link
  • Slack channel: https://kubernetes.slack.com/messages/sig-contribex
  • List: https://groups.google.com/forum/#!forum/kubernetes-sig-contribex

83 of 84

Session Q+A

​

  • Virtual attendees may submit questions to speakers through the CNCF Slack channel: #2-Kubecon-sessions

​

  • Please create a thread and tag the speaker(s) with questions about their talk.

​

  • Questions will be answered by the speaker and/or other community members after the session concludes.

​

84 of 84

Thank you!