Slide 1

Slide 1 text

COSCUP x KCD Taiwan 2022 How to start contributing to Kubernetes Projects? Ader Fu COSCUP x KCD Taiwan 2022, July. 31, 2022

Slide 2

Slide 2 text

COSCUP x KCD Taiwan 2022 About me Ader Fu is a software engineer who likes open source. The experience of the community has Cloud Native Taiwan User Group volunteers, Kubernetes member/sig-docs reviewer , Istio member Love Skill: ESB,APIM,DevOps,Kubernetes Contact: Github: @ydFu Email: ader.ydfu@gmail.com 2

Slide 3

Slide 3 text

COSCUP x KCD Taiwan 2022 Outline Join in Kubernetes Community Community Group Contribute to Kubernetes step by step 3

Slide 4

Slide 4 text

COSCUP x KCD Taiwan 2022 Join in Kubernetes community 4

Slide 5

Slide 5 text

COSCUP x KCD Taiwan 2022 Why should you contribute? More contribute! More experience! Mutually beneficial! First contribute 5

Slide 6

Slide 6 text

COSCUP x KCD Taiwan 2022 How do you contribute as a beginner? Kubernetes issue: https://github.com/kubernetes/kubernetes/issues 6

Slide 7

Slide 7 text

COSCUP x KCD Taiwan 2022 What is Kubernetes member? Kubernetes official organization: https://github.com/kubernetes 2022/07/30 7

Slide 8

Slide 8 text

COSCUP x KCD Taiwan 2022 How do you become a member? (1/2) 8

Slide 9

Slide 9 text

COSCUP x KCD Taiwan 2022 How do you become a member? (2/2) • What’s a K8s member? • Consistency Contribute • Member Application C+2S=>M Member Contributor Sponsor Join In! 9

Slide 10

Slide 10 text

COSCUP x KCD Taiwan 2022 How do you join the SIGs? (1/2) • SIGs Application kubernetes/website : https://github.com/kubernetes/website/graphs/contributors 10

Slide 11

Slide 11 text

COSCUP x KCD Taiwan 2022 How do you join the SIGs? (2/2) • SIGs Application 11

Slide 12

Slide 12 text

COSCUP x KCD Taiwan 2022 Community Group 12

Slide 13

Slide 13 text

COSCUP x KCD Taiwan 2022 Community Group Types Committees Sets of people that are chartered to take on sensitive topics. Special Interest Groups (SIGs) Persistent open groups that focus on a part of the project. Working Groups (WGs) Temporary groups that are formed to address issues that cross SIG boundaries. User Groups (UGs) Groups for facilitating communication and discovery of information REF: git.k8s.io/community#governance 13

Slide 14

Slide 14 text

COSCUP x KCD Taiwan 2022 Testing Contributor Experience Release Docs Usability API Machinery CLI UI Multicluster Windows Auth Apps Autoscaling Cluster Lifecycle Instrumentation Network Node Scalability Scheduling Service Catalog Storage Resource Management Steering Project Horizontal Vertical Architecture Code of Conduct Product Security Big Data Cloud Provider Multitenancy IoT Edge Reliablity Policy API Expression Structured Logging K8s Infra Applications Resource Management Infrastructure Work group SIG Committee User group Community Groups Structure Security VMware 14

Slide 15

Slide 15 text

COSCUP x KCD Taiwan 2022 REF: git.k8s.io/community/governance.md ● Special Interest Groups (SIGs) ○ Primary organizational unit ○ Topic specific (network, docs, etc.) ● Subprojects ○ Work in SIGs divided into one or more subprojects ○ Every part of Kubernetes must be owned by subproject Community Groups: SIGs (1/2) 15

Slide 16

Slide 16 text

COSCUP x KCD Taiwan 2022 REF: git.k8s.io/community/governance.md Community Groups: SIGs (2/2) Project SIGssd sig-architecture,sig-contribex,sig-docs,sig-pm,sig-release sig-testing,sig-usability Horizontal SIGs sig-api-machinery,sig-auth,sig-cli,sig-instrumentation sig-multicluster,sig-scalability,sig-ui,sig-windows Vertical SIGs Applications: sig-apps,sig-service-catalog Infrastructure: sig-cloud-provider,sig-cluster-lifecycle Resource Management: sig-autoscaling,sig-network,sig-node,sig-scheduling, sig-storage 16

Slide 17

Slide 17 text

COSCUP x KCD Taiwan 2022 REF: git.k8s.io/community/governance.md ● Working Groups (WGs) ○ Short-lived rallying point ○ Work spanning multiple SIGs Community Groups: WGs (1/2) 17

Slide 18

Slide 18 text

COSCUP x KCD Taiwan 2022 REF: git.k8s.io/community/governance.md Community Groups: WGs (2/2) Project Working Groups wg-security-audit wg-k8s-infra wg-LTS Horizontal Working Groups wg-apply wg-component-standard wg-multitenancy wg-policy Vertical Working Groups Applications wg-machine-learning wg-io-edge Resource Management wg-resource-management 18

Slide 19

Slide 19 text

