consul v0.6.0 Release Notes

Release Date: 2015-12-03 // over 8 years ago
  • BACKWARDS INCOMPATIBILITIES:

    • ๐Ÿ”’ A KV lock acquisition operation will now allow the lock holder to update the key's contents without giving up the lock by doing another PUT with ?acquire=<session> and providing the same session that is holding the lock. Previously, this operation would fail.

    ๐Ÿ”‹ FEATURES:

    • Service ACLs now apply to service discovery [GH-1024]
    • โž• Added event ACLs to guard firing user events [GH-1046]
    • โž• Added keyring ACLs for gossip encryption keyring operations [GH-1090]
    • โž• Added a new TCP check type that does a connect as a check [GH-1130]
    • โž• Added new "tag override" feature that lets catalog updates to a service's tags flow down to agents [GH-1187]
    • Ported in-memory database from LMDB to an immutable radix tree to improve read throughput, reduce garbage collection pressure, and make Consul 100% pure Go [GH-1291]
    • โž• Added support for sending telemetry to DogStatsD [GH-1293]
    • โž• Added new network tomography subsystem that estimates the network round trip times between nodes and exposes that in raw APIs, as well as in existing APIs (find the service node nearest node X); also includes a new consul rtt command to query interactively [GH-1331]
    • ๐Ÿ— Consul now builds under Go 1.5.1 by default [GH-1345]
    • โž• Added built-in support for running health checks inside Docker containers [GH-1343]
    • โž• Added prepared queries which support service health queries with rich features such as filters for multiple tags and failover to remote datacenters based on network coordinates; these are available via HTTP as well as the DNS interface [GH-1389]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fixed expired certificates in unit tests [GH-979]
    • ๐Ÿ‘ Allow services with / characters in the UI [GH-988]
    • โž• Added SOA/NXDOMAIN records to negative DNS responses per RFC2308 [GH-995] [GH-1142] [GH-1195] [GH-1217]
    • ๐Ÿ”Š Token hiding in HTTP logs bug fixed [GH-1020]
    • RFC6598 addresses are accepted as private IPs [GH-1050]
    • ๐Ÿ›  Fixed reverse DNS lookups to recursor [GH-1137]
    • โœ‚ Removes the trailing / added by the consul lock command [GH-1145]
    • ๐Ÿ›  Fixed bad lock handler execution during shutdown [GH-1080] [GH-1158] [GH-1214]
    • โž• Added missing support for AAAA queries for nodes [GH-1222]
    • Tokens passed from the CLI or API work for maint mode [GH-1230]
    • ๐Ÿ›  Fixed service deregister/reregister flaps that could happen during consul reload [GH-1235]
    • ๐Ÿ›  Fixed the Go API client to properly distinguish between expired sessions and sessions that don't exist [GH-1041]
    • ๐Ÿ›  Fixed the KV section of the UI to work on Safari [GH-1321]
    • ๐Ÿ’ป Cleaned up JavaScript for built-in UI with bug fixes [GH-1338]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • โž• Added sorting of consul members command output [GH-969]
    • โšก๏ธ Updated AWS templates for RHEL6, CentOS6 [GH-992] [GH-1002]
    • ๐Ÿ”ง Advertised gossip/rpc addresses can now be configured [GH-1004]
    • ๐Ÿ”’ Failed lock acquisition handling now responds based on type of failure [GH-1006]
    • Agents now remember check state across restarts [GH-1009]
    • โœ… Always run ACL tests by default in API tests [GH-1030]
    • Consul now refuses to start if there are multiple private IPs [GH-1099]
    • ๐Ÿ‘Œ Improved efficiency of servers managing incoming connections from agents [GH-1170]
    • โž• Added logging of the DNS client addresses in error messages [GH-1166]
    • โž• Added -http-port option to change the HTTP API port number [GH-1167]
    • Atlas integration options are reload-able via SIGHUP [GH-1199]
    • ๐Ÿ”ง Atlas endpoint is a configurable option and CLI arg [GH-1201]
    • โž• Added -pass-stdin option to consul lock command [GH-1200]
    • ๐Ÿ’ป Enables the /v1/internal/ui/* endpoints, even if -ui-dir isn't set [GH-1215]
    • โž• Added HTTP method to Consul's log output for better debugging [GH-1270]
    • ๐Ÿ”’ Lock holders can ?acquire=<session> a key again with the same session that holds the lock to update a key's contents without releasing the lock [GH-1291]
    • ๐Ÿ‘Œ Improved an O(n2) algorithm in the agent's catalog sync code [GH-1296]
    • Switched to net-rpc-msgpackrpc to reduce RPC overhead [GH-1307]
    • โœ‚ Removed all uses of the http package's default client and transport in Consul to avoid conflicts with other packages [GH-1310] [GH-1327]
    • โž• Added new X-Consul-Token HTTP header option to avoid passing tokens in the query string [GH-1318]
    • ๐Ÿ‘€ Increased session TTL max to 24 hours (use with caution, see note added to the Session HTTP endpoint documentation) [GH-1412]
    • โž• Added support to the API client for retrying lock monitoring when Consul is unavailable, helping prevent false indications of lost locks (eg. apps like Vault can avoid failing over when a Consul leader election occurs) [GH-1457]
    • โž• Added reap of receive buffer space for idle streams in the connection pool [GH-1452]

    MISC:

    • ๐Ÿ›  Lots of docs fixes
    • Lots of Vagrantfile cleanup
    • ๐Ÿšš Data migrator utility removed to eliminate cgo dependency [GH-1309]

    โฌ†๏ธ UPGRADE NOTES:

    • Consul will refuse to start if the data directory contains an "mdb" folder. This folder was used in versions of Consul up to 0.5.1. Consul version 0.5.2 included a baked-in utility to automatically upgrade the data format, but this has been removed in Consul 0.6 to eliminate the dependency on cgo.
    • ๐Ÿ†• New service read, event firing, and keyring ACLs may require special steps to perform during an upgrade if ACLs are enabled and set to deny by default.
    • Consul will refuse to start if there are multiple private IPs available, so if this is the case you will need to configure Consul's advertise or bind addresses before upgrading.

    โฌ†๏ธ See https://www.consul.io/docs/upgrade-specific.html for detailed upgrade instructions.