All Versions
183
Latest Version
Avg Release Cycle
29 days
Latest Release
616 days ago

Changelog History
Page 17

  • v0.8.0 Changes

    April 05, 2017

    ๐Ÿ’ฅ BREAKING CHANGES:

    • ๐Ÿ—„ Command-Line Interface RPC Deprecation: The RPC client interface has been removed. All CLI commands that used RPC and the -rpc-addr flag to communicate with Consul have been converted to use the HTTP API and the appropriate flags for it, and the rpc field has been removed from the port and address binding configs. You will need to remove these fields from your config files and update any scripts that passed a custom -rpc-addr to the following commands: force-leave, info, join, keyring, leave, members, monitor, reload

    • ๐Ÿ”– Version 8 ACLs Are Now Opt-Out: The acl_enforce_version_8 configuration now defaults to true to enable full version 8 ACL support by default. If you are upgrading an existing cluster with ACLs enabled, you will need to set this to false during the upgrade on both Consul agents and Consul servers. Version 8 ACLs were also changed so that acl_datacenter must be set on agents in order to enable the agent-side enforcement of ACLs. This makes for a smoother experience in clusters where ACLs aren't enabled at all, but where the agents would have to wait to contact a Consul server before learning that. [GH-2844]

    • Remote Exec Is Now Opt-In: The default for disable_remote_exec was changed to "true", so now operators need to opt-in to having agents support running commands remotely via consul exec. [GH-2854]

    • Raft Protocol Compatibility: When upgrading to Consul 0.8.0 from a version lower than 0.7.0, users will need to set the -raft-protocol option to 1 in order to maintain backwards compatibility with the old servers during the upgrade. See Upgrading Specific Versions guide for more details.

    ๐Ÿ”‹ FEATURES:

    • Autopilot: A set of features has been added to allow for automatic operator-friendly management of Consul servers. For more information about Autopilot, see the Autopilot Guide.
      • Dead Server Cleanup: Dead servers will periodically be cleaned up and removed from the Raft peer set, to prevent them from interfering with the quorum size and leader elections.
      • Server Health Checking: An internal health check has been added to track the stability of servers. The thresholds of this health check are tunable as part of the Autopilot configuration and the status can be viewed through the /v1/operator/autopilot/health HTTP endpoint.
      • New Server Stabilization: When a new server is added to the cluster, there will be a waiting period where it must be healthy and stable for a certain amount of time before being promoted to a full, voting member. This threshold can be configured using the new server_stabilization_time setting.
      • Advanced Redundancy: (Consul Enterprise) A new -non-voting-server option flag has been added for Consul servers to configure a server that does not participate in the Raft quorum. This can be used to add read scalability to a cluster in cases where a high volume of reads to servers are needed, but non-voting servers can be lost without causing an outage. There's also a new redundancy_zone_tag configuration that allows Autopilot to manage separating servers into zones for redundancy. Only one server in each zone can be a voting member at one time. This helps when Consul servers are managed with automatic replacement with a system like a resource scheduler or auto-scaling group. Extra non-voting servers in each zone will be available as hot standbys (that help with read-scaling) that can be quickly promoted into service when the voting server in a zone fails.
      • Upgrade Orchestration: (Consul Enterprise) Autopilot will automatically orchestrate an upgrade strategy for Consul servers where it will initially add newer versions of Consul servers as non-voters, wait for a full set of newer versioned servers to be added, and then gradually swap into service as voters and swap out older versioned servers to non-voters. This allows operators to safely bring up new servers, wait for the upgrade to be complete, and then terminate the old servers.
    • Network Areas: (Consul Enterprise) A new capability has been added which allows operators to define network areas that join together two Consul datacenters. Unlike Consul's WAN feature, network areas use just the server RPC port for communication, and pairwise relationships can be made between arbitrary datacenters, so not all servers need to be fully connected. This allows for complex topologies among Consul datacenters like hub/spoke and more general trees. See the Network Areas Guide for more details.
    • WAN Soft Fail: Request routing between servers in the WAN is now more robust by treating Serf failures as advisory but not final. This means that if there are issues between some subset of the servers in the WAN, Consul will still be able to route RPC requests as long as RPCs are actually still working. Prior to WAN Soft Fail, any datacenters having connectivity problems on the WAN would mean that all DCs might potentially stop sending RPCs to those datacenters. [GH-2801]
    • WAN Join Flooding: A new routine was added that looks for Consul servers in the LAN and makes sure that they are joined into the WAN as well. This catches up up newly-added servers onto the WAN as soon as they join the LAN, keeping them in sync automatically. [GH-2801]
    • Validate command: To provide consistency across our products, the configtest command has been deprecated and replaced with the validate command (to match Nomad and Terraform). The configtest command will be removed in Consul 0.9. [GH-2732]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ›  agent: Fixed a missing case where gossip would stop flowing to dead nodes for a short while. [GH-2722]
    • ๐Ÿ‘€ agent: Changed agent to seed Go's random number generator. [GH-2722]
    • agent: Serf snapshots no longer have the executable bit set on the file. [GH-2722]
    • agent: Consul is now built with Go 1.8. [GH-2752]
    • โšก๏ธ agent: Updated aws-sdk-go version (used for EC2 auto join) for Go 1.8 compatibility. [GH-2755]
    • agent: User-supplied node IDs are now normalized to lower-case. [GH-2798]
    • agent: Added checks to enforce uniqueness of agent node IDs at cluster join time and when registering with the catalog. [GH-2832]
    • ๐Ÿ‘€ cli: Standardized handling of CLI options for connecting to the Consul agent. This makes sure that the same set of flags and environment variables works in all CLI commands (see https://www.consul.io/docs/commands/index.html#environment-variables). [GH-2717]
    • โšก๏ธ cli: Updated go-cleanhttp library for better HTTP connection handling between CLI commands and the Consul agent (tunes reuse settings). [GH-2735]
    • ๐Ÿšš cli: The operator raft subcommand has had its two modes split into the list-peers and remove-peer subcommands. The old flags for these will continue to work for backwards compatibility, but will be removed in Consul 0.9.
    • ๐Ÿšš cli: Added an -id flag to the operator raft remove-peer command to allow removing a peer by ID. [GH-2847]
    • dns: Allows the .service tag to be optional in RFC 2782 lookups. [GH-2690]
    • server: Changed the internal EnsureRegistration RPC endpoint to prevent registering checks that aren't associated with the top-level node being registered. [GH-2846]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  agent: Fixed an issue with consul watch not working when http was listening on a unix socket. [GH-2385]
    • ๐Ÿ”€ agent: Fixed an issue where checks and services could not sync deregister operations back to the catalog when version 8 ACL support is enabled. [GH-2818]
    • ๐Ÿ›  agent: Fixed an issue where agents could use the ACL token registered with a service when registering checks for the same service that were registered with a different ACL token. [GH-2829]
    • cli: Fixed consul kv commands not reading the CONSUL_HTTP_TOKEN environment variable. [GH-2566]
    • cli: Fixed an issue where prefixing an address with a protocol (such as 'http://' or 'https://') in -http-addr or CONSUL_HTTP_ADDR would give an error.
    • ๐Ÿ–จ cli: Fixed an issue where error messages would get printed to stdout instead of stderr. [GH-2548]
    • ๐Ÿ›  server: Fixed an issue with version 8 ACLs where servers couldn't deregister nodes from the catalog during reconciliation. [GH-2792] This fix was generalized and applied to registering nodes as well. [GH-2826]
    • ๐Ÿ“‡ server: Fixed an issue where servers could temporarily roll back changes to a node's metadata or tagged addresses when making updates to the node's health checks. [GH-2826]
    • ๐Ÿ›  server: Fixed an issue where the service name consul was not subject to service ACL policies with version 8 ACLs enabled. [GH-2816]
  • v0.7.5 Changes

    February 15, 2017

    ๐Ÿ› BUG FIXES:

    • โšก๏ธ server: Fixed a rare but serious issue where Consul servers could panic when performing a large delete operation followed by a specific sequence of other updates to related parts of the state store (affects KV, sessions, prepared queries, and the catalog). [GH-2724]
  • v0.7.4 Changes

    February 06, 2017

    ๐Ÿ‘Œ IMPROVEMENTS:

    • agent: Integrated gopsutil library to use built in host UUID as node ID, if available, instead of a randomly generated UUID. This makes it easier for other applications on the same host to generate the same node ID without coordinating with Consul. [GH-2697]
    • agent: Added a configuration option, tls_min_version, for setting the minimum allowed TLS version used for the HTTP API and RPC. [GH-2699]
    • agent: Added a relay-factor option to keyring operations to allow nodes to relay their response through N randomly-chosen other nodes in the cluster. [GH-2704]
    • ๐Ÿ— build: Consul is now built with Go 1.7.5. [GH-2682]
    • dns: Add ability to lookup Consul agents by either their Node ID or Node Name through the node interface (e.g. DNS (node-id|node-name).node.consul). [GH-2702]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  dns: Fixed an issue where SRV lookups for services on a node registered with non-IP addresses were missing the CNAME record in the additional section of the response. [GH-2695]
  • v0.7.3 Changes

    January 26, 2017

    ๐Ÿ”‹ FEATURES:

    • KV Import/Export CLI: consul kv export and consul kv import can be used to move parts of the KV tree between disconnected consul clusters, using JSON as the intermediate representation. [GH-2633]
    • ๐Ÿ“‡ Node Metadata: Support for assigning user-defined metadata key/value pairs to nodes has been added. This can be viewed when looking up node info, and can be used to filter the results of various catalog and health endpoints. For more information, see the Catalog, Health, and Prepared Query endpoint documentation, as well as the Node Meta section of the agent configuration. [GH-2654]
    • Node Identifiers: Consul agents can now be configured with a unique identifier, or they will generate one at startup that will persist across agent restarts. This identifier is designed to represent a node across all time, even if the name or address of the node changes. Identifiers are currently only exposed in node-related endpoints, but they will be used in future versions of Consul to help manage Consul servers and the Raft quorum in a more robust manner, as the quorum is currently tracked via addresses, which can change. [GH-2661]
    • ๐Ÿ‘Œ Improved Blocking Queries: Consul's blocking query implementation was improved to provide a much more fine-grained mechanism for detecting changes. For example, in previous versions of Consul blocking to wait on a change to a specific service would result in a wake up if any service changed. Now, wake ups are scoped to the specific service being watched, if possible. This support has been added to all endpoints that support blocking queries, nothing new is required to take advantage of this feature. [GH-2671]
    • GCE auto-discovery: New -retry-join-gce configuration options added to allow bootstrapping by automatically discovering Google Cloud instances with a given tag at startup. [GH-2570]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ— build: Consul is now built with Go 1.7.4. [GH-2676]
    • cli: consul kv get now has a -base64 flag to base 64 encode the value. [GH-2631]
    • cli: consul kv put now has a -base64 flag for setting values which are base 64 encoded. [GH-2632]
    • ๐Ÿ’ป ui: Added a notice that JS is required when viewing the web UI with JS disabled. [GH-2636]

    ๐Ÿ› BUG FIXES:

    • agent: Redacted the AWS access key and secret key ID from the /v1/agent/self output so they are not disclosed. [GH-2677]
    • ๐Ÿ›  agent: Fixed a rare startup panic due to a Raft/Serf race condition. [GH-1899]
    • ๐Ÿ›  cli: Fixed a panic when an empty quoted argument was given to consul kv put. [GH-2635]
    • โœ… tests: Fixed a race condition with check mock's map usage. [GH-2578]
  • v0.7.2 Changes

    December 19, 2016

    ๐Ÿ”‹ FEATURES:

    • Keyring API: A new /v1/operator/keyring HTTP endpoint was added that allows for performing operations such as list, install, use, and remove on the encryption keys in the gossip keyring. See the Keyring Endpoint for more details. [GH-2509]
    • Monitor API: A new /v1/agent/monitor HTTP endpoint was added to allow for viewing streaming log output from the agent, similar to the consul monitor command. See the Monitor Endpoint for more details. [GH-2511]
    • Reload API: A new /v1/agent/reload HTTP endpoint was added for triggering a reload of the agent's configuration. See the Reload Endpoint for more details. [GH-2516]
    • Leave API: A new /v1/agent/leave HTTP endpoint was added for causing an agent to gracefully shutdown and leave the cluster (previously, only force-leave was present in the HTTP API). See the Leave Endpoint for more details. [GH-2516]
    • Bind Address Templates (beta): Consul agents now allow go-sockaddr/template syntax to be used for any bind address configuration (advertise_addr, bind_addr, client_addr, and others). This allows for easy creation of immutable images for Consul that can fetch their own address based on an interface name, network CIDR, address family from an actual RFC number, and many other possible schemes. This feature is in beta and we may tweak the template syntax before final release, but we encourage the community to try this and provide feedback. [GH-2563]
    • Complete ACL Coverage (beta): Consul 0.8 will feature complete ACL coverage for all of Consul. To ease the transition to the new policies, a beta version of complete ACL support was added to help with testing and migration to the new features. Please see the ACLs Internals Guide for more details. [GH-2594, GH-2592, GH-2590]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • 0๏ธโƒฃ agent: Defaults to ?pretty JSON for HTTP API requests when in -dev mode. [GH-2518]
    • โšก๏ธ agent: Updated Circonus metrics library and added new Circonus configration options for Consul for customizing check display name and tags. [GH-2555]
    • agent: Added a checksum to UDP gossip messages to guard against packet corruption. [GH-2574]
    • agent: Check whether a snapshot needs to be taken more often (every 5 seconds instead of 2 minutes) to keep the raft file smaller and to avoid doing huge truncations when writing lots of entries very quickly. [GH-2591]
    • agent: Allow gossiping to suspected/recently dead nodes. [GH-2593]
    • โฑ agent: Changed the gossip suspicion timeout to grow smoothly as the number of nodes grows. [GH-2593]
    • ๐Ÿ—„ agent: Added a deprecation notice for Atlas features to the CLI and docs. [GH-2597]
    • ๐Ÿ‘ agent: Give a better error message when the given data-dir is not a directory. [GH-2529]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿšฆ agent: Fixed a panic when SIGPIPE signal was received. [GH-2404]
    • ๐Ÿ”Š api: Added missing Raft index fields to CatalogService structure. [GH-2366]
    • api: Added missing notes field to AgentServiceCheck structure. [GH-2336]
    • api: Changed type of AgentServiceCheck.TLSSkipVerify from string to bool. [GH-2530]
    • api: Added new HealthChecks.AggregatedStatus() method that makes it easy get an overall health status from a list of checks. [GH-2544]
    • api: Changed type of KVTxnOp.Verb from string to KVOp. [GH-2531]
    • ๐Ÿ›  cli: Fixed an issue with the consul kv put command where a negative value would be interpreted as an argument to read from standard input. [GH-2526]
    • ๐Ÿ’ป ui: Fixed an issue where extra commas would be shown around service tags. [GH-2340]
    • ๐Ÿ’ป ui: Customized Bootstrap config to avoid missing font file references. [GH-2485]
    • ๐Ÿšš ui: Removed "Deregister" button as removing nodes from the catalog isn't a common operation and leads to lots of user confusion. [GH-2541]
  • v0.7.1 Changes

    November 10, 2016

    ๐Ÿ’ฅ BREAKING CHANGES:

    • ๐Ÿณ Child process reaping support has been removed, along with the reap configuration option. Reaping is also done via dumb-init in the Consul Docker image, so removing it from Consul itself simplifies the code and eases future maintainence for Consul. If you are running Consul as PID 1 in a container you will need to arrange for a wrapper process to reap child processes. [GH-1988]
    • The default for max_stale has been increased to a near-indefinite threshold (10 years) to allow DNS queries to continue to be served in the event of a long outage with no leader. A new telemetry counter has also been added at consul.dns.stale_queries to track when agents serve DNS queries that are over a certain staleness (>5 seconds). [GH-2481]
    • ๐Ÿ“ฆ The api package's PreparedQuery.Delete() method now takes WriteOptions instead of QueryOptions. [GH-2417]

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ’ป Key/Value Store Command Line Interface: New consul kv commands were added for easy access to all basic key/value store operations. [GH-2360]
    • โช Snapshot/Restore: A new /v1/snapshot HTTP endpoint and corresponding set of consul snapshot commands were added for easy point-in-time snapshots for disaster recovery. Snapshots include all state managed by Consul's Raft consensus protocol, including Key/Value Entries, Service Catalog, Prepared Queries, Sessions, and ACLs. Snapshots can be restored on the fly into a completely fresh cluster. [GH-2396]
    • AWS auto-discovery: New -retry-join-ec2 configuration options added to allow bootstrapping by automatically discovering AWS instances with a given tag key/value at startup. [GH-2459]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ”’ api: All session options can now be set when using api.Lock(). [GH-2372]
    • agent: Added the ability to bind Serf WAN and LAN to different interfaces than the general bind address. [GH-2007]
    • agent: Added a new tls_skip_verify configuration option for HTTP checks. [GH-1984]
    • ๐Ÿ— build: Consul is now built with Go 1.7.3. [GH-2281]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  agent: Fixed a Go race issue with log buffering at startup. [GH-2262]
    • ๐Ÿ”€ agent: Fixed a panic during anti-entropy sync for services and checks. [GH-2125]
    • ๐Ÿ agent: Fixed an issue on Windows where "wsarecv" errors were logged when CLI commands accessed the RPC interface. [GH-2356]
    • agent: Syslog initialization will now retry on errors for up to 60 seconds to avoid a race condition at system startup. [GH-1610]
    • ๐Ÿ›  agent: Fixed a panic when both -dev and -bootstrap-expect flags were provided. [GH-2464]
    • agent: Added a retry with backoff when a session fails to invalidate after expiring. [GH-2435]
    • ๐Ÿ›  agent: Fixed an issue where Consul would fail to start because of leftover malformed check/service state files. [GH-1221]
    • โฌ†๏ธ agent: Fixed agent crashes on macOS Sierra by upgrading Go. [GH-2407, GH-2281]
    • โš  agent: Log a warning instead of success when attempting to deregister a nonexistent service. [GH-2492]
    • ๐Ÿ›  api: Trim leading slashes from keys/prefixes when querying KV endpoints to avoid a bug with redirects in Go 1.7 (golang/go#4800). [GH-2403]
    • ๐Ÿ›  dns: Fixed external services that pointed to consul addresses (CNAME records) not resolving to A-records. [GH-1228]
    • ๐Ÿ›  dns: Fixed an issue with SRV lookups where the service address was different from the node's. [GH-832]
    • ๐Ÿ›  dns: Fixed an issue where truncated records from a recursor query were improperly reported as errors. [GH-2384]
    • ๐Ÿ›  server: Fixed the port numbers in the sample JSON inside peers.info. [GH-2391]
    • server: Squashes ACL datacenter name to lower case and checks for proper formatting at startup. [GH-2059, GH-1778, GH-2478]
    • ๐Ÿ’ป ui: Fixed an XSS issue with the display of sessions and ACLs in the web UI. [GH-2456]
  • v0.7.0 Changes

    September 14, 2016

    ๐Ÿ’ฅ BREAKING CHANGES:

    • The default behavior of leave_on_terminate and skip_leave_on_interrupt are now dependent on whether or not the agent is acting as a server or client. When Consul is started as a server the defaults for these are false and true, respectively, which means that you have to explicitly configure a server to leave the cluster. When Consul is started as a client the defaults are the opposite, which means by default, clients will leave the cluster if shutdown or interrupted. [GH-1909] [GH-2320]
    • ๐Ÿ”ง The allow_stale configuration for DNS queries to the Consul agent now defaults to true, allowing for better utilization of available Consul servers and higher throughput at the expense of weaker consistency. This is almost always an acceptable tradeoff for DNS queries, but this can be reconfigured to use the old default behavior if desired. [GH-2315]
    • Output from HTTP checks is truncated to 4k when stored on the servers, similar to script check output. [GH-1952]
    • Consul's Go API client will now send ACL tokens using HTTP headers instead of query parameters, requiring Consul 0.6.0 or later. [GH-2233]
    • โœ‚ Removed support for protocol version 1, so Consul 0.7 is no longer compatible with Consul versions prior to 0.3. [GH-2259]
    • The Raft peers information in consul info has changed format and includes information about the suffrage of a server, which will be used in future versions of Consul. [GH-2222]
    • New translate_wan_addrs behavior from [GH-2118] translates addresses in HTTP responses and could break clients that are expecting local addresses. A new X-Consul-Translate-Addresses header was added to allow clients to detect if translation is enabled for HTTP responses, and a "lan" tag was added to TaggedAddresses for clients that need the local address regardless of translation. [GH-2280]
    • โšก๏ธ The behavior of the peers.json file is different in this version of Consul. This file won't normally be present and is used only during outage recovery. Be sure to read the updated Outage Recovery Guide for details. [GH-2222]
    • ๐ŸŽ Consul's default Raft timing is now set to work more reliably on lower-performance servers, which allows small clusters to use lower cost compute at the expense of reduced performance for failed leader detection and leader elections. You will need to configure Consul to get the same performance as before. See the new Server Performance guide for more details. [GH-2303]

    ๐Ÿ”‹ FEATURES:

    • Transactional Key/Value API: A new /v1/txn API was added that allows for atomic updates to and fetches from multiple entries in the key/value store inside of an atomic transaction. This includes conditional updates based on obtaining locks, and all other key/value store operations. See the Key/Value Store Endpoint for more details. [GH-2028]
    • Native ACL Replication: Added a built-in full replication capability for ACLs. Non-ACL datacenters can now replicate the complete ACL set locally to their state store and fall back to that if there's an outage. Additionally, this provides a good way to make a backup ACL datacenter, or to migrate the ACL datacenter to a different one. See the ACL Internals Guide for more details. [GH-2237]
    • Server Connection Rebalancing: Consul agents will now periodically reconnect to available Consul servers in order to redistribute their RPC query load. Consul clients will, by default, attempt to establish a new connection every 120s to 180s unless the size of the cluster is sufficiently large. The rate at which agents begin to query new servers is proportional to the size of the Consul cluster (servers should never receive more than 64 new connections per second per Consul server as a result of rebalancing). Clusters in stable environments who use allow_stale should see a more even distribution of query load across all of their Consul servers. [GH-1743]
    • โšก๏ธ Raft Updates and Consul Operator Interface: This version of Consul upgrades to "stage one" of the v2 HashiCorp Raft library. This version offers improved handling of cluster membership changes and recovery after a loss of quorum. This version also provides a foundation for new features that will appear in future Consul versions once the remainder of the v2 library is complete. [GH-2222] Consul's default Raft timing is now set to work more reliably on lower-performance servers, which allows small clusters to use lower cost compute at the expense of reduced performance for failed leader detection and leader elections. You will need to configure Consul to get the same performance as before. See the new Server Performance guide for more details. [GH-2303] Servers will now abort bootstrapping if they detect an existing cluster with configured Raft peers. This will help prevent safe but spurious leader elections when introducing new nodes with bootstrap_expect enabled into an existing cluster. [GH-2319] Added new consul operator command, HTTP endpoint, and associated ACL to allow Consul operators to view and update the Raft configuration. This allows a stale server to be removed from the Raft peers without requiring downtime and peers.json recovery file use. See the new Consul Operator Command and the Consul Operator Endpoint for details, as well as the updated Outage Recovery Guide. [GH-2312]
    • โšก๏ธ Serf Lifeguard Updates: Implemented a new set of feedback controls for the gossip layer that help prevent degraded nodes that can't meet the soft real-time requirements from erroneously causing serfHealth flapping in other, healthy nodes. This feature tunes itself automatically and requires no configuration. [GH-2101]
    • Prepared Query Near Parameter: Prepared queries support baking in a new Near sorting parameter. This allows results to be sorted by network round trip time based on a static node, or based on the round trip time from the Consul agent where the request originated. This can be used to find a co-located service instance is one is available, with a transparent fallback to the next best alternate instance otherwise. [GH-2137]
    • Automatic Service Deregistration: Added a new deregister_critical_service_after timeout field for health checks which will cause the service associated with that check to get deregistered if the check is critical for longer than the timeout. This is useful for cleanup of health checks registered natively by applications, or in other situations where services may not always be cleanly shutdown. [GH-679]
    • ๐ŸŒ WAN Address Translation Everywhere: Extended the translate_wan_addrs config option to also translate node addresses in HTTP responses, making it easy to use this feature from non-DNS clients. [GH-2118]
    • RPC Retries: Consul will now retry RPC calls that result in "no leader" errors for up to 5 seconds. This allows agents to ride out leader elections with a delayed response vs. an error. [GH-2175]
    • ๐Ÿ‘ Circonus Telemetry Support: Added support for Circonus as a telemetry destination. [GH-2193]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • โฑ agent: Reap time for failed nodes is now configurable via new reconnect_timeout and reconnect_timeout_wan config options (use with caution). [GH-1935]
    • agent: Joins based on a DNS lookup will use TCP and attempt to join with the full list of returned addresses. [GH-2101]
    • agent: Consul will now refuse to start with a helpful message if the same UNIX socket is used for more than one listening endpoint. [GH-1910]
    • ๐Ÿ agent: Removed an obsolete warning message when Consul starts on Windows. [GH-1920]
    • 0๏ธโƒฃ agent: Defaults bind address to 127.0.0.1 when running in -dev mode. [GH-1878]
    • ๐ŸŒฒ agent: Added version information to the log when Consul starts up. [GH-1404]
    • agent: Added timing metrics for HTTP requests in the form of consul.http.<verb>.<path>. [GH-2256]
    • โšก๏ธ build: Updated all vendored dependencies. [GH-2258]
    • ๐Ÿš€ build: Consul releases are now built with Go 1.6.3. [GH-2260]
    • โฑ checks: Script checks now support an optional timeout parameter. [GH-1762]
    • ๐ŸŽ checks: HTTP health checks limit saved output to 4K to avoid performance issues. [GH-1952]
    • cli: Added a -stale mode for watchers to allow them to pull data from any Consul server, not just the leader. [GH-2045] [GH-917]
    • dns: Consul agents can now limit the number of UDP answers returned via the DNS interface. The default number of UDP answers is 3, however by adjusting the dns_config.udp_answer_limit configuration parameter, it is now possible to limit the results down to 1. This tunable provides environments where RFC3484 section 6, rule 9 is enforced with an important workaround in order to preserve the desired behavior of randomized DNS results. Most modern environments will not need to adjust this setting as this RFC was made obsolete by RFC 6724. See the agent options documentation for additional details for when this should be used. [GH-1712]
    • 0๏ธโƒฃ dns: Consul now compresses all DNS responses by default. This prevents issues when recursing records that were originally compressed, where Consul would sometimes generate an invalid, uncompressed response that was too large. [GH-2266]
    • ๐Ÿ”ง dns: Added a new recursor_timeout configuration option to set the timeout for Consul's internal DNS client that's used for recursing queries to upstream DNS servers. [GH-2321]
    • ๐Ÿ’ป dns: Added a new -dns-port command line option so this can be set without a config file. [GH-2263]
    • ๐Ÿ’ป ui: Added a new network tomography visualization to the UI. [GH-2046]

    ๐Ÿ› BUG FIXES:

    • โšก๏ธ agent: Fixed an issue where a health check's output never updates if the check status doesn't change after the Consul agent starts. [GH-1934]
    • agent: External services can now be registered with ACL tokens. [GH-1738]
    • ๐Ÿ›  agent: Fixed an issue where large events affecting many nodes could cause infinite intent rebroadcasts, leading to many log messages about intent queue overflows. [GH-1062]
    • agent: Gossip encryption keys are now validated before being made persistent in the keyring, avoiding delayed feedback at runtime. [GH-1299]
    • ๐Ÿ”€ dns: Fixed an issue where DNS requests for SRV records could be incorrectly trimmed, resulting in an ADDITIONAL section that was out of sync with the ANSWER. [GH-1931]
    • ๐Ÿ›  dns: Fixed two issues where DNS requests for SRV records on a prepared query that failed over would report the wrong domain and fail to translate addresses. [GH-2218] [GH-2220]
    • ๐Ÿ›  server: Fixed a deadlock related to sorting the list of available datacenters by round trip time. [GH-2130]
    • ๐Ÿ›  server: Fixed an issue with the state store's immutable radix tree that would prevent it from using cached modified objects during transactions, leading to extra copies and increased memory / GC pressure. [GH-2106]
    • โฌ†๏ธ server: Upgraded Bolt DB to v1.2.1 to fix an issue on Windows where Consul would sometimes fail to start due to open user-mapped sections. [GH-2203]

    OTHER CHANGES:

    • ๐Ÿ— build: Switched from Godep to govendor. [GH-2252]
  • v0.6.4 Changes

    March 16, 2016

    BACKWARDS INCOMPATIBILITIES:

    • โž• Added a new query ACL type to manage prepared query names, and stopped capturing ACL tokens by default when prepared queries are created. This won't affect existing queries and how they are executed, but this will affect how they are managed. Now management of prepared queries can be delegated within an organization. If you use prepared queries, you'll need to read the Consul 0.6.4 upgrade instructions before upgrading to this version of Consul. [GH-1748]
    • 0๏ธโƒฃ Consul's Go API client now pools connections by default, and requires you to manually opt-out of this behavior. Previously, idle connections were supported and their lifetime was managed by a finalizer, but this wasn't reliable in certain situations. If you reuse an API client object during the lifetime of your application, then there's nothing to do. If you have short-lived API client objects, you may need to configure them using the new api.DefaultNonPooledConfig() method to avoid leaking idle connections. [GH-1825]
    • โšก๏ธ Consul's Go API client's agent.UpdateTTL() function was updated in a way that will only work with Consul 0.6.4 and later. The agent.PassTTL(), agent.WarnTTL(), and agent.FailTTL() functions were not affected and will continue work with older versions of Consul. [GH-1794]

    ๐Ÿ”‹ FEATURES:

    • โž• Added new template prepared queries which allow you to define a prefix (possibly even an empty prefix) to apply prepared query features like datacenter failover to multiple services with a single query definition. This makes it easy to apply a common policy to multiple services without having to manage many prepared queries. See Prepared Query Templates for more details. [GH-1764]
    • โž• Added a new ability to translate address lookups when doing queries of nodes in remote datacenters via DNS using a new translate_wan_addrs configuration option. This allows the node to be reached within its own datacenter using its local address, and reached from other datacenters using its WAN address, which is useful in hybrid setups with mixed networks. [GH-1698]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • โž• Added a new disable_hostname configuration option to control whether Consul's runtime telemetry gets prepended with the host name. All of the telemetry configuration has also been moved to a telemetry nested structure, but the old format is currently still supported. [GH-1284]
    • Consul's Go dependencies are now vendored using Godep. [GH-1714]
    • โž• Added support for EnableTagOverride for the catalog in the Go API client. [GH-1726]
    • Consul now ships built from Go 1.6. [GH-1735]
    • โž• Added a new /v1/agent/check/update/<check id> API for updating TTL checks which makes it easier to send large check output as part of a PUT body and not a query parameter. [GH-1785].
    • โž• Added a default set of Accept headers for HTTP checks. [GH-1819]
    • โž• Added support for RHEL7/Systemd in Terraform example. [GH-1629]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿš€ Updated the internal web UI (-ui option) to latest released build, fixing an ACL-related issue and the broken settings icon. [GH-1619]
    • ๐Ÿ›  Fixed an issue where blocking KV reads could miss updates and return stale data when another key whose name is a prefix of the watched key was updated. [GH-1632]
    • ๐Ÿ›  Fixed the redirect from / to /ui when the internal web UI (-ui option) is enabled. [GH-1713]
    • โšก๏ธ Updated memberlist to pull in a fix for leaking goroutines when performing TCP fallback pings. This affected users with frequent UDP connectivity problems. [GH-1802]
    • โž• Added a fix to trim UDP DNS responses so they don't exceed 512 bytes. [GH-1813]
    • โšก๏ธ Updated go-dockerclient to fix Docker health checks with Docker 1.10. [GH-1706]
    • โœ‚ Removed fixed height display of nodes and services in UI, leading to broken displays when a node has a lot of services. [GH-2055]
  • v0.6.3 Changes

    January 15, 2016

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fixed an issue when running Consul as PID 1 in a Docker container where it could consume CPU and show spurious failures for health checks, watch handlers, and consul exec commands [GH-1592]
  • v0.6.2 Changes

    January 13, 2016

    ๐Ÿ”’ SECURITY:

    ๐Ÿš€ This is a security-only release; other than the version number and building against Go 1.5.3, there are no changes from 0.6.1.