consul/CHANGELOG.md

12 KiB

0.5.0 (Unreleased)

FEATURES:

  • Key rotation support for gossip layer. This allows the encrypt key to be changed globally. See "keyring" command. [GH-336]
  • Options to join the WAN pool on start (start_join_wan, retry_join_wan) [GH-477]
  • Optional HTTPS interface [GH-478]
  • Ephemeral keys via "delete" session behavior. This allows keys to be deleted when a session is invalidated instead of having the lock released. Adds new "Behavior" field to Session which is configurable. [GH-487]
  • Reverse DNS lookups via PTR for IPv4 and IPv6 [GH-475]
  • API added checks and services are persisted. This means services and checks will survive a crash or restart. [GH-497]
  • ACLs can now protect service registration. Users in blacklist mode should allow registrations before upgrading to prevent a service disruption. [GH-506] [GH-465]
  • Sessions support a heartbeat failure detector via use of TTLs. This adds a new "TTL" field to Sessions and a /v1/session/renew endpoint. Heartbeats act like a failure detector (health check), but are managed by the servers. [GH-524] [GH-172]
  • Support for service specific IP addresses. This allows the service to advertise an address that is different from the agent. [GH-229] [GH-570]
  • Support KV Delete with Check-And-Set [GH-589]
  • Merge armon/consul-api into api as official Go client.
  • Support for distributed locks and semaphores in API client [GH-594] [GH-600]
  • Support for native HTTP health checks [GH-592]
  • Support for node and service maintanence modes [GH-606]
  • Added new "consul maint" command to easily toggle maintanence modes [GH-625]
  • Added new "consul lock" command for simple highly-available deployments. This lets Consul manage the leader election and easily handle N+1 deployments without the applications being Consul aware. [GH-619]
  • Multiple checks can be associated with a service [GH-591] [GH-230]

BUG FIXES:

  • Fixed X-Consul-Index calculation for KV ListKeys
  • Fixed errors under extremely high read parallelism
  • Fixed issue causing event watches to not fire reliably [GH-479]
  • Fixed non-monotonic X-Consul-Index with key deletion [GH-577] [GH-195]
  • Fixed use of default instead of custom TLD in some DNS responses [GH-582]
  • Fixed memory leaks in API client when an error response is returned [GH-608]
  • Fixed issues with graceful leave in single-node bootstrap cluster [GH-621]
  • Fixed issue preventing node reaping [GH-371]
  • Fixed gossip stability at very large scale

IMPROVEMENTS:

  • Support "consul exec" in foreign datacenter [GH-584]
  • Improved K/V blocking query performance [GH-578]
  • CLI respects CONSUL_RPC_ADDR environment variable to load parameter [GH-542]
  • Added support for multiple DNS recursors [GH-448]
  • Added support for definining multiple services per configuration file [GH-433]
  • Added support for definining multiple checks per configuration file [GH-433]
  • Allow mixing of service and check definitions in a configuration file [GH-433]
  • Allow notes for checks in service definition file [GH-449]
  • Random stagger for agent checks to prevent thundering herd [GH-546]
  • More useful metrics are sent to statsd/statsite
  • Added configuration to set custom HTTP headers (CORS) [GH-558]
  • Reject invalid configurations to simplify validation [GH-576]
  • Guard against accidental cluster mixing [GH-580] [GH-260]
  • Added option to filter DNS results on warning [GH-595]
  • Improve write throughput with raft log caching [GH-604]
  • Added ability to bind RPC and HTTP listeners to UNIX sockets [GH-587] [GH-612]
  • K/V HTTP endpoint returns 400 on conflicting flags [GH-634] [GH-432]

MISC:

  • UI confirms before deleting key sub-tree [GH-520]
  • More useful output in "consul version" [GH-480]
  • Many documentation improvements
  • Reduce log messages when quorum member is logs [GH-566]

0.4.1 (October 20, 2014)

FEATURES:

  • Adding flags for -retry-join to attempt a join with configurable retry behavior. [GH-395]

