Commit Graph

1262 Commits

Author SHA1 Message Date
Kyle Havlovitz 9c75e69f65
Add testing around EC2 discovery config 2016-11-01 18:26:15 -04:00
Kyle Havlovitz 043e6891d6
Fixed up config structure for EC2 discovery 2016-11-01 17:58:51 -04:00
Kyle Havlovitz c908121c72 Merge branch 'master' of github.com:hashicorp/consul into aws_autodiscovery 2016-11-01 11:19:52 -04:00
James Phillips 723f70ed31
Builds static assets to pick up #2456. 2016-10-31 18:20:36 -07:00
Kyle Havlovitz e1f8a41a35 Retry periodically for 60s if syslog setup fails (#2455) 2016-10-31 17:24:00 -07:00
Kyle Havlovitz 606662c502 Add snapshot inspect subcommand (#2451) 2016-10-31 19:37:27 -04:00
Kyle Havlovitz dce6702268 More flaky unit test fixes (#2449)
* More flaky unit test fixes
* Raise some test timeouts that were too low
2016-10-31 09:59:20 -07:00
Kyle Havlovitz 63534aca7e Added tests for lookups on the 'addr.consul' domain 2016-10-27 21:04:06 -07:00
Kyle Havlovitz 84c87325ae Add a service address SRV lookup test for IPv6 2016-10-27 21:04:06 -07:00
Kyle Havlovitz f7ef84812d Fix test cases 2016-10-27 21:04:06 -07:00
Kyle Havlovitz 2a26597769 Give the service address in SRV lookup when it differs from the node's 2016-10-27 21:04:06 -07:00
Kyle Havlovitz 554440ab1d Resolve Consul CNAME records on external services (#2444) 2016-10-26 19:23:51 -07:00
James Phillips c01a3871c9 Adds support for snapshots and restores. (#2396)
* Updates Raft library to get new snapshot/restore API.

* Basic backup and restore working, but need some cleanup.

* Breaks out a snapshot module and adds a SHA256 integrity check.

* Adds snapshot ACL and fills in some missing comments.

* Require a consistent read for snapshots.

* Make sure snapshot works if ACLs aren't enabled.

* Adds a bit of package documentation.

* Returns an empty response from restore to avoid EOF errors.

* Adds API client support for snapshots.

* Makes internal file names match on-disk file snapshots.

* Adds DC and token coverage for snapshot API test.

* Adds missing documentation.

* Adds a unit test for the snapshot client endpoint.

* Moves the connection pool out of the client for easier testing.

* Fixes an incidental issue in the prepared query unit test.

I realized I had two servers in bootstrap mode so this wasn't a good setup.

* Adds a half close to the TCP stream and fixes panic on error.

* Adds client and endpoint tests for snapshots.

* Moves the pool back into the snapshot RPC client.

* Adds a TLS test and fixes half-closes for TLS connections.

* Tweaks some comments.

* Adds a low-level snapshot test.

This is independent of Consul so we can pull this out into a library
later if we want to.

* Cleans up snapshot and archive and completes archive tests.

* Sends a clear error for snapshot operations in dev mode.

Snapshots require the Raft snapshots to be readable, which isn't supported
in dev mode. Send a clear error instead of a deep-down Raft one.

* Adds docs for the snapshot endpoint.

* Adds a stale mode and index feedback for snapshot saves.

This gives folks a way to extract data even if the cluster has no
leader.

* Changes the internal format of a snapshot from zip to tgz.

* Pulls in Raft fix to cancel inflight before a restore.

* Pulls in new Raft restore interface.

* Adds metadata to snapshot saves and a verify function.

* Adds basic save and restore snapshot CLI commands.

* Gets rid of tarball extensions and adds restore message.

* Fixes an incidental bad link in the KV docs.

* Adds documentation for the snapshot CLI commands.

* Scuttle any request body when a snapshot is saved.

* Fixes archive unit test error message check.

* Allows for nil output writers in snapshot RPC handlers.

* Renames hash list Decode to DecodeAndVerify.

* Closes the client connection for snapshot ops.

* Lowers timeout for restore ops.

* Updates Raft vendor to get new Restore signature and integrates with Consul.

* Bounces the leader's internal state when we do a restore.
2016-10-25 19:20:24 -07:00
Kyle Havlovitz e2d9114b34 Agent anti-entropy test fixes 2016-10-25 17:48:11 -07:00
Kyle Havlovitz 3add830b3a Test fixes (#2434)
* Test fixes in health_endpoint_test.go, agent_endpoint_test.go and rtt_test.go
* Don't reuse the same agent config in TestAgent_ReconnectConfigSettings
2016-10-25 13:46:54 -07:00
James Phillips 03ae813bc7 Merge pull request #2389 from hashicorp/jbs-2019
Lower Service tag DNS warning to DEBUG for #2019
2016-10-24 17:05:02 -07:00
James Phillips 95d418d7da
Removes reap config option. 2016-10-06 21:45:18 -07:00
Brian Shumate 74a8fbef06
Lower Service tag DNS warning to DEBUG for #2019 2016-10-05 08:45:01 -04:00
Adam Wolfe Gordon 5ac5a8ccfc agent: Stop reaping child processes (resolves #1988)
The consul docker image now uses dumb-init to reap child processes, so
there's no need to reap them ourselves.
2016-10-04 09:36:41 -06:00
Seth Vargo 1898d071ce
Fix kv put flags 2016-09-26 16:13:39 -07:00
Seth Vargo d0ac899f79
Fix up kv put help output 2016-09-26 16:11:23 -07:00
Seth Vargo f9a7be9315
Remove debugging code 2016-09-26 16:09:35 -07:00
Seth Vargo 39fb70ff67
Fix CAS operations for put 2016-09-26 16:06:56 -07:00
Seth Vargo c7496c5652
Change delete CAS behavior to require ModifyIndex 2016-09-26 16:06:55 -07:00
Seth Vargo 6cdf354270
Fix copy-paste comments 2016-09-26 16:06:54 -07:00
Seth Vargo 297a22383f
Add kv delete command 2016-09-26 16:06:53 -07:00
Seth Vargo 82bddd7f9b
Add kv put command 2016-09-26 16:06:53 -07:00
Seth Vargo c8fdc5c50d
Add kv get 2016-09-26 16:06:53 -07:00
Seth Vargo 87ad6d466c
Add kv command stubs 2016-09-26 16:06:53 -07:00
Seth Vargo 8c30edc54e
Add test function for returning an API client 2016-09-26 16:06:52 -07:00
James Phillips 5f0835fae7
Runs go-fmt (incidental to this PR). 2016-09-23 17:44:14 -07:00
James Phillips 1f5ae4827e
Makes string search for Windows case-insensitive.
Fixes #2356.
2016-09-23 17:43:40 -07:00
James Phillips 216c5c7786 Merge pull request #2353 from hashicorp/b-local-panic
Cleans up state management for remote deletes from local state.
2016-09-22 12:56:08 -07:00
James Phillips c780149b5d
Calls remove on checks and services in the local test. 2016-09-22 11:41:17 -07:00
James Phillips c8ce41f459
Cleans up state management for remote deletes from local state.
Fixes #2125.
2016-09-21 16:52:43 -07:00
James Phillips b0b05f48f3 Merge pull request #2262 from WIZARD-CXY/master
Fixes go race bug in startup log buffering.
2016-09-20 17:24:52 -07:00
Felix f0eb0ba549 return an error if no logOutput is provided
Otherwise the code will panic at a later stage where it is more complicated to figure out what’s actually going on.
2016-09-17 17:46:13 +09:00
James Phillips f686d34483 Merge pull request #2263 from sweeneyb/dnsPort
Add support for dns port as a command line option
2016-09-01 22:16:15 -07:00
James Phillips 4b2eaeda17
Does some go fmt cleanup. 2016-09-01 22:14:19 -07:00
James Phillips d19995c067 Merge pull request #2322 from hashicorp/pr-2321-slackpad
Adds a configurable timeout for DNS recursor client.
2016-09-01 22:11:54 -07:00
James Phillips fce0052a70
Adds a recursor timeout line to the merge test. 2016-09-01 21:53:33 -07:00
James Phillips da34496645
Fixes a typo in a test error message. 2016-09-01 21:52:29 -07:00
Pivotal DX129 fe61650ef0 Merge remote-tracking branch 'upstream/master' 2016-09-01 10:15:32 -04:00
James Phillips 55ef6c54a6
Changes default for `leave_on_terminate` based on server or client mode. 2016-08-31 23:39:11 -07:00
James Phillips 84e8fc5848
Removes Raft types from public API interface.
This will cause a lot of breakage because we've currently vendored a
branch of the Raft library.
2016-08-30 14:59:16 -07:00
James Phillips ed7356dd5c
Changes default DNS allow_stale to true. 2016-08-30 13:55:19 -07:00
James Phillips 3c9188c38b
Makes the Raft configuration API easier to consume. 2016-08-30 11:30:56 -07:00
James Phillips e5850d8a26
Adds new consul operator endpoint, CLI, and ACL and some basic Raft commands. 2016-08-30 00:02:50 -07:00
Pivotal DX129 f9b6cd636e Fixed code formatting 2016-08-29 17:29:23 -04:00
Pierre Delagrave db8ff0a582 Made the dns recursor timeout test more reliable 2016-08-29 13:23:14 -04:00
Pierre Delagrave d9bd41fc4d Renamed dns config parameter internal_client_timeout for recursor_timeout 2016-08-26 15:22:04 -04:00
Pierre Delagrave 3fe117c24d Merge remote-tracking branch 'pierre/master' 2016-08-26 15:12:38 -04:00
James Phillips 970bb771f9
Tweaks formatting of Consul version. 2016-08-25 17:12:55 -07:00
James Phillips d64d53a0de Merge pull request #2303 from hashicorp/f-tunes
Adds performance tuning capability for Raft, detuned defaults, and supplemental docs.
2016-08-25 15:45:49 -07:00
James Phillips 17b70c7efd
Adds a max raft multiplier and tweaks documentation. 2016-08-25 15:36:05 -07:00
James Phillips 2822334bce
Stops scaling the commit timeout. 2016-08-25 15:05:40 -07:00
James Phillips 53c73f0ee5
Redacts the Circonus API token from stats JSON. 2016-08-24 23:27:25 -07:00
James Phillips 57db4bcce6
Adds performance tuning capability for Raft, detuned defaults, and supplemental docs. 2016-08-24 21:58:37 -07:00
Pierre Delagrave c8c4b9d344 Added a configurable timeout to the client making DNS queries to downstream name servers 2016-08-23 16:59:38 -04:00
James Phillips a48463f100
Removed bad error message for health check status. 2016-08-17 17:54:09 -07:00
James Phillips defa2a6180 Merge pull request #2226 from abhinavdahiya/rm-health-unknown
Fixes #1775; Removes 'unknown' state
2016-08-17 17:51:04 -07:00
James Phillips bedd0c5a9e
Makes protocol version a little clearer. 2016-08-17 11:29:09 -07:00
James Phillips 4c7a0ed3b0
Merge branch 'master' into f-deregister-critical 2016-08-16 12:53:21 -07:00
James Phillips ba60afd5d8
Cleans up based on code review feedback. 2016-08-16 12:52:30 -07:00
James Phillips 9f7a973ace
Adds an `X-Consul-Translate-Addresses` to signal translation is enabled. 2016-08-16 11:31:41 -07:00
James Phillips fbdd021ab9
Adds an "lan" tagged address so we have a way to get them all.
If we didn't have this, then there would be no way to know the LAN
address if address translation was turned on.
2016-08-16 10:49:03 -07:00
James Phillips 4a3d7db24f
Adds ability to deregister a service based on critical check state longer than a timeout. 2016-08-16 01:00:26 -07:00
James Phillips 55e83c9e1c
Tweaks the WAN address translation unit tests. 2016-08-15 15:34:11 -07:00
James Phillips c0ff412650
Factors translate out into a separate file and makes safe for in-memory RPCs. 2016-08-15 15:05:02 -07:00
Xingyu Chen a570bf6fc2 Update gated_writer.go 2016-08-14 16:36:21 +08:00
David van Geest cdeff022dd
Translate Address to tagged WAN address in HTTP API when appropriate. 2016-08-12 18:25:36 -07:00
James Phillips 3f50b9599a
Updates built-in UI static assets to latest. 2016-08-12 18:01:59 -07:00
James Phillips 456a4934f0
Runs `go fmt`. 2016-08-12 17:26:23 -07:00
James Phillips a53c6a38e2
Tweaks DNS prepared query failover unit test. 2016-08-12 17:16:08 -07:00
Max Timchenko 3b08db47dc
Corrects two issues with DNS prepared query failover
When DNS prepared query fails over to another datacenter and the datacenter
returns some nodes, the DNS result does not translate WAN addresses even when
translation is enabled for SRV and A queries, and returns the wrong datacenter
(the one that failed over) for SRV queries.
2016-08-12 17:06:43 -07:00
James Phillips b6c1543da8 Merge pull request #2267 from hashicorp/b-srv-trim
Fixes bug when trimming DNS SRV records.
2016-08-12 14:57:20 -07:00
James Phillips 17c10d78bc
Passes the index by reference so we can control the allocation. 2016-08-12 14:51:50 -07:00
James Phillips f7fcb03004
Makes name compares case-insensitive. 2016-08-12 12:16:21 -07:00
R.B. Boyer 1c4b4ac54f
Validate gossip encryption key before made persistent in local.keyring 2016-08-12 11:42:45 -07:00
James Phillips 6332e2b367
Avoids allocations and function calls if no extra data is present. 2016-08-12 10:29:57 -07:00
James Phillips e30b99cef5
Renames "seen" to "resolved". 2016-08-11 22:01:57 -07:00
James Phillips 34d6c2d5e1
Fixes the DNS SRV trim bug. 2016-08-11 21:46:14 -07:00
James Phillips bcb0f71759
Finishes up DNS compression by adding opt-out, tests, and documentation. Fixes trim routine. 2016-08-11 16:27:08 -07:00
epipho 41db005d0b
Fix panic where r.Compress would be set before checking for errors. 2016-08-11 16:27:08 -07:00
epipho d965e90306
Compress all DNS responses to prevent them from going over the 512 byte
limit from RFC 1035
2016-08-11 16:27:08 -07:00
James Phillips db94764354 Merge pull request #2264 from hashicorp/pr-2045-slackpad
Enables stale mode for watchers.
2016-08-10 15:58:34 -07:00
James Phillips 2b65e7da05
Fixes a typo and adds stale documentation to website. 2016-08-10 15:46:28 -07:00
sweeneyb 14ec3290fa Add support for dns port as a command line option 2016-08-10 04:05:56 +00:00
chenxingyu 0d5eca9683 fix go race bug 2016-08-10 10:44:20 +08:00
James Phillips 282a4b8a3f
Updates bindata after vendor update. 2016-08-09 19:03:10 -07:00
James Phillips f73166ced9
Installs a wrapper around HTTP endpoints that generate metrics. 2016-08-09 15:41:15 -07:00
James Phillips 95930e3cb7 Merge pull request #2237 from hashicorp/f-acl-replication
Adds ACL replication.
2016-08-09 11:42:16 -07:00
James Phillips f23786cd5a
Fixes JS exception when there are no coordinates present. 2016-08-08 17:38:22 -07:00
James Phillips d29af2ddc7
Adds an ACL replication status endpoint. 2016-08-04 23:30:16 -07:00
James Phillips 18b817b575
Hides the acl_replication_token from JSON output, like in /v1/agent/self. 2016-08-03 21:24:09 -07:00
James Phillips d336bdd7b0
Adds basic ACL replication plumbing. 2016-08-03 21:24:04 -07:00
Cameron Davison d138752249
atomic write service state and checks files, fixes #1221 2016-08-03 10:34:12 -05:00
Hasyimi Bahrudin bb6bb19aad Remove redundant hardcoded environment variables
The following hardcoded environment variables are removed:

* CONSUL_RPC_ADDR
* CONSUL_HTTP_ADDR
2016-08-03 14:40:26 +08:00
Abhinav Dahiya 7c6c3b38bc Fixes #1775; Removes 'unknown' state
Signed-off-by: Abhinav Dahiya <abhinavdtu2012@gmail.com>
2016-07-30 19:33:14 +05:30
James Phillips 2de8a3f7fb Merge pull request #2207 from grange74/leave-command-args-check
add extra check for unexpected args to leave command
2016-07-23 14:52:13 -07:00
nick.grange e564282d76 add extra check for unexpected args to leave command 2016-07-24 00:36:59 +10:00
James Phillips bd5e5bf19c Adds consul info data into /v1/agent/self endpoint. 2016-07-20 15:12:26 -07:00
James Phillips 2087772297 Fixes startup version print to show the human version. 2016-07-20 08:09:05 -07:00
James Phillips e137f4dafd Adds version info back into the config.
In #2191 I accedentally broke SCADA by not populating the agent's version
information into the config structure. This adds it back, and makes the
distinction between the raw parts we send to APIs and the human form of
the version that we display.
2016-07-19 18:38:15 -07:00
James Phillips cfbe8f430e Merge pull request #2193 from hashicorp/pr-2188-slackpad
Adds Circonus support for telemetry metrics.
2016-07-19 17:15:29 -07:00
James Phillips 129db848c7 Tweaks the docs a bit. 2016-07-19 15:54:52 -07:00
James Phillips 500ea080d2 Removes top-level key support for Circonus configs.
This was a feature to help migrate to the new telemetry sub-structure,
but since this is all new we don't need it.
2016-07-19 15:46:57 -07:00
James Phillips b32731d09f Makes sure version is always displayed consistently. 2016-07-19 15:06:32 -07:00
richard.hulm e2f7e825a1 RH: Add revision (if it exists) 2016-07-19 10:04:56 +01:00
matt maier f4525d2582 fix: typo coupled, default token app to "consul", switch submit_interval/SubmitInterval to submission_interval/SubmissionInterval 2016-07-18 15:46:11 -04:00
matt maier fb76256c26 Add Circonus support for Telemetry metrics 2016-07-18 09:34:43 -04:00
richard.hulm 25eeab5e49 Add the version (from config) to the Starting Consul Agent printout 2016-07-18 10:01:16 +01:00
Evan Gilman 95126e4ddf
Merge branch 'master' into let-watches-be-stale
Attempt to let the tests pass
2016-07-13 11:20:44 -07:00
Ryan Uber 5023c4add1 Merge pull request #1847 from mssola/dc-to-datacenter
[proposal] command: deprecated the -dc flag in the agent CLI
2016-07-05 13:01:51 -07:00
Ryan Uber ab1654758f Merge pull request #2137 from hashicorp/f-pq-near
Support "near" parameter in prepared query service block
2016-07-01 12:28:48 -07:00
Ryan Uber 7fd0c3ce70 agent: parseSource still subs for _agent 2016-07-01 10:04:58 -07:00
Ryan Uber 00819e89de agent: test that DNS passes the agent data through 2016-07-01 09:46:26 -07:00
Ryan Uber 62884a22d4 consul: send agent source data as separate query source 2016-06-30 16:51:18 -07:00
Ryan Uber 104b234dde agent: always pass local agent query source, allow override 2016-06-30 12:11:48 -07:00
Ryan Uber c457ee0075 agent: fix test 2016-06-21 16:28:26 -07:00
Ryan Uber d567d6a6d8 consul: send origin node + dc when executing prepared queries 2016-06-21 15:34:26 -07:00
Ryan Uber 4c1afb1bc6 consul: use the Near field instead of PreferLocal 2016-06-21 12:39:40 -07:00
James Phillips aa1bb5a012 Merge pull request #2131 from hashicorp/b-misc-microoptimizations
Misc micro optimizations
2016-06-21 09:59:01 -07:00
Sean Chittenden 32f393b611
Pack Port to be slightly more optimal in terms of struct memory usage. 2016-06-20 15:31:17 -07:00
Sean Chittenden 112f3fd468
Give log reviewers a hint as to which check is failing 2016-06-20 15:25:21 -07:00
Sean Chittenden 56f480a633
Use stable, monotonically increasing port numbers for tests 2016-06-20 14:33:46 -07:00
Ryan Uber 865c264b9c agent: set origin during PQ execution 2016-06-20 14:24:42 -07:00
Sean Chittenden e9a2f5b40c
Chase casting types.CheckID to a string into the state_store.
It turns out the indexer can only use strings as arguments when
creating a query.  Cast `types.CheckID` to a `string` before calling
into `memdb`.

Ideally the indexer would be smart enough to do this at compile-time,
but I need to look into how to do this without reflection and the
runtime package.  For the time being statically cast `types.CheckID`
to a `string` at the call sites.
2016-06-07 16:59:02 -04:00
Sean Chittenden 63adcbd5ef
Revert "Move `structs.CheckID` to a new top-level package, `types`."
This reverts commit 2bbd52e3b44ff1b60939a8400264d534662d6d51.
2016-06-07 16:59:02 -04:00
Sean Chittenden cbb945e76a
Move `structs.CheckID` to a new top-level package, `types`.
Per discussion w/ @slackpad, move this type to its own top-level package
2016-06-07 16:59:02 -04:00
Sean Chittenden f5ab25163e
Move `structs.CheckID` to a new top-level package, `types`.
Per discussion w/ @slackpad, move this type to its own top-level package
2016-06-07 16:59:02 -04:00
Sean Chittenden ddbe64a8c8
Float a type balloon. Some strings are square pegs in round holes.
This experiment was brought about because of variable naming
confusion where name and checkIDs were interchanged.  Gave CheckID
an Qualified Type Name and chased downstream changes.
2016-06-07 16:59:02 -04:00
James Phillips 518e122053 Updates web assets to pull in RTT viz. 2016-06-07 09:32:44 -07:00
James Phillips a78b969984 Removes stale scada client and test sections that use (now) unexported fields.
Fixes #2092.
2016-06-06 19:18:31 -07:00
Jeff Mitchell ebf7ea1d75 Use upstream high-level SCADA provider 2016-06-01 18:25:39 -04:00
Nathan Zadoks c4b362d5d2 Parse ACL tokens for the catalog register/deregister endpoints
Fix #1738
2016-05-17 13:16:33 -04:00
James Phillips 0f5aabcbbd Merge pull request #2028 from hashicorp/f-atomic-kv
Adds support for atomic transactions spanning multiple KV entries.
2016-05-15 13:46:05 -07:00
Sean Chittenden 0e34cc3486
Remove completely unused structs 2016-05-15 09:14:36 -07:00
Sean Chittenden 92298e3d02
Speling police 2016-05-15 09:13:52 -07:00
James Phillips 653387637a Reduces the number of operations in a transaction to 64. 2016-05-14 21:40:46 -07:00
James Phillips 778b975e7a Adds a get-tree verb to KV transaction operations. 2016-05-13 16:57:39 -07:00
James Phillips 570d46aa5f Adds some size limiting features to transactions to help prevent abuse. 2016-05-13 13:39:01 -07:00
James Phillips a37bf9de56 Adds a read-only optimized path for transactions. 2016-05-13 00:34:05 -07:00
James Phillips 8a7428e508 Hoists KV processing helper functions up as static functions. 2016-05-12 16:10:06 -07:00
Justin Lambert 9ece75fc78 allow automatically discovering aws ec2 consul servers 2016-05-11 19:41:41 -06:00
James Phillips 4882a9fe43 De-nests the KV output structure (removes DirEnt member). 2016-05-11 13:48:03 -07:00
James Phillips 960b9d6fb6 Switches to "KV" instead of "KV" for the KV operations. 2016-05-11 10:58:27 -07:00
James Phillips 38d0f6676f Refactors TxnRequest/TxnResponse into a form that will allow non-KV ops.
This isn't needed/used yet, but it's a good hook to get in there so we
can add more atomic operations in the future. The Go API hides this detail
so that feels like a KV-specific API. The implications on the REST API are
pretty minimal.
2016-05-11 01:39:10 -07:00
James Phillips 69f58ad04a Moves txn code into a new endpoint, not specific to KV. 2016-05-10 21:58:02 -07:00
James Phillips 1fefdcb962 Terminates pretty responses with a newline. 2016-05-10 20:02:36 -07:00