GitOps for k8s
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Phil Winder 1b83288b27 Huge refactor. 3 years ago
api Move instance DB and instance config into service/ 3 years ago
bin Creating a new release will prompt circle to upload binaries to release. 3 years ago
cluster Correct the serviceIDs calculation for deployments 3 years ago
cmd Consolidated code. 3 years ago
daemon Merge the image and git loops (again) 3 years ago
db Rename db migation conflict 3 years ago
deploy Make fluxd restarts more graceful 3 years ago
docker Bump alpine base image to 3.6 3 years ago
git Change GitRepoConfig return type 3 years ago
guid Make new subscriptions kick old subscriptions 3 years ago
history Move instance DB and instance config into service/ 3 years ago
http Merge pull request #656 from weaveworks/more-graceful-restarts 3 years ago
integrations/github Move http/error folder so the package name matches the import 3 years ago
internal_docs New documentation 3 years ago
job Change the job queue contract 3 years ago
metrics Standardize http metrics, to flux_request_duration 3 years ago
notifications Move instance DB and instance config into service/ 3 years ago
policy Parse serialisations of []Policy as policy.Set 3 years ago
registry Huge refactor. 3 years ago
release Change ApplyChanges stage timer to write_changes 3 years ago
remote Move instance DB and instance config into service/ 3 years ago
resource Make "ignore" a first-class policy 3 years ago
server Record the connection time of daemons 3 years ago
service Record the connection time of daemons 3 years ago
site instructions to use your own deploy key in FAQ (#631) 3 years ago
ssh Prefix ssh keygen tmpdir with ..weave- 3 years ago
sync Remove unused constants 3 years ago
update Distinguish automated release events 3 years ago
vendor Add http client rate limiter. 3 years ago
.gitignore Adjust gitignore to allow gvt manifest 3 years ago Be specific about how 'newer' Kubernetes 3 years ago
LICENSE Initial commit 4 years ago
Makefile Use Darwinic means to get a kernel version 3 years ago Add a CI badge and pare down some verbiage 3 years ago
circle.yml Update release deployment CI to use new image names 3 years ago
errors.go Avoid using 500s for application-level errors from the daemon 3 years ago
errors_test.go Expose helpful errors from releases as well 3 years ago
flux.go Move instance DB and instance config into service/ 3 years ago
image.go Huge refactor. 3 years ago
image_test.go Huge refactor. 3 years ago
lint Basic circle.yml, respecting Glide etc. 4 years ago


We believe that environments should be entirely version controlled. This is an anti-fragile measure to ensure stability through visibility. If anything fails, you can simply reapply the current state of the repository.

Flux is a tool that automatically ensures that the state of a cluster matches what is specified in version control (along with a few extra features).

It is most useful when used as a deployment tool at the end of a Continuous Delivery pipeline. Flux will make sure that your new container images and config changes are propagated to the cluster.


Flux Example

Get started by browsing through the documentation below.

Introduction to Flux

How it works

Installing Flux

Using Flux



Developer information

Build documentation

Release documentation


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.

Getting Help

If you have any questions about Flux and continuous delivery:

Your feedback is always welcome!