Skip to content

Commit 20b7e9b

Browse files
committed
Add CONTRIBUTING section on build
1 parent d56b9a6 commit 20b7e9b

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

CONTRIBUTING.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,46 @@ some bugs or smaller features. We have a [feature development
8282
process](https://github.com/kubernetes/features/blob/master/README.md), but
8383
navigating the Kubernetes system as a newcomer can be very challenging.
8484

85+
### Downloading the project
86+
87+
There are a few ways you can download this code. You must download it into a
88+
GOPATH - see [golang.org](https://golang.org/doc/code.html) for more info on
89+
how Go works with code. This project expects to be found at the Go package
90+
`k8s.io/kubernetes`.
91+
92+
1. You can `git clone` the repo. If you do this, you MUST make sure it is in
93+
the GOPATH as `k8s.io/kubernetes` or it may not build. E.g.: `git clone
94+
https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes`
95+
1. You can use `go get` to fetch the repo. This will automatically put it into
96+
your GOPATH in the right place. E.g.: `go get -d k8s.io/kubernetes`
97+
1. You can download an archive of the source. If you do this, you MUST make
98+
sure it is unpacked into the GOPATH as `k8s.io/kubernetes` or it may not
99+
build. See [rel.k8s.io](http://rel.k8s.io) for a list of available releases.
100+
101+
### Building the project
102+
103+
There are a few things you need to build and test this project:
104+
105+
1. `make` - the human interface to the Kubernetes build is `make`, so you must
106+
have this tool installed on your machine. We try not to use too many crazy
107+
features of `Makefile`s and other tools, so most commonly available versions
108+
should work.
109+
1. `docker` - some parts of the build/test system depend on `docker`. You
110+
need a relatively recent version of Docker installed, and available to you.
111+
1. `go` - Kubernetes is written in Go (aka golang), so you need a relatively
112+
recent version of the [Go toolchain](https://golang.org/dl/) installed.
113+
While Linux is the primary platform for Kubernetes, it should compile on a
114+
Mac, too. Windows is in progress.
115+
116+
To build Kubernetes, simply type `make`. This should figure out what it needs
117+
to do and not need any input from you. If you want to just build a subset of
118+
code, you can pass the `WHAT` variable to `make`: e.g. `make
119+
WHAT="cmd/kubelet"`.
120+
121+
To run basic tests, simply type `make test`. This will run all of the unit
122+
tests in the project. If you want to just test a subset of the project, you
123+
can pass the `WHAT` variable to `make`: e.g. `make test WHAT=pkg/kubelet`.
124+
85125
### Protocols for Collaborative Development
86126

87127
Please read [this doc](docs/devel/collab.md) for information on how we're

0 commit comments

Comments
 (0)