BUG FIXES:

  • Fixed ACL token in UI
  • Fixed ACL reloading in UI [GH-323]
  • Fixed long session names in UI [GH-353]
  • Fixed exit code from remote exec [GH-346]
  • Fixing only a single watch being run by an agent [GH-337]
  • Fixing potential race in connection multiplexing
  • Fixing issue with Session ID and ACL ID generation. [GH-391]
  • Fixing multiple headers for /v1/event/list endpoint [GH-361]
  • Fixing graceful leave of leader causing invalid Raft peers [GH-360]
  • Fixing bug with closing TLS connction on error
  • Fixing issue with node reaping [GH-371]
  • Fixing aggressive deadlock time [GH-389]
  • Fixing syslog filter level [GH-272]
  • Serf snapshot compaction works on Windows [GH-332]
  • Raft snapshots work on Windows [GH-265]
  • Consul service entry clean by clients now possible
  • Fixing improper deserialization

IMPROVEMENTS:

  • Use "critical" health state instead of "unknown" [GH-341]
  • Consul service can be targed for exec [GH-344]
  • Provide debug logging for session invalidation [GH-390]
  • Added "Deregister" button to UI [GH-364]
  • Added enable_truncate DNS configuration flag [GH-376]
  • Reduce mmap() size on 32bit systems [GH-265]
  • Temporary state is cleaned after an abort [GH-338] [GH-178]

MISC:

  • Health state "unknown" being deprecated

0.4.0 (September 5, 2014)

FEATURES:

  • Fine-grained ACL system to restrict access to KV store. Clients use tokens which can be restricted to (read, write, deny) permissions using longest-prefix matches.

  • Watch mechanisms added to invoke a handler when data changes in consul. Used with the consul watch command, or by specifying watches in an agent configuration.

  • Event system added to support custom user events. Events are fired using the consul event command. They are handled using a standard watch.

  • Remote execution using consul exec. This allows for command execution on remote instances mediated through Consul.

  • RFC-2782 style DNS lookups supported

  • UI improvements, including support for ACLs.

IMPROVEMENTS:

  • DNS case-insensitivity [GH-189]
  • Support for HTTP ?pretty parameter to pretty format JSON output.
  • Use $SHELL when invoking handlers. [GH-237]
  • Agent takes the -encrypt CLI Flag [GH-245]
  • New statsd_add config for Statsd support. [GH-247]
  • New addresses config for providing an override to client_addr for DNS, HTTP, or RPC endpoints. [GH-301] [GH-253]
  • Support Checkpoint for security bulletins and update announcements.

BUG FIXES:

  • Fixed race condition in -bootstrap-expect [GH-254]
  • Require PUT to /v1/session/destroy [GH-285]
  • Fixed registration race condition [GH-300] [GH-279]

UPGRADE NOTES:

  • ACL support should not be enabled until all server nodes are running Consul 0.4. Mixed server versions with ACL support enabled may result in panics.

0.3.1 (July 21, 2014)

FEATURES:

  • Improved bootstrapping process, thanks to @robxu9

BUG FIXES:

  • Fixed issue with service re-registration [GH-216]
  • Fixed handling of -rejoin flag
  • Restored 0.2 TLS behavior, thanks to @nelhage [GH-233]
  • Fix the statsite flags, thanks to @nelhage [GH-243]
  • Fixed filters on criticial / non-passing checks [GH-241]
  • Fixed initial log compaction crash [GH-297]

IMPROVEMENTS:

  • UI Improvements
  • Improved handling of Serf snapshot data
  • Increase reliability of failure detector
  • More useful logging messages

0.3.0 (June 13, 2014)

FEATURES:

  • Better, faster, cleaner UI [GH-194] [GH-196]
  • Sessions, which act as a binding layer between nodes, checks and KV data. [GH-162]
  • Key locking. KV data integrates with sessions to enable distributed locking. [GH-162]
  • DNS lookups can do stale reads and TTLs. [GH-200]
  • Added new /v1/agent/self endpoint [GH-173]
  • reload command can be used to trigger configuration reload from the CLI [GH-142]

