• This repository has been archived on 17/Apr/2019
  • Stars
    star
    2,467
  • Rank 18,638 (Top 0.4 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 9 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[EOL] This is a place for various components in the Kubernetes ecosystem that aren't part of the Kubernetes core.

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.

More Repositories

1

external-storage

[EOL] External storage plugins, provisioners, and helper libraries
Go
2,696
star
2

heapster

[EOL] Compute Resource Usage Analysis and Monitoring of Container Clusters
Go
2,626
star
3

kubefed

Kubernetes Cluster Federation
Go
2,484
star
4

bootkube

This project now lives at https://github.com/kinvolk/bootkube
Go
1,154
star
5

kube-aws

[EOL] A command-line tool to declaratively manage Kubernetes clusters on AWS
Go
1,130
star
6

kubeadm-dind-cluster

[EOL] A Kubernetes multi-node test cluster based on kubeadm
Shell
1,109
star
7

kube-batch

A batch scheduler of kubernetes for high performance workload, e.g. AI/ML, BigData, HPC
Go
1,065
star
8

service-catalog

Consume services in Kubernetes using the Open Service Broker API
Go
1,049
star
9

multi-tenancy

A working place for multi-tenancy related proposals and prototypes.
Go
950
star
10

frakti

The hypervisor-based container runtime for Kubernetes.
Go
670
star
11

kube-deploy

[EOL] A place for cluster deployment automation
Go
535
star
12

kubernetes-anywhere

[EOL] {concise,reliable,cross-platform} turnup of Kubernetes clusters
Shell
534
star
13

poseidon

[EOL] A Firmament-based Kubernetes scheduler
Go
409
star
14

kubernetes-bootcamp

[EOL] please see https://kubernetes.io/docs/tutorials/kubernetes-basics/ instead
JavaScript
268
star
15

cluster-registry

[EOL] Cluster Registry API
Go
237
star
16

kubernetes-docs-zh

[EOL] Chinese-language Kubernetes documentation
HTML
219
star
17

kubedash

[EOL] Analytics dashboard for Kubernetes
JavaScript
217
star
18

federation

[EOL] Cluster Federation
Go
209
star
19

kube-ui

[EOL] Deprecated Web UI for Kubernetes; please try dashboard instead
Go
150
star
20

drivers

[EOL] Example CSI Drivers
Go
139
star
21

rktlet

[EOL] The rkt implementation of the Kubernetes Container Runtime Interface
Go
138
star
22

kube-mesos-framework

[EOL] Kubernetes as a Mesos framework
HTML
108
star
23

minibroker

A minibroker for your minikube!
Go
89
star
24

csi-driver-image-populator

[EOL] CSI driver that uses a container image as a volume
Go
88
star
25

spartakus

[EOL] Anonymous Usage Collector
Go
75
star
26

nfs-provisioner

Go
71
star
27

cluster-api-bootstrap-provider-kubeadm

LEGACY REPO. NEW CODE IS https://github.com/kubernetes-sigs/cluster-api/tree/master/bootstrap/kubeadm
Go
62
star
28

go-open-service-broker-client

A golang client for service brokers implementing the Open Service Broker API
Go
60
star
29

cluster-api-provider-docker

A Cluster API Provider implementation using docker containers as the infra provider. Cluster API locally for a change!
Go
51
star
30

application-images

[EOL] Image build contents for Kubernetes applications.
Shell
48
star
31

kubernetes-docs-ko

[EOL] Korean-language Kubernetes documentation
HTML
34
star
32

testing_frameworks

[EOL] test frameworks for testing kubernetes
Go
34
star
33

csi-api

[EOL] CSIDriver CRD object
Go
23
star
34

mutating-trace-admission-controller

[EOL] a mutating admission controller which enables experimental tracing of kubernetes object lifecycle
Go
22
star
35

funding

Funding requests for project infrastructure, events, and consulting.
16
star
36

kubernetes-docs-ja

[EOL] Japanese-language Kubernetes documentation
HTML
16
star
37

k8s-gsm-tools

Controllers to sync and rotate kubernetes secrets with google secret manager
Go
14
star
38

contributor-tweets

Repo for automating tweets to the K8sContributor twitter account owned by the k8s Contributor Comms Team within SIG-contribex (https://github.com/kubernetes/community/tree/master/communication/contributor-comms)).
JavaScript
14
star
39

typescript

[EOL] see https://github.com/kubernetes-client/javascript instead
TypeScript
11
star
40

csi-driver-flex

[EOL] CSI Flexadapter driver and its build and dependent configuration files.
Shell
9
star
41

sig-usability

[EOL] SIG-Usability related docs and code
8
star
42

staging-noderesourcetopology-api

NodeResourceTopology API enables Topology aware scheduling in Kubernetes.
Shell
8
star
43

cosi-driver-minio

[EOL] Sample Driver that provides reference implementation for Container Object Storage Interface (COSI) API
Go
7
star
44

architecture-tracking

[EOL] Program management board for Kubernetes SIG-Architecture governed processes
7
star
45

csi-lib-fc

[EOL] A go package that can be imported to help CSI plugins with connecting to fibre channel devices
Go
6
star
46

csi-driver-fibre-channel

[EOL] Fibre Channel CSI Driver
Makefile
3
star
47

md-check

Go
2
star
48

kubernetes-csi-migration-library

[EOL] created due to https://github.com/kubernetes/org/issues/153
Go
1
star