Commit Graph

3443 Commits

Author SHA1 Message Date
Evan Gilman 71cf39b5f8 Use a map for additional node addresses 2016-02-06 23:01:45 -08:00
Evan Gilman a8fd9542dc Add tests for consul WAN translation 2016-02-06 23:01:45 -08:00
Evan Gilman 28ce1b079f Explicitly set advertise address in agent tests
Otherwise, the tests will fail when run on a machine with multiple
private addresses
2016-02-06 23:01:45 -08:00
Evan Gilman d18dc81749 Consider WAN addresses during Node and SRV record lookup 2016-02-06 23:01:45 -08:00
Evan Gilman 0b741350b9 Implement `translate_wan_addrs` config option
This knob tells consul whether it should prefer the WAN address (if set)
when making service lookups in remote datacenters. This enables
reachability for remote services which are behind a NAT.
2016-02-06 23:01:45 -08:00
Evan Gilman d123b4dece Rectify value of `AdvertiseAddrWan` when set elsewhere
`AdvertiseAddrs` has been introduced as a configuration option, which
duplicates a few other options, namely `AdvertiseAddrWan`. We need to
use this value elsewhere, so rather than doing a precedence check every
time we need to access it, rectify the value of `AdvertiseAddrWan` to
match
2016-02-06 23:01:45 -08:00
Evan Gilman e166d2a4c7 Use idiomatic name for wan_addr serf tag 2016-02-06 23:01:45 -08:00
James Phillips 1a828e3927 Store WanAddress during Service/Check sync 2016-02-06 23:01:45 -08:00
Evan Gilman fc61143b46 Store WanAddress during node registration 2016-02-06 23:01:45 -08:00
Evan Gilman 369e501dd5 Store WanAddress on Node 2016-02-06 23:01:45 -08:00
James Phillips 4f25443800 Merge pull request #1697 from hashicorp/f-doc-tweaks
Tweaks the telemetry docs.
2016-02-06 22:07:44 -08:00
James Phillips 4b3dede0fb Tweaks the telemetry docs. 2016-02-06 22:07:11 -08:00
James Phillips a599e88507 Merge pull request #1284 from nbrownus/telemetry
Option to disable hostnames from telemetry
2016-02-06 22:00:14 -08:00
Ryan Breen c684094bb7 Merge pull request #1695 from DavidWittman/exec-help-formatting
Fix formatting in exec help
2016-02-06 13:35:45 -05:00
David Wittman 0b90de4d1b Fix formatting in exec help
The description for `-node` was separated by tabs instead of spaces,
causing it to be incorrectly aligned.
2016-02-06 12:28:56 -06:00
James Phillips d034afbcec Merge pull request #1693 from hashicorp/f-doc-dos-warning
Adds a warning about DoS-ing the cluster with consul exec.
2016-02-05 17:36:27 -08:00
James Phillips 43a8eb8189 Adds a warning about DoS-ing the cluster with consul exec. 2016-02-05 17:36:19 -08:00
James Phillips 7273fb0470 Merge pull request #1654 from ryanslade/invalid-check-message
Updated invalid check error message.
2016-02-05 17:21:29 -08:00
Sean Chittenden 686e881c47 Merge pull request #1691 from hashicorp/b-gnumakefiles
Acknowledge that we're using GNU make's dialect and rename appropriate
2016-02-05 16:04:56 -08:00
Sean Chittenden c0046e0f30 Acknowledge that we're using GNU make's dialect and rename appropriate
Makefiles to GNUmakefiles so that non-GNU make(1) will error out.  This
should be a transparent change to the universe of people using GNU make.
2016-02-05 14:24:26 -08:00
Seth Vargo 8150cedbaf Order 2016-02-04 12:12:58 -05:00
Seth Vargo bd1522348b Merge pull request #1685 from jplock/patch-1
Add dropwizard-consul to the Community Tools page
2016-02-04 12:12:24 -05:00
Justin Plock 894d444449 Add dropwizard-consul to the Community Tools page 2016-02-04 12:00:06 -05:00
sean- 8bf63d6a53 Merge pull request #1678 from hashicorp/b-consul-rpc-server-nil
Use the server's address in debug logging, not the c.lastServer
2016-02-02 16:05:32 -08:00
Sean Chittenden fc82b351b8 Use the server's address in debug logging, not the c.lastServer, which may be nil 2016-02-02 15:51:28 -08:00
sean- 22539476bc Merge pull request #1676 from hashicorp/b-env-bash
Don't assume /bin/bash is installed on all OSes
2016-02-02 15:31:30 -08:00
Sean Chittenden bde685a046 Don't assume /bin/bash is installed on all OSes
Use `/usr/bin/env bash` where appropriate.
2016-02-02 15:16:49 -08:00
sean- e68477688e Merge pull request #1675 from hashicorp/d-dnsmasq-reverse-dns
Iterate on the DNS forwarding docs
2016-02-02 15:14:37 -08:00
Sean Chittenden c1c3daed9a Iterate on the DNS forwarding docs
Specifically:

