mirror of https://github.com/kubernetes/kops.git
36 lines
1.3 KiB
Markdown
36 lines
1.3 KiB
Markdown
# Building from source
|
|
|
|
[Installation from a binary](../install.md) is recommended for normal kops operation. However, if you want
|
|
to build from source, it is straightforward:
|
|
|
|
If you don't have a GOPATH:
|
|
|
|
```
|
|
mkdir ~/kops
|
|
cd ~/kops
|
|
export GOPATH=`pwd`
|
|
```
|
|
|
|
Check out and build the code:
|
|
|
|
```
|
|
go get -d k8s.io/kops
|
|
cd ${GOPATH}/src/k8s.io/kops/
|
|
git checkout release
|
|
make
|
|
```
|
|
|
|
* The `release` branch is where releases are taken from. This is the stable code branch.
|
|
* The `master` branch _should_ also be functional, but is where active development happens, so may be less stable.
|
|
|
|
## Cross Compiling
|
|
|
|
Cross compiling for things like `nodeup` are now done automatically via `make nodeup`. `make push-aws-run TARGET=admin@$TARGET` will automatically choose the linux amd64 build from your `.build` directory.
|
|
|
|
## Troubleshooting
|
|
|
|
- Make sure `$GOPATH` is set, and your [workspace](https://golang.org/doc/code.html#Workspaces) is configured.
|
|
- kops will not compile with symlinks in `$GOPATH`. See issue go issue [17451](https://github.com/golang/go/issues/17451) for more information
|
|
- building kops requires go 1.8 or 1.9
|
|
- Kops will only compile if the source is checked out in `$GOPATH/src/k8s.io/kops`. If you try to use `$GOPATH/src/github.com/kubernetes/kops` you will run into issues with package imports not working as expected.
|