kops/docs/development/building.md

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.