https://github.com/squaremo/fluxy-testdata
Flux, reimagined, with a simply magical user experience
https://github.com/squaremo/fluxy-testdata
Last synced: about 1 month ago
JSON representation
Flux, reimagined, with a simply magical user experience
- Host: GitHub
- URL: https://github.com/squaremo/fluxy-testdata
- Owner: squaremo
- License: apache-2.0
- Created: 2016-08-18T09:56:10.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-11-08T21:45:09.000Z (over 9 years ago)
- Last Synced: 2025-01-25T05:25:02.352Z (over 1 year ago)
- Language: Go
- Homepage:
- Size: 3.16 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: history/drivers.go
- License: LICENSE
Awesome Lists containing this project
README
# fluxy
Work with your code, from laptop to prod.
## User stories
I want to update a specific image in a specific service, and deploy it.
```
fluxctl release --service=S --update-image=I
```
I want to deploy specific service/image pairs from some other source of truth, e.g. a dev environment to a prod environment.
```
# Some script wrapping this command:
fluxctl release --service=S --update-image=I
```
I want to deploy the latest images for a given service.
```
fluxctl release --service=S --update-all-images
```
I want to release a specific image to all services that are using that image, except some services that I have manually excluded somehow.
```
fluxctl release --all --update-image=I
```
I want to deploy the latest images for all services on the platform, except some services that I have manually excluded somehow.
```
fluxctl release --all --update-all-images
```
I want to deploy a service with no change of image, just taking the latest resource definition file.
This may be known as a config change deployment.
```
fluxctl release --service=S
```
I want to automatically deploy the latest images for a set of opt-in services.
```
fluxctl automate --service=S
```
I want to show all recognized services and their status.
```
fluxctl list-services
```
I want to find out what images are available for a service.
```
fluxctl list-images --service=S
```
I want to inspect the history of actions taken with Fluxy, both per-service and overall.
```
fluxctl history [--service=S]
```
## Installing
For the minute you will have to build or use the container image
`quay.io/weaveworks/fluxy`.
## Developing
### Build
Ensure the repository is checked out into $GOPATH/src/github.com/weaveworks/fluxy.
Then, from the root,
```
$ gvt restore
# .. time passes ..
$ make
```
This makes Docker images, and installs binaries to $GOPATH/bin.
### Test
```
$ go test ./...
```
### Dependency management
We use [gvt](https://github.com/FiloSottile/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
```
`gvt` does not *discover* dependencies for you, but it will add them
recursively; so, it should be sufficient to just add packages you
import.
### Contribution
Flux follows a typical PR workflow.
All contributions should be made as PRs that satisfy the guidelines below.
### Guidelines
- All code must abide [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments)
- Names should abide [What's in a name](https://talks.golang.org/2014/names.slide#1)
- 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](/lint) for details.