summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authork8s-ci-robot <k8s-ci-robot@users.noreply.github.com>2018-05-02 03:06:18 -0700
committerGitHub <noreply@github.com>2018-05-02 03:06:18 -0700
commitd2d0cd10e0588460925417724ff3267ca016cc10 (patch)
treee5e78711faa3cb63c3294c5d3887598c3e0d7290
parente3fcf0db1370400a487789eaf7e94d0e1c41fef5 (diff)
parentf4f5a2e8d91db9baa0df8d8b6565411098697bd7 (diff)
Merge pull request #2119 from jgsqware/contributor-notes
Add New contributor summit notes
-rw-r--r--contributors/new-contributor-playground/new-contributor-notes.md350
1 files changed, 350 insertions, 0 deletions
diff --git a/contributors/new-contributor-playground/new-contributor-notes.md b/contributors/new-contributor-playground/new-contributor-notes.md
new file mode 100644
index 00000000..28985694
--- /dev/null
+++ b/contributors/new-contributor-playground/new-contributor-notes.md
@@ -0,0 +1,350 @@
+# Kubernetes New Contributor Workshop - KubeCon EU 2018 - Notes
+
+Joining in the beginning was onboarding on a yacht
+Now is more onboarding a BIG cruise ship.
+
+Will be a Hard schedule, and let's hope we can achieve everything
+Sig-contributor-experience -> from Non-member contributors to Owner
+
+## SIG presentation
+
+- SIG-docs & SIG-contributor-experience: **Docs and website** contribution
+- SIG-testing: **Testing** contribution
+- SIG-\* (*depends on the area to contribute on*): **Code** contribution
+
+**=> Find your first topics**: bug, feature, learning, community development and documentation
+
+Table exercise: Introduce yourself and give a tip on where you want to contribute in Kubernetes
+
+
+## Communication in the community
+
+Kubernetes community is like a Capybara: community members are really cool with everyone and they are from a lot of different horizons.
+
+- Tech question on Slack and Stack Overflow, not on Github
+- A lot of discussion will be involve when GH issues and PR are opened. Don't be frustrated
+- Stay patient because there is a lot of contribution
+
+When in doubt, **ask on Slack**
+
+Other communication channels:
+
+- Community meetings
+- Mailing lists
+- @ on Github
+- Office Hour
+- Kubernetes meetups https://www.meetup.com/topics/kubernetes
+
+on https://kubernetes.io/community, there is the schedule for all the SIG/Working group meeting.
+If you want to join or create a meetup. Go to **slack#sig-contribex**
+
+## SIG - Special Interest Group
+
+Semi-autonomous teams:
+- Own leaders & charteers
+- Code, Github repo, Slack, mailing, meeting responsibility
+
+### Types
+
+[SIG List](https://github.com/kubernetes/community/blob/master/sig-list.md)
+
+1. Features Area
+ - sig-auth
+ - sig-apps
+ - sig-autoscaling
+ - sig-big-data
+ - sig-cli
+ - sig-multicluster
+ - sig-network
+ - sig-node
+ - sig-scalability
+ - sig-scheduling
+ - sig-service-catalog
+ - sig-storage
+ - sig-ui
+2. Plumbing
+ - sig-cluster-lifecycle
+ - sig-api-machinary
+ - sig-instrumentation
+3. Cloud Providers *(currently working on moving cloudprovider code out of Core)*
+ - sig-aws
+ - sig-azure
+ - sig-gcp
+ - sig-ibmcloud
+ - sig-openstack
+4. Meta
+ - sig-architecture: For all general architectural decision
+ - sig-contributor-experience: Helping contributor and community experience
+ - sig-product-management: Long-term decision
+ - sig-release
+ - sig-testing: In charge of all the test for Kubernetes
+5. Docs
+ - sig-docs: for documentation and website
+
+## Working groups and "Subproject"
+
+From working group to "subproject".
+
+For specific: tools (ex. Helm), goals (ex. Resource Management) or areas (ex. Machine Learning).
+
+Working groups change around more frequently than SIGs, and some might be temporary.
+
+- wg-app-def
+- wg-apply
+- wg-cloud-provider
+- wg-cluster-api
+- wg-container-identity
+- ...
+
+### Picking the right SIG:
+1. Figure out which area you would like to contribute to
+2. Find out which SIG / WG / subproject covers that (tip: ask on #sig-contribex Slack channel)
+3. Join that SIG / WG / subproject (you should also join the main SIG when joining a WG / subproject)
+
+## Tour des repositories
+
+Everything will be refactored (cleaning, move, merged,...)
+
+### Core repository
+- [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)
+
+### Project
+
+- [kubernetes/Community](https://github.com/kubernetes/Community): Kubecon, proposition, Code of conduct and Contribution guideline, SIG-list
+- [kubernetes/Features](https://github.com/kubernetes/Features): Features proposal for future release
+- [kubernetes/Steering](https://github.com/kubernetes/Steering)
+- [kubernetes/Test-Infra](https://github.com/kubernetes/Test-Infra): All related to test except Perf
+- [kubernetes/Perf-Tests](https://github.com/kubernetes/Perf-Tests):
+
+### Docs/Website
+
+- website
+- kubernetes-cn
+- kubernetes-ko
+
+### Developer Tools
+
+- sample-controller*
+- sample- apiserver*
+- code-generator*
+- k8s.io
+- kubernetes-template-project: For new github repo
+
+### Staging repositories
+
+Mirror of core part for easy vendoring
+
+### SIG repositories
+
+- release
+- federation
+- autoscaler
+
+### Cloud Providers
+
+No AWS
+
+### Tools & Products
+
+- kubeadm
+- kubectl
+- kops
+- helm
+- charts
+- kompose
+- ingress-nginx
+- minikube
+- dashboard
+- heapster
+- kubernetes-anywhere
+- kube-openapi
+
+### 2nd Namespace: Kubernetes-sigs
+
+Too much places for Random/Incubation stuff.
+No working path for **promotion/deprecation**
+
+In future:
+1. start in Kubernetes-sigs
+2. SIGs determine when and how the project will be **promoted/deprecated**
+
+Those repositories can have their own rules:
+- Approval
+- Ownership
+- ...
+
+## Contribution
+
+### First Bug report
+
+```
+- Bug or Feature
+
+- What happened
+
+- How to reproduce
+
+```
+
+ ### Issues as specifications
+
+
+Most of k8s change start with an issue:
+
+- Feature proposal
+- API changes proposal
+- Specification
+
+### From Issue to Code/Docs
+
+1. Start with an issue
+2. Apply all appropriate labels
+3. cc SIG leads and concerned devs
+4. Raise the issue at a SIG meeting or on mailing list
+5. If *Lazy consensus*, submit a PR
+
+### Required labels https://github.com/kubernetes/test-infra/blob/master/label_sync/labels.md
+
+#### On creation
+- `sig/\*`: the sig the issue belong too
+- `kind/\*`:
+ - bug
+ - feature
+ - documentation
+ - design
+ - failing-test
+
+#### For issue closed as port of **triage**
+
+- `triage/duplicate`
+- `triage/needs-information`
+- `triage/support`
+- `triage/unreproduceable`
+- `triage/unresolved`
+
+#### Prority
+
+- `priority/critical-urgent`
+- `priority/important-soon`
+- `priority/important-longtem`
+- `priority/backlog`
+- `priority/awaiting-evidence`
+
+#### Area
+
+Free for dedicated issue area
+
+- `area/kubectl`
+- `area/api`
+- `area/dns`
+- `area/platform/gcp`
+
+#### help-wanted
+
+Currently mostly complicated things
+
+#### SOON
+
+`good-first-issue`
+
+## Making a contribution by Pull Request
+
+We will go through the typical PR process on kubernetes repos.
+
+We will play there: [community/contributors/new-contributor-playground at master · kubernetes/community · GitHub](https://github.com/kubernetes/community/tree/master/contributors/new-contributor-playground)
+
+1. When we contribute to any kubernetes repository, **fork it**
+
+2. Do your modification in your fork
+```
+$ git clone git@github.com:jgsqware/community.git $GOPATH/src/github.com/kubernetes/community
+$ git remote add upstream https://github.com/kubernetes/community.git
+$ git remote -v
+origin git@github.com:jgsqware/community.git (fetch)
+origin git@github.com:jgsqware/community.git (push)
+upstream git@github.com:kubernetes/community.git (fetch)
+upstream git@github.com:kubernetes/community.git (push)
+$ git checkout -b kubecon
+Switched to a new branch 'kubecon'
+
+## DO YOUR MODIFCATION IN THE CODE##
+
+$ git add contributors/new-contributor-playground/new-contibutor-playground-xyz.md
+$ git commit
+
+
+### IN YOUR COMMIT EDITOR ###
+
+ Adding a new contributors file
+
+ We are currently experimenting PR process in the kubernetes repository.
+
+$ git push -u origin kubecon
+```
+
+3. Create a Pull request via Github
+4. If needed, sign the CLA to make valid your contribution
+5. Read the `k8s-ci-robot` message and `/assign @reviewer` recommended by the `k8s-ci-robot`
+6. wait for a `LTGM` label from one of the `OWNER/reviewers`
+7. wait for approval from one of `OWNER/approvers`
+8. `k8s-ci-robot` will automatically merge the PR
+
+`needs-ok-to-test` is used for non-member contributor to validate the pull request
+
+## Test infrastructure
+
+> How bot toll you when you mess up
+
+At the end of a PR there is a bunch of test.
+2 types:
+ - required: Always run and needed to pass to validate the PR (eg. end-to-end test)
+ - not required: Needed in specific condition (eg. modifying on ly specific part of code)
+
+If something failed, click on `details` and check the test failure logs to see what happened.
+There is `junit-XX.log` with the list of test excuted and `e2e-xxxxx` folder with all the component logs.
+To check if the test failed because of your PR or another one, you can click on the **TOP** `pull-request-xxx` link and you will see the test-grid and check if your failing test is failing in other PR too.
+
+If you want to retrigger the test manually, you can comment the PR with `/retest` and `k8s-ci-robot` will retrigger the tests.
+
+## SIG-Docs contribution
+
+Anyone can contribute to docs.
+
+### Kubernetes docs
+
+- Websites URL
+- Github Repository
+- k8s slack: #sig-docs
+
+### Working with docs
+
+Docs use `k8s-ci-robot`. Approval process is the same as for any k8s repo
+In docs, `master` branch is the current version of the docs. So always branch from `master`. It's continuous deployment
+For a specific release docs, branch from `release-1.X`.
+
+## Local build and Test
+
+The code: [kubernetes/kubernetes]
+The process: [kubernetes/community]
+
+### Dev Env
+
+You need:
+- Go
+- Docker
+
+
+- Lot of RAM and CPU and 10 GB of space
+- best to use Linux
+- place you k8s repo fork in:
+ - `$GOPATH/src/k8s.io/kubernetes`
+- `cd $GOPATH/src/k8s.io/kubernetes`
+- build: `./build/run.sh make`
+ - Build is incremental, keep running `./build/run.sh make` til it works
+- To build variant: `make WHAT="kubectl"`
+- Building kubectl on Mac for linux: `KUBE_*_PLATFORM="linux/amd64" make WHAT "kubectl"`
+
+there is `build` documentation there: https://git.k8s.io/kubernetes/build
+
+### Testing
+there is `test` documentation there: https://git.k8s.io/community/contributor/guide