This release includes a rewrite of the YAML updating code, removing
the restrictions on using List resources and files with multiple YAML
documents, as well as fixing various bugs (like being confused by the
indentation of container
blocks).
See https://github.com/weaveworks/flux/blob/1.4.0/site/requirements.md for remaining constraints.
The YAML parser preserves comments and literal quoting, but may reindent blocks the first time it changes a file.
- Correct an issue the led to Flux incorrectly reporting resources as read-only weaveworks/flux#1119
- Some YAML update problems were fixed by the rewrite, the most egregious being:
- botched releases when a YAML has indented container blocks weaveworks/flux#1082
- mangled annotations when using multidoc YAML files weaveworks/flux#1044
- Rewrite the YAML update code to use a round-tripping parser, rather than regular expressions weaveworks/flux#976. This removes the restrictions on how YAMLs are formatted, though there are still going to be corner cases in the parser (verifying changes will mitigate those by failing updates that would corrupt files).
- Correct filtering of Helm charts when loading manifests from the git repo weaveworks/flux#1076
- Sync with cluster as soon as the git repository is ready weaveworks/flux#1060
- Avoid panic when reporting on
StatefulSet
status weaveworks/flux#1062
- Changes made to the git repo when releasing new images are now verified, meaning less chance of erroneous changes being committed weaveworks/flux#1094
- The ListImages API method now accepts an argument saying which fields to include for each container. This is intended to cut down the amount of data sent over the wire, since you don't always need the full list of available images weaveworks/flux#1084
- Add (back) the fluxd flag
--docker-config
so that image registry credentials can be supplied in a file mounted into the container weaveworks/flux#1065. This should make it easier to work around situations in which you don't want to use imagePullSecrets on each resource. - Label
flux
andhelm-operator
images with Open Containers Initiative (OCI) metadata weaveworks/flux#1075
- Exclude no-longer relevant changes from auto-releases weaveworks/flux#1036
- Make release and auto-release events more accurately record the affected resources, by looking at the calculated result weaveworks/flux#1050
- Let the flux daemon operate without a git repo, and report cluster resources as read-only when there is no corresponding manifest weaveworks/flux#962
- Reinstate command-line arg for setting the git polling interval
--git-poll-interval
weaveworks/flux#1030 - Add
--git-ci-skip
(and for more fine control,--git-ci-skip-message
) for customising flux's commit messages such that CI systems ignore the commits weaveworks/flux#1011 - Log the daemon version on startup weaveworks/flux#1017
- Handle single-quoted image values in manifests weaveworks/flux#1008
- Use a writable tmpfs volume for generating keys, since Kubernetes >=1.10 and GKE (as of March 13 2018) mount secrets as read-only weaveworks/flux#1007
- CLI help examples updated with new resource ID format weaveworks/flux#945
- Fix a panic caused by accessing a
nil
map when logging events weaveworks/flux#975 - Properly support multi-line lock messages weaveworks/flux#978
- Ignore Helm charts when looking for Kubernetes manifests weaveworks/flux#993
- Enable pprof weaveworks/flux#927
- Use a Kubernetes serviceAccount when deploying Flux standalone weaveworks/flux#972
- Ensure at-least-once delivery of events to Weave Cloud weaveworks/flux#973
- Include resource sync errors when logging a sync event weaveworks/flux#970
- Alpha release of helm-operator
- Fix a spin loop in the registry cache weaveworks/flux#928
- Correctly handle YAML files with no trailing newline weaveworks/flux#916
The following improvements are to help if you are running a private registry.
- Support image registries using basic authentication (rather than token-based authentication) weaveworks/flux#915
- Introduce the daemon argument
--registry-insecure-host
for marking a registry as accessible via HTTP (rather than HTTPS) weaveworks/flux#918 - Better logging of registry fetch failures, for troubleshooting weaveworks/flux#898
- Fix an issue that prevented fetching tags for private repositories on DockerHub (and self-hosted registries) weaveworks/flux#897
- Releases are more responsive, because dry runs are now done without triggering a sync weaveworks/flux#862
- Syncs are much faster, because they are now done all-in-one rather than calling kubectl for each resource weaveworks/flux#872
- Rewrite of the image registry package to solve several problems weaveworks/flux#851
- Support signed manifests (from GCR in particular) weaveworks/flux#838
- Support CronJobs from Kubernetes API version
batch/v1beta1
, which are present in Kubernetes 1.7 (while those frombatch/b2alpha1
are not) weaveworks/flux#868 - Expand the GCR credentials support to
*.gcr.io
weaveworks/flux#882 - Check that the synced git repo is writable before syncing, which avoids a number of indirect failures weaveworks/flux#865
- and, lots of other things
- Flux can now release updates to DaemonSets, StatefulSets and CronJobs in addition to Deployments. Matching Service resources are no longer required.
- Implemented support for v2 registry manifests.
- Flux daemon can be configured to populate the git commit author with the name of the requesting user
- When multiple flux daemons share the same configuration repository, each fluxd only sends Slack notifications for commits that affect its branch/path
- When a resource is locked the invoking user is recorded, along with an optional message
- When a new config repo is synced for the first time, don't send notifications for the entire commit history
- The
fluxctl identity
command only worked via the Weave Cloud service, and not when connecting directly to the daemon
This release introduces significant changes to the way flux works:
- The git repository is now the system of record for your cluster state. Flux continually works to synchronise your cluster with the config repository
- Release, automation and policy actions work by updating the config repository
See https://github.com/weaveworks/flux/releases/tag/1.0.0 for full details.
Update to support newer Kubernetes (1.6.1).
- Support for Kubernetes' ReplicationControllers is deprecated; please update these to Deployments, which do the same job but much better (see https://kubernetes.io/docs/user-guide/replication-controller/#deployment-recommended)
- The service<->daemon protocol is versioned. The daemon will now crash-loop, printing a warning to the log, if it tries to connect to the service with a deprecated version of the protocol.
- Updated the version of
kubectl
bundled in the Flux daemon image, to work with newer (>1.5) Kubernetes. - Added
fluxctl save
command for bootstrapping a repo from an existing cluster - You can now record a message and username with each release, which show up in notifications
More informative and helpful UI.
- Lots more documentation
- More informative output from
fluxctl release
- Added option in
fluxctl set-config
to generate a deploy key
- Slack notifications are tidier
- Support for releasing to >1 service at a time
- Better behaviour when flux deploys itself
- More help given for commonly encountered errors
- Filter out Kubernetes add-ons from consideration
- More consistent Prometheus metric labeling
See also https://github.com/weaveworks/flux/issues?&q=closed%3A"2017-01-27 .. 2017-03-15"
Initial semver release.
- Validate image release requests.
- Added version command
- Added rate limiting to prevent registry 500's
- Added new release process
- Refactored registry code and improved coverage
See https://github.com/weaveworks/flux/milestone/7?closed=1 for full details.