This is a place for various components in the Kubernetes ecosystem that aren't part of the Kubernetes core. Consider creating a new repo instead.
  • Go 46.5%
  • Shell 24%
  • JavaScript 8.2%
  • Jinja 7.3%
  • HTML 4.1%
  • Other 9.9%
Find a file
Kubernetes Prow Robot 89f6948e24
Merge pull request #3009 from krzysied/dir_list_fix
Utils - fixing ListDirs method
2019-04-11 11:28:44 -07:00
404-server Adding new 404-server location to README.md 2017-08-14 18:43:21 -04:00
addon-resizer README with the new repo link for addon-resizer 2017-06-16 15:08:09 +02:00
ansible namespace f26 results in manifest unknown 2018-12-04 10:17:27 -08:00
cluster-autoscaler Cluster-autoscaler: add redirect README and FAQ 2017-04-19 11:49:29 +02:00
cni-plugins Update README.md 2018-08-16 15:09:46 +08:00
continuousdelivery Typo fix comand->command 2018-04-26 21:05:28 +08:00
diurnal Convert registry to k8s.gcr.io 2018-02-01 20:38:15 -08:00
docker-micro-benchmark fix misspell “inspect” in config.go 2017-02-26 17:10:49 +08:00
election Corrected url to leader pod 2018-09-19 11:48:36 +02:00
exec-healthz Merge pull request #2874 from sunlintong/feature-2 2018-07-18 12:28:19 -07:00
flannel-server Pushes go to staging-k8s.gcr.io 2018-02-01 20:39:25 -08:00
fluentd Stackdriver integration removal step 2: remove all files except READMEs with a redirect 2017-07-13 11:25:56 +02:00
for-demos Pushes go to staging-k8s.gcr.io 2018-02-01 20:39:25 -08:00
git-sync Make assignees approvers and reviewers 2016-12-14 16:42:04 -08:00
hack Bump travis golang to 1.9. 2018-01-11 09:01:58 +01:00
images Pushes go to staging-k8s.gcr.io 2018-02-01 20:39:25 -08:00
ingress fix link for ingress controller gce 2018-09-19 17:46:02 +05:45
init The --api-servers is no longer supported by Kubelet 1.9, use the kubelet.kubeconfig approach. 2018-04-30 15:57:58 +02:00
keepalived-vip Merge pull request #2912 from cornelius-keller/keepalived_with_notify 2019-02-11 11:09:56 -08:00
kubeform make golint happy 2017-09-26 16:33:06 +02:00
kubelet-to-gcm Stackdriver integration removal step 2: remove all files except READMEs with a redirect 2017-07-13 11:25:56 +02:00
logging Remove old logging info and replace with a link to the docs 2017-02-17 13:18:27 +01:00
metadata-proxy Add link to redirect 2018-02-01 15:49:16 -08:00
micro-demos Convert registry to k8s.gcr.io 2018-02-01 20:38:15 -08:00
mungegithub Directory moved to test-infra 2017-01-20 17:06:39 -08:00
netperf-tester Make assignees approvers and reviewers 2016-12-14 16:42:04 -08:00
node-perf-dash Merge pull request #2908 from AdamDang/patch-7 2018-07-06 10:18:18 -07:00
peer-finder Pushes go to staging-k8s.gcr.io 2018-02-01 20:39:25 -08:00
podex Make assignees approvers and reviewers 2016-12-14 16:42:04 -08:00
prometheus Merge pull request #2119 from brancz/prometheus 2016-12-28 10:02:56 -08:00
prometheus-to-sd Stackdriver integration removal step 2: remove all files except READMEs with a redirect 2017-07-13 11:25:56 +02:00
recipes Always --pull in docker build to ensure recent base images 2017-01-10 15:11:14 -08:00
release-notes Make assignees approvers and reviewers 2016-12-14 16:42:04 -08:00
rescheduler Fix Rescheduler Makefile 2018-06-26 14:05:39 -07:00
scale-demo Pushes go to staging-k8s.gcr.io 2018-02-01 20:39:25 -08:00
scratch-debugger Convert registry to k8s.gcr.io 2018-02-01 20:38:15 -08:00
service-loadbalancer Merge pull request #2874 from sunlintong/feature-2 2018-07-18 12:28:19 -07:00
startup-script [startup-script] Don't cache apk update results 2018-03-10 21:29:08 -08:00
statefulsets Zookeeper: fix misspelled purgeInterval variable 2018-08-27 07:45:40 +00:00
test-utils fixing ListDirs 2019-04-10 17:26:26 +02:00
.gitignore Huge rewrite to submit-queue and mungegithub 2015-09-16 00:06:23 -04:00
.travis.yml Bump travis golang to 1.9. 2018-01-11 09:01:58 +01:00
code-of-conduct.md Add code-of-conduct.md 2017-12-20 14:06:31 -05:00
CONTRIBUTING.md link to the official CONTRIBUTING.md doc 2015-08-31 14:57:56 -04:00
labels.yaml Updating labels to CNCF ones. 2016-09-21 10:06:31 -07:00
LICENSE first commit, add license and readme 2015-08-13 16:22:40 -07:00
OWNERS Add spiffxp as root OWNER 2018-08-09 06:37:41 -07:00
README.md Merge branch 'master' into goreportcard 2017-04-18 09:50:02 -07:00

