Adam Wolfe Gordon
ae5bd0f2cc
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
James Phillips
b339b0d2fc
Adds performance tuning capability for Raft, detuned defaults, and supplemental docs.
2016-08-24 21:58:37 -07:00
James Phillips
db9a72dde1
Merge branch 'master' into f-deregister-critical
2016-08-16 12:53:21 -07:00
James Phillips
607595f99e
Cleans up based on code review feedback.
2016-08-16 12:52:30 -07:00
James Phillips
817d7e93e4
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
b4f981c837
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
9cece515c0
Adds basic ACL replication plumbing.
2016-08-03 21:24:04 -07:00
Cameron Davison
40d1c279dd
atomic write service state and checks files, fixes #1221
2016-08-03 10:34:12 -05:00
Sean Chittenden
c90fc057d4
Give log reviewers a hint as to which check is failing
2016-06-20 15:25:21 -07:00
Sean Chittenden
ff45f8c8ff
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
a4554b945c
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
cd68cd3868
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
0857e93d0b
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
0f7f07d2f5
Fixes some bad error returns in the persist service and check paths.
2016-04-26 15:03:26 -07:00
James Phillips
03b0c196e0
Merge pull request #1762 from mshean/script-timeout
...
Add Timeout field to CheckMonitor
2016-04-24 23:08:06 -07:00
Matt Shean
7e617d6086
add Timeout field to CheckMonitor
2016-04-20 11:41:30 -07:00
James Phillips
32389a9822
Makes reap time configurable for LAN and WAN.
2016-04-11 00:38:25 -07:00
Wim
508bc796a8
Allow [::] as a bind address (binds to first public IPv6 address)
2016-03-18 23:59:44 +01:00
James Phillips
79bd1fd4bb
Sets up config for more address tags down the road, renames struct members.
2016-02-07 10:37:34 -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
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
James Phillips
d22fe5ba62
Adds support for the reap lock.
2016-01-12 21:10:25 -08:00
Ryan Uber
ce4cf8a542
consul: dev mode works
2015-12-26 20:19:36 -05:00
James Phillips
23536f2b97
Adds Docker checks support to client API.
...
Also changed `DockerContainerId` to `DockerContainerID`, and updated the agent
API docs to reflect their support for Docker checks.
2015-11-18 07:40:02 -08:00
James Phillips
38daaea503
Adds a slightly more flexible mock system so we can test DNS.
2015-11-15 17:06:00 -08:00
James Phillips
c1305a08ea
Makes the version upshift code look at the correct version field.
2015-10-27 14:44:34 -07:00
Diptanu Choudhury
8af6ac8f16
Making an explicit check to test whether a check is of type Monitor
2015-10-26 19:52:32 -07:00
Diptanu Choudhury
fd6d57ccac
Not adding the docker check if we couldn't create the client
2015-10-26 16:45:12 -07:00
Diptanu Choudhury
0de0abcaec
Defaulting to Monitor check
2015-10-26 15:02:23 -07:00
Diptanu Choudhury
c4b85010fb
Implemented Docker health checks
2015-10-26 10:23:57 -07:00
James Phillips
aea2194ce3
Makes the default protocol 2 and lets 3 interoperate with 2.
2015-10-23 15:23:01 -07:00
James Phillips
9ba9a708f6
Scales coordinate sends to hit a fixed aggregate rate across the cluster.
2015-10-23 15:23:01 -07:00
James Phillips
d8b8a3719f
Simplifies the batching function and adds some comments.
2015-10-23 15:23:01 -07:00
James Phillips
f71c79c53f
Does some small cleanups based on PR feedback.
...
* Holds coordinate updates in map and gets rid of the update channel.
* Cleans up config variables a bit.
2015-10-23 15:23:01 -07:00
James Phillips
acb0dce829
Moves batching down into the state store and changes it to fail-fast.
...
* A batch of updates is done all in a single transaction.
* We no longer need to get an update to kick things, there's a periodic flush.
* If incoming updates overwhelm the configured flush rate they will be dumped with an error.
2015-10-23 15:23:01 -07:00
James Phillips
b6c31bdf2f
Flips the sense of the coordinate enable option.
2015-10-23 15:23:01 -07:00
James Phillips
edb9a119e2
Does a clean up pass on the Consul side.
2015-10-23 15:23:01 -07:00
Derek Chiang
139c9240ea
Address comments
2015-10-23 15:23:01 -07:00
Derek Chiang
840474f170
Add a test case
2015-10-23 15:23:01 -07:00
Derek Chiang
23c08aeeb4
Use IndexedCoordinate instead
2015-10-23 15:23:01 -07:00
Derek Chiang
530e73212a
Some fixes
2015-10-23 15:23:01 -07:00
Derek Chiang
b2cff43bb5
Complete logic for sending coordinates
2015-10-23 15:23:01 -07:00
Derek Chiang
66b210afcb
Some fixes
2015-10-23 15:23:01 -07:00
Derek Chiang
b5bbe2bcfa
Adding tests and stuff
2015-10-23 15:23:01 -07:00
James Phillips
263c7e3fd3
Deletes the old state store and all its accoutrements.
2015-10-15 14:59:09 -07:00
Dale Wijnand
c5168e1263
Fix a bunch of typos.
2015-09-15 13:22:08 +01:00
Ryan Uber
e129a59316
agent: thread tokens through for maintenance mode
2015-09-10 11:43:59 -07:00
Peter Fern
86edd7169c
Add TCP check type
...
Adds the ability to simply check whether a TCP socket accepts
connections to determine if it is healthy. This is a light-weight -
though less comprehensive than scripting - method of checking network
service health.
The check parameter `tcp` should be set to the `address:port`
combination for the service to be tested. Supports both IPv6 and IPv4,
in the case of a hostname that resolves to both, connections will be
attempted via both protocol versions, with the first successful
connection returning a successful check result.
Example check:
```json
{
"check": {
"id": "ssh",
"name": "SSH (TCP)",
"tcp": "example.com:22",
"interval": "10s"
}
}
```
2015-07-24 14:06:05 +10:00
Ryan Uber
715f69cce8
Merge pull request #1004 from i0rek/advertise_addrs
...
Add advertise_addrs.
2015-06-23 12:32:07 -07:00
Hans Hasselberg
4598087df3
Implement advertise_addrs for SerfLan, SerfWan and RPC.
...
Fixes #550 .
This will make it possible to configure the advertised adresses for
SerfLan, SerfWan and RPC. It will enable multiple consul clients on a
single host which is very useful in a container environment.
This option might override advertise_addr and advertise_addr_wan
depending on the configuration.
It will be configureable with advertise_addrs. Example:
{
"advertise_addrs": {
"serf_lan": "10.0.120.91:4424",
"serf_wan": "201.20.10.61:4423",
"rpc": "10.20.10.61:4424"
}
}
2015-06-23 21:23:45 +02:00
Ryan Uber
e4f937f71d
agent: use persist/load/purge convention for function names
2015-06-08 09:35:10 -07:00
Ryan Uber
bd448d27fe
agent: check state is purged if expired
2015-06-05 16:59:41 -07:00
Ryan Uber
7d8993e0f0
agent: purge check state when checks are deregistered
2015-06-05 16:57:14 -07:00
Ryan Uber
8c9facbff0
agent: testing state persistence, recovery, and expiration
2015-06-05 16:45:05 -07:00
Ryan Uber
f1eb739949
agent: first stab at persisting check state
2015-06-05 16:17:07 -07:00
Ryan Uber
7e82b3c32c
agent: refactor loadChecks/loadServices, fixes a few minor bugs
2015-06-04 14:33:30 -07:00
Armon Dadgar
430100a0c8
Merge pull request #927 from hashicorp/f-tls
...
Add new `verify_server_hostname` to mitigate possibility of MITM
2015-05-11 18:15:16 -07:00
Armon Dadgar
f797130228
Fixing merge conflict
2015-05-11 16:48:10 -07:00
Armon Dadgar
1952083354
agent: copy config into consul config
2015-05-11 15:16:13 -07:00
Ryan Uber
d0a28482ff
agent: use service ID field to determine associated health checks during deregister
2015-05-07 15:30:01 -07:00
Ryan Uber
e7b00723f4
agent: restore check status when re-registering (updating) services
2015-05-06 12:28:42 -07:00
Ryan Uber
ed067fd03c
agent: allow persisted services to be updated on disk
2015-05-05 22:36:45 -07:00
Ryan Uber
9acc42b86e
Merge pull request #891 from hashicorp/f-token
...
ACL tokens for service/check registration
2015-05-05 22:17:31 -07:00
Ryan Uber
3c577a0069
agent: use an additional parameter for passing tokens
2015-05-04 17:48:05 -07:00
Ryan Uber
67e9a04f48
agent: restore tokens for services and checks in config
2015-04-28 12:44:46 -07:00
Ryan Uber
802b4793df
agent: backwards compat for persisted services from pre-0.5.1
2015-04-28 12:18:41 -07:00
Ryan Uber
f069db21e3
agent: safer read methods for tokens
2015-04-28 11:53:53 -07:00
Ryan Uber
54b5f17629
agent: test coverage loading service/check tokens from persisted files
2015-04-27 22:46:01 -07:00
Ryan Uber
75d182296f
agent: add service/check token methods to reduce invasiveness
2015-04-27 22:01:01 -07:00
Ryan Uber
30f6f1142e
agent: persist tokens from API registrations
2015-04-27 19:01:02 -07:00
Ryan Uber
545f3db3fe
agent: initial pass threading through tokens for services/checks
2015-04-27 18:33:46 -07:00
Ryan Mills
370853d7ff
Allow specifying a status field in the agent/service/register and agent/check/register endpoints.
...
This status must be one of the valid check statuses: 'passing', 'warning', 'critical', 'unknown'.
If the status field is not present or the empty string, the default of 'critical' is used.
2015-04-12 02:00:31 +00:00
pepov
e66301ab99
Add configuration option to specify a separate address for advertising on the wan
2015-03-28 16:08:19 +01:00
Michael Fraenkel
c00c4ebaaa
Support SesionTTLMin configuration
...
- Allow setting SessionTTLMin
- Validate on the Server
2015-03-27 05:13:57 -07:00
Ryan Uber
66d89ab4df
agent: warn and purge checks which cannot be restored from agent state
2015-03-11 16:13:31 -07:00
Armon Dadgar
60f69224ea
agent: Snapshot and restore health state on reload. Fixes #693
2015-02-17 12:00:04 -08:00
Ryan Uber
60dd1a073e
agent: clarify the valid characters for dns
2015-02-09 09:59:27 -08:00
Ryan Uber
5da078f989
agent: warn on service tags with invalid chars
2015-02-09 09:30:06 -08:00
Ryan Uber
fe80d28664
agent: Warn on dns-incompatible characters during service registration. Fixes #683 .
2015-02-09 09:23:17 -08:00
arnaud briche
4d105487a8
- add Timeout field to CheckType and CheckHTTP to make http request timeout configurable by the client
2015-01-29 13:37:48 +07:00
foostan
524cb0d0c3
Validate ServiceID/CheckID when deregistering.
2015-01-27 01:06:57 +09:00
Armon Dadgar
e5e519df4b
Merge pull request #625 from hashicorp/f-maintcmd
...
New "maint" command
2015-01-22 11:56:49 -08:00
Ryan Uber
17d2443f91
command/maint: clean up
2015-01-22 11:14:28 -08:00
Ryan Uber
fa19d09390
command/maint: display active maintenance when no args are passed
2015-01-22 10:26:17 -08:00
Armon Dadgar
14d55cb40a
Merge pull request #622 from hashicorp/f-sockets
...
Unix domain sockets
2015-01-21 16:30:03 -08:00
Ryan Uber
8c1c230ce3
agent: use const for default maintenance reason strings
2015-01-21 14:53:52 -08:00
Ryan Uber
d65f4035b9
agent: support passing ?reason= for custom notes field values on maintenance checks
2015-01-21 12:21:57 -08:00
Ryan Uber
40cfd527cb
agent: fix maintenance check ID
2015-01-21 11:03:42 -08:00
Ryan Uber
27de0adf3b
agent: support multiple checks per service
2015-01-20 21:48:42 -08:00
Ryan Uber
c01277725a
agent: beginning socket user/group/mode support as discussed in #612
2015-01-20 13:44:27 -08:00
Ryan Uber
f29ea9f637
agent: maintenance logging + unique service check IDs
2015-01-16 15:38:13 -08:00
Ryan Uber
8ea9eb87ea
agent: node maintenance mode works
2015-01-16 15:38:13 -08:00
Ryan Uber
3b815cd0aa
agent: maintenance mode api's are idempotent
2015-01-16 15:37:52 -08:00
Ryan Uber
8a4a8eb023
agent: maintenance mode is persistent
2015-01-16 15:37:52 -08:00
Ryan Uber
7d4801db29
agent: test agent service maintenance mode
2015-01-16 15:37:51 -08:00
Ryan Uber
4f4eb204f6
agent: first pass at service maintenance mode
2015-01-16 15:37:51 -08:00
Ryan Uber
263614d596
agent: error if binding to existing socket file
2015-01-16 12:39:15 -08:00
Nicholas Capo
e116c03f86
command/agent: HTTP Check: Create httpClient in Start()
...
For long (>10s) interval checks the http timeout is 10s, otherwise thetimeout is the interval. This means that a check *should* return
before the next check begins.
2015-01-13 00:01:15 +00:00
Nicholas Capo
f26a79c325
command/agent: Stop HTTP checks when the check is removed
2015-01-12 22:34:39 +00:00
Nicholas Capo
f2649edcfc
command/agent: Add simple HTTP check type
...
These checks make an `HTTP GET` request every Interval to the specified URL.
The status of the service depends on the HTTP Response Code.
`200` is passing, `503` is warning and anything else is failing.
2015-01-09 16:43:24 -06:00
Ryan Uber
86bcef81b5
agent: test service and check unloading
2015-01-07 22:32:14 -08:00
Ryan Uber
770bb60af8
agent: consolidate service loading code, better logging
2015-01-07 22:01:43 -08:00
Ryan Uber
33bd157a61
agent: separate service and check loading/unloading concerns
2015-01-07 22:01:20 -08:00
Ryan Uber
dea0070a39
agent: persist service/check data using hashed service/check IDs ( fixes #573 )
2015-01-07 19:11:21 -08:00
Veres Lajos
850d5bdc32
typofixes - https://github.com/vlajos/misspell_fixer
2014-12-04 23:25:06 +00:00
Ryan Uber
9e52588cec
agent: persist CheckType with health checks
2014-11-29 12:54:37 -08:00
Ryan Uber
4f14ba6326
agent: allow config reload to modify checks/services persistence
...
This change consolidates loading services and checks from both config
and persisted state into methods on the agent. As part of this, we
introduce optional persistence when calling RemoveCheck/RemoveService.
Fixes a bug where config reloads would kill persisted services/checks.
Also fixes an edge case:
1. A service or check is registered via the HTTP API
2. A new service or check definition with the same ID is added to config
3. Config is reloaded
The desired behavior (which this implements) is:
1. All services and checks deregistered in memory
2. All services and checks in config are registered first
3. All persisted checks are restored using the same logic as the agent
start sequence, which prioritizes config over persisted, and removes
any persistence files if new config counterparts are present.
2014-11-26 12:46:42 -08:00
Ryan Uber
fe119a1bd2
agent: prefer config over persisted services/checks ( #497 )
2014-11-24 19:40:53 -08:00
Ryan Uber
1f5af52e0b
agent: pass error through when writing state files
2014-11-24 01:58:39 -08:00
Ryan Uber
ce0d27caba
agent: default restored checks to critical status
2014-11-24 01:15:18 -08:00
Ryan Uber
e3c2075a9d
agent: first pass at local service and check persistence
2014-11-24 01:10:27 -08:00
Ryan Uber
c9118b53bf
agent: fix loading keyring on agent start
2014-11-19 16:37:40 -08:00
Ryan Uber
c59107f08e
command: remove -init argument from keyring, auto-persist keyrings when using agent -encrypt
2014-11-19 16:35:13 -08:00
Ryan Uber
72fc1ceead
agent: split keyring functionality out of agent.go
2014-11-19 16:32:32 -08:00
Ryan Uber
a9f3cbd7f0
command: various cleanup
2014-11-19 16:31:06 -08:00
Ryan Uber
6609cb680b
command: use separate key files for LAN/WAN
2014-11-19 16:31:06 -08:00
Ryan Uber
ee20698199
command/keys: refactor, restrict key operations to server nodes
2014-11-19 16:31:06 -08:00
Ryan Uber
a36ab53f25
agent: move keyring initialization out of agent, add -init option to keys command
2014-11-19 16:31:06 -08:00
Ryan Uber
dfdd7c4ef7
agent: fix keyring loading when config is passed off
2014-11-19 16:31:06 -08:00
Ryan Uber
3e64ed70df
agent: clean up keyring file implementation
2014-11-19 16:31:06 -08:00
Ryan Uber
2e92e19760
agent: refactor keyring loader
2014-11-19 16:31:06 -08:00
Ryan Uber
5f04ae277e
command/keys: remove key command implemented
2014-11-19 16:30:22 -08:00
Ryan Uber
ccda799039
command/keys: use key command implemented
2014-11-19 16:30:22 -08:00
Ryan Uber
d03ed1a9ba
agent: install key command implemented
2014-11-19 16:30:22 -08:00
Ryan Uber
43a60f1424
command: basic rpc works for keys command
2014-11-19 16:30:21 -08:00
Ryan Uber
96376212ff
consul: use rpc layer only for key management functions, add rpc commands
2014-11-19 16:30:21 -08:00
Ryan Uber
208b5ae58f
command: create serf dir if it doesn't exist, document -disable-keyring arg
2014-11-19 16:30:21 -08:00
Ryan Uber
4b26566537
consul: fix json marshaling
2014-11-19 16:30:21 -08:00
Ryan Uber
8a4ed84711
consul: first pass at keyring integration
2014-11-19 16:30:20 -08:00
Ryan Uber
398179dcad
agent: pass notes field through for checks inside of service definitions. Fixes #449
2014-11-06 18:25:21 -08:00
Ryan Uber
0322bf2b7d
agent: initialize local consul service tags to fix service sync
2014-10-17 14:29:12 -07:00
Armon Dadgar
a1d2f9a3da
Merge pull request #401 from hashicorp/f-healthcheck
...
Default services to "critical" state instead of "unknown"
2014-10-15 16:50:38 -07:00
Ryan Uber
b7a75a2314
formatting
2014-10-15 14:56:15 -07:00
Ryan Uber
ec63686416
consul: kill remaining use of HealthUnknown
2014-10-15 10:14:46 -07:00
Ryan Uber
ece81c11ac
agent: re-use ConsulServiceID from consul package
2014-10-14 15:44:11 -07:00
Ryan Uber
5e66e2ae1e
agent: auto-register the consul service on server nodes
2014-10-14 15:35:00 -07:00
Armon Dadgar
4ef9040e02
agent: remove userEventEnc type
2014-08-28 10:56:30 -07:00
Armon Dadgar
69bdeb900a
agent: Adding event ingestion
2014-08-27 17:01:10 -07:00
Armon Dadgar
1ebf074e13
agent: working on user events
2014-08-27 16:49:12 -07:00
Armon Dadgar
b1cf52db01
consul: expose UserEvent from Serf
2014-08-26 18:50:03 -07:00
Armon Dadgar
ca6a8aef55
agent: Adding ACL master token
2014-08-18 15:46:20 -07:00
Armon Dadgar
ebae394863
consul: ACL setting passthrough
2014-08-18 15:46:20 -07:00
Armon Dadgar
80b86c9ee9
Rename Expect to BootstrapExpect. Fixes #223 .
2014-06-19 17:08:55 -07:00
Armon Dadgar
e54ad5d878
Fixing merge conflict
2014-06-18 15:48:46 -07:00
Armon Dadgar
93034084ce
agent: Fixing missing copy of RejoinAfterLeave flag. #110
2014-06-18 10:32:19 -07:00
Armon Dadgar
be0554778d
agent: Fix issues with re-registration. Fixes #216
2014-06-17 16:48:19 -07:00
Robert Xu
31c392813c
Add expect bootstrap '-expect=n' mode.
...
This allows for us to automatically bootstrap a cluster of nodes after
'n' number of server nodes join. All servers must have the same 'n' set, or
they will fail to join the cluster; all servers will not join the peer set
until they hit 'n' server nodes.
If the raft commit index is not empty, '-expect=n' does nothing because it
thinks you've already bootstrapped.
Signed-off-by: Robert Xu <robxu9@gmail.com>
2014-06-16 17:40:33 -04:00
Armon Dadgar
0577ec21a8
agent: Copy ServerName config
2014-06-13 11:27:44 -07:00
Armon Dadgar
b5bd20634a
consul: Gossip the build using Serf
2014-06-06 15:36:40 -07:00
Armon Dadgar
39cdecb5d0
agent: Add version to info output
2014-06-06 14:40:22 -07:00