A tool for turning container images into running Kubernetes services
Go Other
Latest commit a6a0439 Jan 19, 2017 @paulbellamy paulbellamy Fix index-range panic
Failed to load latest commit information.
api Try a 'fluxctl status' command Jan 10, 2017
automator Remove migration code for automatedServiceJobs Jan 12, 2017
bin Creating a new release will prompt circle to upload binaries to release. Jan 10, 2017
cmd Merge pull request #381 from weaveworks/registry-cache-metrics Jan 19, 2017
db Remove old release_jobs table Dec 5, 2016
deploy Merge pull request #246 from weaveworks/use-nats-messagebus Dec 20, 2016
docker Creating a new release will prompt circle to upload binaries to release. Jan 10, 2017
docs Add link to release docs from README. Jan 10, 2017
git Add git status stderr output into the status command Jan 10, 2017
guid Make new subscriptions kick old subscriptions Dec 14, 2016
history Correct metrics field name Dec 23, 2016
http Add a shorter timeout on fluxd connecting Jan 18, 2017
instance Add metrics to the registry memcached client Jan 18, 2017
jobs Remove migration code for automatedServiceJobs Jan 12, 2017
metrics Add release_kind metric, for tracking dry runs vs executes Jan 9, 2017
platform Add fluxd version to fluxctl status command Jan 10, 2017
registry Fix index-range panic Jan 19, 2017
release Merge pull request #349 from weaveworks/automated-instance-job Jan 11, 2017
server Fix loop variable capture bug in history timestamps Jan 11, 2017
vendor use my fork of the heroku-registry-client to handle relative nextLink… Jan 19, 2017
.gitignore Revert 76332b5 Oct 19, 2016
CHANGELOG.md Creating a new release will prompt circle to upload binaries to release. Jan 10, 2017
LICENSE Initial commit Jul 7, 2016
Makefile Bake version numbers into all binaries. Jan 10, 2017
README.md Merge pull request #365 from weaveworks/docs/gnatsd-note Jan 19, 2017
circle.yml Merge pull request #376 from weaveworks/registry-cache Jan 17, 2017
config.go Add --fingerprint option to get-config Nov 16, 2016
lint Basic circle.yml, respecting Glide etc. Jul 15, 2016
service.go Review fixes Jan 12, 2017
service_test.go Added "no spec" and "all spec"s to test. Jan 12, 2017



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.

Dependency management

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.