Skip to content

Instantly share code, notes, and snippets.

@mitsutaka
Last active May 1, 2018 15:59
Show Gist options
  • Save mitsutaka/6bc304a082363efca01e198d0c86665c to your computer and use it in GitHub Desktop.
Save mitsutaka/6bc304a082363efca01e198d0c86665c to your computer and use it in GitHub Desktop.

2018 Kubernetes Contributor Summit EU

Welcome and Introduction

  • 191 key speakers

  • we've adopted the CNCF Code of Conduct

  • Wear T-shirts

  • Lunch is at 1 pm (not 12 pm)

  • SIG Updates start at 2pm, 5mins per SIG.

Steering Committee Update

  • Github Org Structure
    • K8s, kubernetes-sigs, associated
    • Incubation is deprecated
  • Formalize Subprojects and Working Groups
  • SIG Charters
    • Please PR vs. spamming the list "Athenian democracy doesn't scale."
  • K8s Values
  • Voting Roles & Rules

New Contributor Workshop

  • First class for new contributor workshop
  • Orientation tour
  • Who this is for You're an advanced user and looking at contributing, or
  • Mentor: Guin(Samsung), Josh(Red Hat), IIya(Weave,), and so on

Introduction

  1. Steps

Non-member contributors -> Member -> Reviewer -> Approver -> Owner

  1. CLA signing

ask helpdesk@linuxfoundation.org

  1. Where to Contribute
  • Desire to learn and improve the project

  • Docs and Website, Frontend development

    SIG-docs, SIG-contributor-experience

  • Testing

    test-infra repository SIG-testing

  • Code

    Subrepositories and related projects around(charts, minikube, kops, etc). Depends on your are of interest.

  • Finding your first topic

  • Find your topic exercise

    what part of K8s you might want to contribute to

  1. Let's talk: Communication
  • Standards of Communication, Why is everyone so nice?

    https://github.com/cncf/foundation/blob/master/code-of-conduct.md

  • Tech question go on StackOverflow and Slack, not Github

  • Github issues and pull request often entail discussion related to the topic at hand. Stay courteous and follow up.

  • Stay patient as people may address your questions and contributions.

    slack.k8s.io

    slack at #kuberentes-users, #kubernetes-novice, #sig-contribex

  • Others

    Community meetings

    Mailing lists

    @pinging someone on GitHub

    Meetups

    Office Hours

  • link

    @kubernetesio on twitter

    kubernetes-dev@googlegroups.com

    kubernetes-users@googlegroups.com

    Meetings Calendar: kuberentes.io/community/

  • The SIG System: How work is organized

    SIG Special Interest Group

    Semi-autonomous teams

    Own leaders & charter, Responsible for code, Own repo(s) (sometimes), Slack channel & mailing list, Meetings(usually Zoom), Subprojects (& WGs)

    List of SIGs github.com/kubernetes/community

  • Types of SIGs

    1. Feature Areas

      sig-auth, sig-apps, sig-autoscaling ...

    2. Plumbing

      sig-cluster-lifecycle, sig-api-machinery, sig-instrumentation

    3. Cloud Providers

      sig-aws, sig-azure, sig-gcp, sig-ibmcloud, sig-openstack

    4. Meta

      sig-architecture, contributor-experience, product-management, release, testing

    5. Docs

      sig-docs

    https://github.com/kubernetes/community/blob/master/sig-list.md

  • WGs and Subprojects

    Working Groups == Old way

    Subprojects == New way

    For specific:

    • Tools(Helm), Goals(Resource Management), Areas(Machine Learning)
  • List of WGs

    Frequently changed

    when a feature is implemented, WG is removed.

  • Picking the right SIG

    1. Figure out what specific projects/areas you want to work on

    2. Find out which SIG/WG/subproject covers that

      a. ask #sig-contribex

      b. Go to the SIG intros at this conference

    3. Join

      If joining a WG/subproject, also join a SIG

  • Repositories

    Repos being refactored

    • Core: kubernetes/kubernetes

    • Project:

      • k/Community
      • k/Features
      • k/Steering
      • k/Test-Infra
      • k/Perf-Tests
    • Docs/Website:

      • k/website ... primary
      • k/kubernetes-docs-cn
      • k/kubernetes-docs-ko
    • Developer Tools:

      • k/sample-controller*
      • k/sample-apiserver*
      • k/code-generator*
      • k/k8s.io
      • k/kubernetes-template-project
    • Staging

      • api
      • apiextentions-apiserver....
      • client-go
    • SIG repos

      • release
      • federation
      • autoscaler ...
    • Cloud Providers

      • cloud-provider-azure
      • cloud-provider-gcp
      • cloud-provider-aws
    • Products & Tools

      • kubeadm, kkubectl, kops ...
    • Kube-Incubator Deprecated

      • Community repo has 99 problems, and 22 is in kube-incubator.
    • A Historical Accumulation

      Random stuff in kubernetes/, kube-incubator, contrib/ and no clear path for promotion/deprecation

  • How it will be:

    1. start in kubernetes-sigs/ namespace
    2. SIGs determine when/how they graduate to kubernetes/ or k/k
  • Repos can have different ownership, approval WF, merge WF, Release cycle

  • Membership/Ownership

    OWNERS files govern who approves code recursive to parent dir.

  • Contributing by Issue: Josh (15 min) (1:42)

    First: Bug Reports

    1. Find the right repo for the bug

    2. Create a complete & detailed bug report

      a. including labels!

    3. Follow up with commentors/fixers.

  • Issues as Specifications

    • Most changes in K8s start with an Issue:
    • Feature proposals
    • API change proposals
    • New tests
    • Additions to Docs
    • Changes to community project management
  • From Issue to Code/Docs

    1. Start with an issue that proposes a change
    2. Apply all appropriate labels
    3. cc SIG leads and concerned devs
    4. Raise the issue at a SIG meeting or on the list
    5. When you have "lazy consensus", submit a PR.
  • Required labels

    • On creation: sig/ kind/

    • Added later: triage/ priority/

    • Optional: area/

    • sig/ label

      Defines which ISG the issue should belong to. Ask or guess if you don't know.

      • kind/ label

        Defines what type of issue it is: kind/bug, kind/feature, kind/design, kind/failing-test

      • triage/ label

        For issues that are being closed as part of triage. triage/duplicate, triage/needs-information, triage/support ....

      • priority/ label

        How critical is this issue?

        priority/critical-urgent .. If Kubernetes crashes

        priority/important-soon

        priority/important-longterm

        priority/backlog

        priority/awaiting-evidence

      • area/ label

        Optional label, may define specific focus within the SIG. No standardization.

        area/kubectl

        area/api

        area/dns

        area/platform/gce

      • help wanted

    • Labels

    • Make sure you check issue for comments and respond

    • Try to test solutions...

  • Making Contributions By Pull Request (with the walkthrough)

    https://github.com/kubernetes/community/tree/master/contributors/new-contributor-playground

    When you start contributing, it always fork

    /needs-ok-to-test ... Approver add /ok-to-test if a commit is ready for a test. When you become member role, it always accepts.

  • Test Infrastructure

    On the PR

    pull-kubernetes-bezel-test

    pull-kubernetes-cross

    ...

    Automated tests

    Understanding test failures

    /retest ... trigger to run the test again

    /meow ... easter eggs

  • Doc Contributions(Documentation)

    Anyone can contribute to docs.

    Become membership create PR at least five.

    Slack: @sig-docs

    • Docs use the Kubenrnetes bot!

      To update current docs, branch from master.

      -> Update docs immediately on the website.

      To create docs for a specific release, branch from release-1.X.

  • Local Build & Test for code contributors

    • Dev Env

      Have lots of RAM and CPU (> 8GB RAM, 8 cores)

      10's of GB's of disk

      Use Linux

      Place your k8s git repo fork in $GOPATH/src/k8s.io/kubernetes

      Start planning what your test cluster will be...

    • Build

      ./build/run.sh make # docker and rsync is required

      make WHAT="cmd/kubectl" # build part of componsents

      Information: https://git.k8s.io/kubernetes/build

      run built command ./_output/local/bin/linux/amd64/kubectl

      KUBE_BUILD_PLATFORMS="linux/amd64" make WHAT="cmd/kubectl"

    • Testing

      go test ./... # manual test

      make test WHAT="cmd/kubectl" # Test part of componsents

  • Getting Org Membership