* add Dnsmasq examples for reverse DNS for most of the RFC1918, 5735, and 6598 netblocks.
* Highlight some example options for dnsmasq that are probably of interest.
* Add a small section on reverse DNS testing
* Break out BINDs troubleshooting with Dnsmasq's troubleshooting

Not an exhaustive sweep, but should be helpful when introducing consul to new environments.
2016-02-02 15:06:25 -08:00
Sean Chittenden 9458fd9419 Fix misc typos 2016-02-02 11:38:28 -08:00
Sean Chittenden c08b3f3484 Add a note re: GH-1667 and redistributing client RPC requests 2016-02-02 11:38:00 -08:00
sean- 4a56b5e50e Merge pull request #1667 from hashicorp/b-redistribute-clients
Continually redistribute client RPC connections
2016-02-02 11:15:19 -08:00
Sean Chittenden 58225e0ee3 Remove unnecessary check, test was moved further up in scope 2016-02-02 11:13:58 -08:00
Sean Chittenden ff2323268c Merge branch 'master' of ssh://github.com/hashicorp/consul into b-redistribute-clients 2016-02-01 23:15:45 -08:00
Sean Chittenden db6bbb921c Chase case change in the function name now that GenerateUUID is an
exported function.
2016-02-01 23:15:19 -08:00
Sean Chittenden d74ffddc10 Cull unused function and its unit test.
Pointed out by: @slackpad
2016-02-01 23:15:19 -08:00
Sean Chittenden 5fe7bcfb5b Cull unused function and its unit test.
Pointed out by: @slackpad
2016-02-01 23:15:19 -08:00
Sean Chittenden 6452b498e1 Use panic instead of returning a sentinel UUID values in unit tests 2016-02-01 23:15:19 -08:00
sean- 2646e8f149 Merge pull request #1666 from hashicorp/f-consul-lib
Refactor various utility functions into a consul/lib package
2016-02-01 23:08:52 -08:00
Sean Chittenden e55b5b329a Chase case change in the function name now that GenerateUUID is an
exported function.
2016-02-01 22:48:59 -08:00
Sean Chittenden 71fb93c17b Cull unused function and its unit test.
Pointed out by: @slackpad
2016-02-01 22:40:19 -08:00
Sean Chittenden 1b5d8d1341 Cull unused function and its unit test.
Pointed out by: @slackpad
2016-02-01 22:26:57 -08:00
Sean Chittenden 5ac7b893cc Use panic instead of returning a sentinel UUID values in unit tests 2016-02-01 16:42:04 -08:00
Sean Chittenden ef8bbca48f Continually rebalance client connections
Introduce a low-level background connection expiration mechanism wherein connections will be recycled periodically based on the size and health of the cluster.

For the vast majority of consul users, this will mean an average connection age of 150s.  For 10K node clusters it will take ~3min for clusters to rebalance their connections.  In the pathological case for a 100K cluster where 99K clients are in the minority talking to 1x server it will take ~26min to rebalance all connections.

It's possibe for clients recovering from a parititon to become fixated on a single server until the server or agent is restarted.  This is of particular interest to long-running environments with stable agents, where `allow_stale` is true, and partitions occur periodically.
2016-01-30 17:13:50 -08:00
Sean Chittenden 8a37e76cb0 Use rand.Int31n() vs unconditionally using modulus 2016-01-30 15:47:58 -08:00
Sean Chittenden 727bb42b1d Merge branch 'f-consul-lib' of ssh://github.com/hashicorp/consul into b-redistribute-clients 2016-01-30 15:40:54 -08:00
Sean Chittenden b216d4c11f Rename clientRPCCache to clientRPCConnMaxIdle, change value
Increase the max idle time for agents talking to servers from 30s to 127s in order to allow for the reuse of connections that are being initiated by cron.

127s was chosen as the first prime above 120s (arbitrarily chose to use a prime) with the intent of reusing connections who are used by once-a-minute cron(8) jobs *and* who use a 60s jitter window (e.g. in vixie cron job execution can drift by up to 59s per job, or 119s for a once-a-minute cron job).
2016-01-30 15:27:46 -08:00
Sean Chittenden e83a5b7a70 Reuse the results from gettimeofday(2)...
Inside of a single RPC call, reuse time.Now().
2016-01-30 14:39:17 -08:00
Sean Chittenden 893f91b0d5 Always seed math/rand on consul startup
Required for jitter calcs.  This could be done in consul/agent, but this makes it clear it is done only once process-wide.
2016-01-29 17:00:08 -08:00
Sean Chittenden c470553b6b Factor out duplicate functions into a lib package
Consolidate code duplication and tests into a single lib package.  Most of these functions were from various **/util.go functions that couldn't be imported due to cyclic imports.  The consul/lib package is intended to be a terminal node in an import DAG and a place to stash various consul-only helper functions.  Pulled in hashicorp/go-uuid instead of consolidating UUID access.
2016-01-29 16:57:45 -08:00