Kubernetes Contrib

Build Status Go Report Card APACHEv2 License

Do not add new projects to this repository. We eventually want to move all code in this repository to more appropriate repositories (see #762). Create a new repository in kubernetes-incubator instead (process).

Getting the Code

The code must be checked out as a subdirectory of k8s.io, and not github.com.

mkdir -p $GOPATH/src/k8s.io
cd $GOPATH/src/k8s.io
# Replace "$YOUR_GITHUB_USERNAME" below with your github username
git clone https://github.com/$YOUR_GITHUB_USERNAME/contrib.git
cd contrib

Updating Godeps

Godeps in contrib/ has a different layout than in kubernetes/ proper. This is because contrib contains multiple tiny projects, each with their own dependencies. Each in contrib/ has it's own Godeps.json. For example the Godeps.json for Ingress is Ingress/Godeps/Godeps.json. This means that godeps commands like godep restore or godep test do not work in the root directory. They should be run from inside the subproject directory you want to test.

Prerequisites for updating Godeps

Since we vendor godeps through /vendor vs the old style Godeps/_workspace, you either need a more recent install of go and godeps, or you need to set GO15VENDOREXPERIMENT=1. Eg:

$ godep version
godep v74 (linux/amd64/go1.6.1)
$ go version
go version go1.6.1 linux/amd64
$ godep save ./...

Will automatically save godeps to vendor/ instead of _workspace/. If you have an older version of go, you must run:

$ GO15VENDOREXPERIMENT=1 godep save ./...

If you have an older version of godep, you must update it:

$ go get github.com/tools/godep
$ cd $GOPATH/src/github.com/tools/godep
$ go build -o godep *.go

Updating Godeps

The most common dep to update is obviously going to be kubernetes proper. Updating kubernetes and it's dependancies in the Ingress subproject for example can be done as follows (the example assumes your Kubernetes repo is rooted at $GOPATH/src/github.com/kubernetes, s/github.com\/kubernetes/k8s.io/ as required):

cd $GOPATH/src/github.com/kubernetes/contrib/ingress
godep restore
go get -u github.com/kubernetes/kubernetes
cd $GOPATH/src/github.com/kubernetes/kubernetes
godep restore
cd $GOPATH/src/github/kubernetes/contrib/ingress
rm -rf Godeps
godep save ./...
git [add/remove] as needed
git commit

Other deps are similar, although if the dep you wish to update is included from kubernetes we probably want to stay in sync using the above method. If the dep is not in kubernetes proper something like the following should get you a nice clean result:

cd $GOPATH/src/github/kubernetes/contrib/ingress
godep restore
go get -u $SOME_DEP
rm -rf Godeps
godep save ./...
git [add/remove] as needed
git commit

Running all tests

To run all go test in all projects do this:

./hack/for-go-proj.sh test

Getting PRs Merged Into Contrib

In order for your PR to get merged, it must have the both lgtm AND approved labels. When you open a PR, the k8s-merge-bot will automatically assign a reviewer from the OWNERS files. Once assigned, the reviewer can then comment /lgtm, which will add the lgtm label, or if he/she has permission, the reviewer can add the label directly.

Each file modified in the PR will also need to be approved by an approver from its OWNERS file or an approver in a parent directory's OWNERS file. A file is approved when the approver comments /approve, and it is unapproved if an approver comments /approve cancel. When all files have been approved, the approved label will automatically be added by the k8s-merge-bot and the PR will be added to the submit-queue to be merged.