Flux is a tool for deploying container images to Kubernetes clusters.
For the minute you will have to build or use the container images weaveworks/flux{d,svc}
.
The directory deploy/
has example Kubernetes configuration and instructions for using it.
Ensure the repository is checked out into $GOPATH/src/github.com/weaveworks/flux. Then, from the root,
$ gvt restore
# .. time passes ..
$ make
This makes Docker images, and installs binaries to $GOPATH/bin.
$ go test ./...
Note: In order to run the NATS message bus tests (the message bus that connects fluxctl -> fluxsvc -> nats -> fluxsvc -> fluxd) you need to have a running gnatsd instance.
We use gvt to manage vendored dependencies. Note that we do not check in the vendor folder.
To get all the dependencies put in the vendor/
folder, use
$ go get -u github.com/FiloSottile/gvt # install gvt if you don't have it
$ gvt restore
To add dependencies, use
$ gvt fetch <dependency>
gvt
does not discover dependencies for you, but it will add them
recursively; so, it should be sufficient to just add packages you
import.
See the release docs for instructions about how to release a version of flux.
Flux follows a typical PR workflow. All contributions should be made as PRs that satisfy the guidelines below.
- All code must abide Go Code Review Comments
- Names should abide What's in a name
- Code must build on both Linux and Darwin, via plain
go build
- Code should have appropriate test coverage, invoked via plain
go test
In addition, several mechanical checks are enforced. See the lint script for details.