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

How to Contribute to Kuberntes - Kubernetes Days India

How to Contribute to Kuberntes - Kubernetes Days India

Practical tips about how to contribute to Kubernetes and grow up the contributor ladder to become a reviewer and an approver.

Nikhita Raghunath

March 23, 2019
Tweet

More Decks by Nikhita Raghunath

Other Decks in Programming

Transcript

  1. How to contribute to Kubernetes!
    - By Nikhita Raghunath

    View full-size slide

  2. Who am I
    ● Software Engineer at Loodse
    ● Technical Lead for SIG Contributor Experience
    ● You can find me on:
    ○ Github - nikhita
    ○ Twitter - TheNikhita

    View full-size slide

  3. Contributing to Kubernetes is
    @TheNikhita

    View full-size slide

  4. Contributing to Kubernetes is
    scary.
    @TheNikhita

    View full-size slide

  5. Contributing to Kubernetes is
    intimidating.
    @TheNikhita

    View full-size slide

  6. Contributing to Kubernetes is
    hard.
    @TheNikhita

    View full-size slide

  7. It doesn’t have to be.
    @TheNikhita

    View full-size slide

  8. How can we make it easier?
    @TheNikhita

    View full-size slide

  9. How can we go from
    @TheNikhita

    View full-size slide

  10. How can we go from
    to
    @TheNikhita

    View full-size slide

  11. How can we go from
    to
    @TheNikhita

    View full-size slide

  12. Let’s Dive In!
    @TheNikhita

    View full-size slide

  13. Community Groups
    ● Special Interest Groups (SIGs) - own code and consist of
    subprojects.
    ● Working Groups (WGs) - temporary cross-SIG groups.
    ● User Groups (UGs) - for facilitating communication for long
    standing topics for users.
    ● Committees - group to taken on sensitive topics
    @TheNikhita

    View full-size slide

  14. Community Groups
    @TheNikhita

    View full-size slide

  15. How to pick a SIG
    ● Related to your job
    @TheNikhita

    View full-size slide

  16. How to pick a SIG
    ● Related to your job
    ● Topics of Interest
    @TheNikhita

    View full-size slide

  17. How to pick a SIG
    ● Related to your job
    ● Topics of Interest
    ● Which SIGs have the most documentation
    @TheNikhita

    View full-size slide

  18. How to pick a SIG
    ● Related to your job
    ● Topics of Interest
    ● Which SIGs have the most documentation
    ● Which SIGs have clear roles defined
    @TheNikhita

    View full-size slide

  19. How to pick a SIG
    ● Related to your job
    ● Topics of Interest
    ● Which SIGs have the most documentation
    ● Which SIGs have clear roles defined
    ● Language you are comfortable with
    @TheNikhita

    View full-size slide

  20. Get to know the SIG
    ● Slack channels
    ● Mailing Lists
    ● Meetings
    ● Meeting notes
    @TheNikhita

    View full-size slide

  21. Use lots of emojis!
    @TheNikhita

    View full-size slide

  22. Lurk Around
    Ok to feel intimidated!
    Start small!
    @TheNikhita

    View full-size slide

  23. Lurk Around
    Ok to feel intimidated!
    Get an idea of:
    ● Who is working on what
    ● What tasks are being worked
    on
    ● What’s on the roadmap
    Start small!
    @TheNikhita

    View full-size slide

  24. Local environment
    hack/local-up-cluster.sh to
    get a cluster up and running!
    More details here:
    https://git.k8s.io/community/contributors/deve
    l/running-locally.md
    @TheNikhita

    View full-size slide

  25. Docs
    1. User docs - https://kubernetes.io/docs/concepts/
    Play around and understand what a feature does
    @TheNikhita

    View full-size slide

  26. Docs
    2. Contributor friendly docs
    ● Developer Guide
    ○ Code conventions
    ● Contributor Guide
    ○ Community conventions
    @TheNikhita

    View full-size slide

  27. Docs
    3. KEPs - Kubernetes Enhancement Proposals
    ● Still a new-ish concept
    ● Useful to understand design decisions
    behind features
    @TheNikhita

    View full-size slide

  28. Docs
    3. KEPs - Kubernetes Enhancement Proposals
    ● Still a new-ish concept
    ● Useful to understand design decisions
    behind features
    ● Interested in Project Management?
    ○ Help SIG PM improve the KEP process!
    @TheNikhita

    View full-size slide

  29. Docs
    3. KEPs - Kubernetes Enhancement Proposals
    ● Still a new-ish concept
    ● Useful to understand design decisions
    behind features
    ● Interested in Project Management?
    ○ Help SIG PM improve the KEP process!
    ● Interested in Memes?
    ○ Help us create more of them!
    @TheNikhita

    View full-size slide

  30. Introduce and Ask Questions!
    ● Who you are
    ● What part you are interested to contribute to
    ● What documentation you have read
    ● What problems you are facing
    Help others help you
    @TheNikhita

    View full-size slide

  31. Docs (again!)
    But this time YOU write it!
    @TheNikhita

    View full-size slide

  32. Docs (again!)
    But this time YOU write it!
    BOOM....YOU HAVE ALREADY CONTRIBUTED NOW!!
    @TheNikhita

    View full-size slide

  33. WHAT DO I WORK ON???????

    View full-size slide

  34. Scratch an itch
    ● Want to a feature -> implement it
    ● Found a bug -> fix it
    ● Could also be smaller things like:
    ○ Code isn’t clear -> refactor and add comments
    ○ Script doesn’t work on your OS -> fix the script
    @TheNikhita

    View full-size slide

  35. Look for labels
    ● Easier to get started with
    ● Mentorship is available
    @TheNikhita

    View full-size slide

  36. Look for labels
    ● SIG Labels
    ● Kind Labels
    @TheNikhita

    View full-size slide

  37. Participate in roadmap planning
    Show up in the beginning of the release cycle
    @TheNikhita

    View full-size slide

  38. Shadow someone
    Join the release team!
    Form for shadows for v1.15
    will be out soon!!
    @TheNikhita

    View full-size slide

  39. Ask away
    ● Look at what people are working on and offer to help on
    subtasks
    ● Ask on slack channels
    @TheNikhita

    View full-size slide

  40. Other (slightly ambiguous) ways
    Refactor, write tests and help
    fix flakes!
    @TheNikhita

    View full-size slide

  41. Non-code contributions
    @TheNikhita

    View full-size slide

  42. Non-code contributions
    ● Issue triage
    @TheNikhita

    View full-size slide

  43. Non-code contributions
    ● Issue triage
    ● Writing blog posts
    @TheNikhita

    View full-size slide

  44. Non-code contributions
    ● Issue triage
    ● Writing blog posts
    ● Community Management
    @TheNikhita

    View full-size slide

  45. Non-code contributions
    ● Issue triage
    ● Writing blog posts
    ● Community Management
    ● Moderation
    @TheNikhita

    View full-size slide

  46. Non-code contributions
    ● Issue triage
    ● Writing blog posts
    ● Community Management
    ● Moderation
    ● Organizing events
    @TheNikhita

    View full-size slide

  47. Non-code contributions
    ● Issue triage
    ● Writing blog posts
    ● Community Management
    ● Moderation
    ● Organizing events
    ● Note taking
    https://git.k8s.io/community/contributors/guide/non-code-contributions.md
    @TheNikhita

    View full-size slide

  48. Code Reviews
    ● Read code reviews
    @TheNikhita

    View full-size slide

  49. Code Reviews
    ● Read code reviews
    ● Useful to understand the why behind a decision
    @TheNikhita

    View full-size slide

  50. Code Reviews
    ● Read code reviews
    ● Useful to understand the why behind a decision
    ● Make notes about what you learn
    @TheNikhita

    View full-size slide

  51. Code Reviews
    ● Read code reviews
    ● Useful to understand the why behind a decision
    ● Make notes about what you learn
    ● Incorporate into docs
    @TheNikhita

    View full-size slide

  52. Code Reviews
    ● Read code reviews
    ● Useful to understand the why behind a decision
    ● Make notes about what you learn
    ● Incorporate into docs
    ● Review others’ code
    @TheNikhita

    View full-size slide

  53. So you found what to work on
    and created a PR.
    Now What?
    @TheNikhita

    View full-size slide

  54. Say Hi to k8s-ci-robot!
    @TheNikhita

    View full-size slide

  55. Sign the CLA
    ● Individual
    Contributor CLA
    ● Corporate
    Contributor CLA
    @TheNikhita

    View full-size slide

  56. OWNERS files
    2 stage code review process:
    1. /lgtm
    2. /approve
    @TheNikhita

    View full-size slide

  57. Bot suggests reviewers
    ● /cc @nikhita
    ○ Requests review
    ● /assign @nikhita
    ○ Adds assignee
    Use #pr-reviews if your
    PR doesn’t get attention!
    @TheNikhita

    View full-size slide

  58. http://gubernator.k8s.io/pr/lavalamp
    Gubernator to check reviewer bandwidth

    View full-size slide

  59. Testing
    ● If author is not a member:
    ○ /ok-to-test from member
    ● To retest failed tests:
    ○ /retest
    ● To test a single test:
    ○ /test pull-kubernetes-verify
    @TheNikhita

    View full-size slide

  60. Understand why your PR hasn’t merged
    @TheNikhita

    View full-size slide

  61. Your PR gets merged!!!!
    @TheNikhita

    View full-size slide

  62. Contributor Ladder
    @TheNikhita

    View full-size slide

  63. Mentorship Opportunities
    ● Meet Our Contributors
    ○ 8pm first wednesday of each month
    ○ #meet-our-contributors
    ● Group Mentoring
    ● Google Summer of Code
    ○ Kubernetes is participating in GSoC 2019!
    ○ APPLY!!!
    ● Outreachy
    @TheNikhita

    View full-size slide

  64. India-specific slack channels
    ● #in-dev - for contributors
    ● #in-users - for users
    ● #in-events - for events happening in India
    @TheNikhita

    View full-size slide

  65. Contributors from India
    Reach out to these
    folks if you want to
    know more!
    Table can be found
    here.

    View full-size slide