COSCUP x KCD Taiwan 2022 REF: git.k8s.io/community/governance.md ● User Groups ○ Facilitate communication between users and contributors. ○ Topics include usage of, extension of, and integration with Kubernetes and Kubernetes subprojects. ○ User Groups: ■ Big Data ■ VMware Users Community Groups: User Groups 19

Slide 20

Slide 20 text

COSCUP x KCD Taiwan 2022 REF: git.k8s.io/community/governance.md ● Committees ○ Don't have open membership ○ Don't always operate in the open (Security or Code of Conduct) ○ Formed by Steering Committee ○ Committees: ● Steering ● Product Security ● Code of Conduct Community Groups: Committees 20

Slide 21

Slide 21 text

COSCUP x KCD Taiwan 2022 REF: git.k8s.io/community/governance.md  Slack (slack.k8s.io): • Join the slack to find out what :party_blob: is #sig- to join a SIG channel  Zoom meetings(zoom)  Mailing lists: • Community wide • Per sub-group (SIG/WG/UG/committee) • Contact information for a SIG: git.k8s.io/community/sig-name#contact Connect with the community 21

Slide 22

Slide 22 text

COSCUP x KCD Taiwan 2022 Contribute to Kubernetes step by step 22

Slide 23

Slide 23 text

COSCUP x KCD Taiwan 2022 CNCF Community Code of Conduct •As contributors and maintainers in the CNCF community, and in the interest of fostering an open and welcoming community •CNCF pledge to respect all people - contribute through reporting issues - posting feature requests - updating documentation - submitting pull requests or patches REF: https://github.com/cncf/foundation/blob/main/code-of-conduct.md 23

Slide 24

Slide 24 text

COSCUP x KCD Taiwan 2022 Contributor License Agreement (CLA) •Kubernetes can only accept original source code from CLA signatories. •The Cloud Native Computing Foundation (CNCF) defines the legal status of the contributed code in two different types of Contributor License Agreements (CLAs) Individual Contributor: You are contributing as yourself, and not as part of another organization. Corporate Contributor: You are contributing on behalf of your employer or other organization. Note: Check in with your organization if you would need to sign the corporate CLA REF: https://github.com/kubernetes/community/blob/master/CLA.md 24

Slide 25

Slide 25 text

COSCUP x KCD Taiwan 2022 Find the issue • Find Issue: https://go.k8s.io/good-first-issue • Ask questions: - your mentor - SIG slack channel - SIG meetings • Kubernetes Enhancement Proposal: - To add a new feature, update an existing feature or deprecate a feature, the Kubernetes community follows the Kubernetes Enhancement Proposal (KEP) process. good first issue help wanted 25

Slide 26

Slide 26 text

COSCUP x KCD Taiwan 2022 PRs and Bots: GitHub PR Flow 26

Slide 27

Slide 27 text

COSCUP x KCD Taiwan 2022 Start your first PR 27

Slide 28

Slide 28 text

COSCUP x KCD Taiwan 2022 Command /assign @username /retest /close /cc @username Result Assigns to reviewer or myself Reruns failed tests Closes this PR Tags a user PRs and Bots: Useful Commands and label https://prow.k8s.io/command-help Label cncf-cla: yes ok-to-test sig/node do-not-merge/hold lgtm approved 28

Slide 29

Slide 29 text

COSCUP x KCD Taiwan 2022 Kubernetes PR flow Step 0: Automation suggests reviewers and approvers for the PR - Choose at least two suggested reviewers, and request their reviews on the PR Step 1: Humans review the PR - Reviewers look for general code quality, correctness, sane software engineering, style, etc. - If the code changes look good to them, a reviewer types /lgtm in a PR comment or reviewOnce a - reviewer has /lgtm'ed, prow (@k8s-ci-robot) applies an lgtm label to the PR Step 2: Humans approve the PR - Approvers look for holistic acceptance criteria, including dependencies with other features, forwards/backwards compatibility, API and flag definitions, etc - If the code changes look good to them, an approver types /approve in a PR comment or reviewprow (@k8s-ci-robot) updates its comment in the PR to indicate which approvers still need to approve - Once all approvers (one from each of the previously identified OWNERS files) have approved, prow (@k8s-ci-robot) applies an approved label Step 3: Automation merges the PR - All required labels are present (eg: lgtm, approved) - Then the PR will automatically be merged 29

Slide 30

Slide 30 text

COSCUP x KCD Taiwan 2022 Speed up PR merged • Small commits and small pull requests get reviewed faster and open a different Pull Request for Fixes and Generic Features • Use the commit message body to explain the what and why of the commit • Coding Conventions: tips for writing code in the different programming languages used throughout the Kubernetes project.(Coding Conventions) (API conventions) (Kubectl conventions) • All new packages and most new significant functionality must come with unit tests, integration (test/integration) and/or end-to-end (test/e2e) tests. 30

Slide 31

Slide 31 text

COSCUP x KCD Taiwan 2022 Non-code Contributions • Issue Triage • Documentation • Join the upstream marketing community work • Localization • Project management • Event management: helping run Contributor Summits • Community education: You can Volunteer to be the mentor or sign up to be mentee at KubeCon. REF: https://www.kubernetes.dev/docs/guide/non-code-contributions/ 31

Slide 32

Slide 32 text

COSCUP x KCD Taiwan 2022 Thank you!