IMPROVEMENTS:

  • members has a much cleaner output format [GH-143]
  • info includes build version information
  • Sorted results for datacneter list [GH-198]
  • Switch multiplexing to yamux
  • Allow multiple CA certis in ca_file [GH-174]
  • Enable logging to syslog. [GH-105]
  • Allow raw key value lookup [GH-150]
  • Log encryption enabled [GH-151]
  • Support -rejoin to rejoin a cluster after a previous leave. [GH-110]
  • Support the "any" wildcard for v1/health/state/ [GH-152]
  • Defer sync of health check output [GH-157]
  • Provide output for serfHealth check [GH-176]
  • Datacenter name is validated [GH-169]
  • Configurable syslog facilities [GH-170]
  • Pipelining replication of writes
  • Raft group commits
  • Increased stability of leader terms
  • Prevent previously left nodes from causing re-elections

BUG FIXES:

  • Fixed memory leak in in-memory stats system
  • Fixing race between RPC and Raft init [GH-160]
  • Server-local RPC is avoids network [GH-148]
  • Fixing builds for older OSX [GH-147]

MISC:

  • Fixed missing prefixes on some log messages
  • Removed the -role filter of members command
  • Lots of docs fixes

0.2.1 (May 20, 2014)

IMPROVEMENTS:

  • Improved the URL formatting for the key/value editor in the Web UI. Importantly, the editor now allows editing keys with dashes in the name. [GH-119]
  • The web UI now has cancel and delete folder actions in the key/value editor. [GH-124], [GH-122]
  • Add flag to agent to write pid to a file. [GH-106]
  • Time out commands if Raft exceeds command enqueue timeout
  • Adding support for the -advertise CLI flag. [GH-156]
  • Fixing potential name conflicts on the WAN gossip ring [GH-158]
  • /v1/catalog/services returns an empty slice instead of null. [GH-145]
  • members command returns exit code 2 if no results. [GH-116]

BUG FIXES:

  • Renaming "seperator" to "separator". This is the correct spelling, but both spellings are respected for backwards compatibility. [GH-101]
  • Private IP is properly found on Windows clients.
  • Windows agents won't show "failed to decode" errors on every RPC request.
  • Fixed memory leak with RPC clients. [GH-149]
  • Serf name conflict resoultion disabled. [GH-97]
  • Raft deadlock possibility fixed. [GH-141]

MISC:

  • Updating to latest version of LMDB
  • Reduced the limit of KV entries to 512KB. [GH-123].
  • Warn if any Raft log exceeds 1MB
  • Lots of docs fixes

0.2.0 (May 1, 2014)

FEATURES:

  • Adding Web UI for Consul. This is enabled by providing the -ui-dir flag with the path to the web directory. The UI is visited at the standard HTTP address (Defaults to http://127.0.0.1:8500/). There is a demo available here.
  • Adding new read consistency modes. ?consistent can be used for strongly consistent reads without caveats. ?stale can be used for stale reads to allow for higher throughput and read scalability. [GH-68]
  • /v1/health/service/ endpoint can take an optional ?passing flag to filter to only nodes with passing results. [GH-57]
  • The KV endpoint suports listing keys with the ?keys query parameter, and limited up to a separator using ?separator=.

IMPROVEMENTS:

  • Health check output goes into separate Output field instead of overriding Notes. [GH-59]
  • Adding a minimum check interval to prevent checks with extremely low intervals fork bombing. [GH-64]
  • Raft peer set cleared on leave. [GH-69]
  • Case insensitive parsing checks. [GH-78]
  • Increase limit of DB size and Raft log on 64bit systems. [GH-81]
  • Output of health checks limited to 4K. [GH-83]
  • More warnings if GOMAXPROCS == 1 [GH-87]
  • Added runtime information to consul info

BUG FIXES:

  • Fixed 404 on /v1/agent/service/deregister and /v1/agent/check/deregister. [GH-95]
  • Fixed JSON parsing for /v1/agent/check/register [GH-60]
  • DNS parser can handler period in a tag name. [GH-39]
  • "application/json" content-type is sent on HTTP requests. [GH-45]
  • Work around for LMDB delete issue. [GH-85]
  • Fixed tag gossip propagation for rapid restart. [GH-86]

MISC:

  • More conservative timing values for Raft
  • Provide a warning if attempting to commit a very large Raft entry
  • Improved timeliness of registration when server is in bootstrap mode. [GH-72]

0.1.0 (April 17, 2014)

  • Initial release