Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to start contributing to Kubernetes Projects

How to start contributing to Kubernetes Projects

How to start contributing to Kubernetes Projects?
- Join in Kubernetes Community
- Community Group
- Contribute to Kubernetes
step by step

Ader Fu
COSCUP x KCD Taiwan 2022, July. 31, 2022

ydFu(Ader Fu)

August 01, 2022
Tweet

More Decks by ydFu(Ader Fu)

Other Decks in Programming

Transcript

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

    View Slide

  2. 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: [email protected]
    2

    View Slide

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

    View Slide

  4. COSCUP x KCD Taiwan 2022
    Join in
    Kubernetes community
    4

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. 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

    View Slide

  10. 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

    View Slide

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

    View Slide

  12. COSCUP x KCD Taiwan 2022
    Community Group
    12

    View Slide

  13. 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

    View Slide

  14. 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

    View Slide

  15. 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

    View Slide

  16. 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

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

  19. 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

    View Slide

  20. 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

    View Slide

  21. 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

    View Slide

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

    View Slide

  23. 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

    View Slide

  24. 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

    View Slide

  25. 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

    View Slide

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

    View Slide

  27. COSCUP x KCD Taiwan 2022
    Start your first PR
    27

    View Slide

  28. 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

    View Slide

  29. 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

    View Slide

  30. 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

    View Slide

  31. 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

    View Slide

  32. COSCUP x KCD Taiwan 2022
    Thank you!

    View Slide