Habitat 0.14.0 released

We are delighted to announce the release of Habitat 0.14.0. As usual, we have a number of new features as well as bug fixes, so please read on for all the details. If you just want the binaries, head on over to our downloads page. Thanks again for using Habitat!

New: Supervisor Gossip Rewrite

Habitat 0.14.0 contains a complete rewrite of the gossip subsystem inside the supervisor. This layer uses a new library called Butterfly which improves the reliability and scalability of the gossip protocol by replacing the previous Swim-over-uTP implementation with one purely over UDP. For more information on the new implementation, please read the detailed documentation. The Butterfly library is also open source and available separately.

As part of this rewrite, some of the management APIs in the HTTP management interface have changed. For example, the /config, /gossip, /health and /status endpoints all live under the /services endpoint now. There is a new /butterfly endpoint to provide the status of the Butterfly system. None of this affects end-user tooling like the “hab” binary, but if you have custom integrations with the HTTP management interface, you will need to modify them.

Improved: “config apply” and “file upload” interfaces rationalized

As part of the supervisor gossip improvements above, we have also rationalized the way in which “config apply” and “file upload” work. Previously, “config apply” did not permit encryption to service groups; it only permitted wire encryption. In Habitat 0.14.0, both file uploads and config application can use service group encryption.

Removed: Initializer topology

The gossip system rewrite does not currently support the initializer topology, so we have removed it for the time being. We believe that, if required, it will become a configurable parameter to a generic leader-follower topology. We would love to hear your feedback if you were previously using this topology.

Improvements

The Habitat API will no longer return a cryptic error when a user’s GitHub token has insufficient permissions. https://github.com/habitat-sh/habitat/pull/1530
Hab on Mac will not attempt to pull the studio image repeatedly if you already have it. https://github.com/habitat-sh/habitat/pull/1521
Inside a studio, command line completion for “hab” is now available using the completers that shipped previously. https://github.com/habitat-sh/habitat/pull/1529