Other Note: https://github.com/npentrel/notes/blob/master/kubecon/kubecon-new-contributor-summit.md

Current Contributor Workshop

(Did not attend)

SIG Updates

  • SIG Documentation from Linux Foundation

    • We're migrating the website from Jekyll to Hugo
    • support internationalization
    • Hugo changes whre content lives
    • branch: hugo-migration website/contents/en/docs
  • SIG API Machinery

    • CRDs(Custom Resource Definition) Versionning: no-op conversions coming!
    • Admission Webhooks
    • Aggregation
    • WG: Apply
    • client-go interface churn
    • Setting up webhooks / aggregated apiservers(certs!)
  • SIG Apps

    • Start Application CRD
    • CI/CD Deployment tooling
  • SIG Architecture

    • Organize Roadmap, Plan, Idea
    • Architecture policy
  • SIG Auth

    • [TBD] TokenReqeust API, Time limited, per-pod (eventurally)
    • ServiceAccountTokenProjection
    • client-go: credential providers
    • Long term: imporve policy consistency
    • binding behavior, namespaced clsuter-wise, composition etc
    • Audiot RBAC ole and binding, PodSecurityPolicyWebhook extra infor
    • Scalability Improvements
    • Node Isolation: TLS improvements, Booststraping via TPM, Certificate rotation
    • NodeRestriction
    • Expand authentication and authorization conformance test
  • SIG Autoscaling Update

    • External Metrics Support
    • Scaling on metrics not directory associated with K8s obj
    • Clsuter Autoscaler Improvents
    • error handling
    • Azure VMSS support
    • GCP automated nodegroup detection
    • Improved autoscaling around GPU support
    • [1.11] Vertical Pod Autoscaler alpha!
    • Metric label selectors otherlable!="aaa"
    • Tweaks to HPAv2 ergonomics
  • SIG AWS

    • AWS encryption provider
    • e.g. CSI provider
  • SIG Azure

  • SIG Big Data

  • SIG CLI

    • Moving client-side logic to server side
    • Extensions, Version Skew
    • Server-side printing
    • Server-side apply
    • Making remaining client-side kubectl work with extensions and version skew
    • Use OpenAPI schema instead of static go structs
    • Use subresources
  • SIG Cluster Lifecycle

    • Provide more transparency on deliverables and execution
    • Have assignees and priority *
    • Track burn down
    • Auto-labeling and aggressively review backlog
    • Loop in more folks
    • the pool of talent is wide and diverse
    • Looking to build up the approvers group
    • [1.11]
      • kubeadm Triage and backlog
      • ~ComponentConfig for kubeadm
      • Initial master join workflow
      • Cluster API hopefully an alpha release in 1.111
      • New home in the kubernetes-sigs
  • SIG Contributor Experience

    • 2018 principles: it better be documented
    • Archiving a SPOF-less SIG
    • All contributors should have a relatively same and smooth process across repos
    • Subprojects: DevStats, Mentoring, Contributor Documentation, Community Management, Events, Contributor WOrkflow, and Documentation.
  • SIG GCP

  • SIG IBMCloud

    • First SIG meeting was on April 25
  • SIG Instrumentation

    • 1.10 resource metrics API, deprecated heapster, custom metrics API
  • SIG Multicluster

    • CLusterRegistry - sig-apimachinery
      • Naming EnviromentRegistryImplementing as CRD
    • Auth in Cluster Registry - sig-auth
      • Keeping auth outside cluster registry
    • Multicluster Ingress - sig-networking
  • SIG OpenStack

    • kubernetes/cloud-openstack-provider repository
      • The goal is to remove k/k provider code after 1.11
    • Hosts Flex and CSI drivers for OpenStack Cinder
    • Hosts OpenStack Keystone authentication/authorization driver
    • 3rd party end-to-end testing of the cloud provider
      • Based off upstream MiniKube e2e testing
    • Tests hosted by OpenLab, using uul v3 testing framework
    • Collaborations
    • SIG-<provider>
    • SIG-Docs
    • SIG-Testing
  • SIG Node

    • Focus on stabilization.
    • cri, containerd
  • SIG PM(product management)

    • Renamed to SIG-PM
    • Converting the product, program and project management aspects of Kubernetes
  • SIG Release

    • Making release team for subproject
    • Fix release of the dependency between components.
  • SIG Scalability

    • Solve release delay
    • charter
  • SIG Service Catalog

    • svcat: new command line tool
    • Consider moving to CRDs Or apiserver storage for agg apis
    • Complete NS-scoped brokes
    • Async BindingsResolved CRD decisions
    • Generic Instance Actions
    • Generic Broker Actions
    • GUIDs in names are problematic
  • SIG Storage

    • [1.10] To beta:
      • Local Storage API added support or block volumes
      • CSI Core API, support FSType, and other CSI parameters.
      • Enabled Secrets to be shared with CSI drivers
      • Moved to CS spec v0.2
    • Mount propagation
      • Enabled privileged containers to opt-in to bidirectional rshared mounts
      • Ephemeral Storage request/limit API
      • Prevent deletion of PV bound to PVC & PVC in used by a pod
      • Finalizer used to block deletion of volume objects out of order
    • [1.11/1.12]
      • driver beta features towards GA/stable:
        • CSI, Local Storage, Topology-Aware Volume Scheduling, Generic APIs, Snapshots/Restore APIs
    • Working on a series of videos to help onboard new contributors
    • Face-to-face meeting in Mt. View California on May15-16
      • See SIG meeting notes or mailing list for details.
  • SIG Testing

    • Switch to Tide for k/k
    • Split up testing configurations for each org/sig
    • The mechanism for promote/demote merge blocking jobs
      • metrics for presubmit flakiness now
    • Conformance Drive
    • Integration with kubetest and testgrid
    • conformance WG
    • Prow Bundle: OSS Testgrid, Bundle Prow + Gubernator + TestGrid
    • Testing-commons: sub project for integration test framework
  • SIG UI

  • SIG VMWare

    • Initial focus area: implement a re-architected cloud provider for vSphere
    • vSphere provider has interaction with Network, Node, Scheduling, Storage, Testing and other SIGs.
    • vSphere resource for starting CI/CD test integration, starting soon.
    • Still building dev + user participation, as a new SIG
    • [1.11] No Features, Design: Move cloud provider "out of tree."
    • [1.12] Implementation
  • SIG Windows

    • [1.10]
      • Kubelet and kube-proxy can now be ran as Windows services
      • Kubelet starting and working properly on VMWare
      • Experimental support for Hyper-V isolation (only one container per pod is supported yet in this node)
      • Support for resource control for Windows Server containers
      • Ansible playbooks for deploying a K8s cluster with Windows node using ovn-kubernetes
    • [1.11]
      • CNI support and enhancements for all versions of Windows
      • Windows Service Accounts in Kubernetes
      • CI/CD system for Windows in Kubernetes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment