Alex Dadgar
aa0d8d0d8d
Print the version and client node ID
2016-10-20 17:46:04 -07:00
Alex Dadgar
703b8423a3
Merge pull request #1816 from jippi/add-datadog-telemetry
...
Add datadog telemetry
2016-10-18 09:53:37 -07:00
Diptanu Choudhury
0f6e0d10b6
Enable serf encryption ( #1791 )
...
* Added the keygen command
* Added support for gossip encryption
* Changed the URL for keyring management
* Fixed the cli
* Added some tests
* Added tests for keyring operations
* Added a test for removal of keys
* Added some docs
* Fixed some docs
* Added general options
2016-10-17 10:48:04 -07:00
Christian Winther
3e953d725a
initial work on datadog telemetry
2016-10-15 10:49:33 +02:00
Alex Dadgar
db4e676d73
Merge pull request #1803 from hashicorp/b-vault-parse
...
Fix Vault Config parsing of booleans
2016-10-11 13:47:46 -07:00
Alex Dadgar
751aa114bf
Fix Vault parsing of booleans
2016-10-10 18:04:39 -07:00
Alex Dadgar
d0731a466f
Skip SIGPIPE
2016-10-10 15:12:56 -07:00
Michael Schurter
d8f8048d85
Merge pull request #1767 from hashicorp/f-docker-volumes-logging
...
Support Docker Volumes and Logging
2016-10-07 12:10:59 -07:00
Michael Schurter
44219cc083
Put docker volume support behind conf flag
...
Also add tests and fix bug with logging driver configuration.
2016-10-03 15:02:50 -07:00
Alex Dadgar
d2837dec44
Do not allow path to escape the alloc dir for the FS commands
2016-10-03 14:58:44 -07:00
Michael Schurter
80085ddda5
Merge pull request #1735 from hashicorp/b-bootstrap-flapping
...
Retry all servers on RPC call failure
2016-09-27 16:33:15 -07:00
Michael Schurter
a45921c402
Fix agent server set test
...
Test asserted endpoint appendend servers, but the new/desired behavior
is for the endpoint to set/overwrite servers.
2016-09-26 11:57:06 -07:00
Michael Schurter
2ab5264595
Retry all servers on RPC call failure
...
rpcproxy is refactored into serverlist which prioritizes good servers
over servers in a remote DC or who have had a failure.
Registration, heartbeating, and alloc status updating will retry faster
when new servers are discovered.
Consul discovery will be retried more quickly when no servers are
available (eg on startup or an outage).
2016-09-23 11:44:48 -07:00
Diptanu Choudhury
589356fd55
Adding a snapshot endpoint on the client ( #1730 )
2016-09-21 21:28:12 -07:00
Robert Neumayer
e57d20d825
Fix typo
...
Telementry -> Telemetry
2016-09-11 09:46:05 +02:00
Diptanu Choudhury
7367d6adb4
Removing warn msg
2016-09-04 17:22:49 -07:00
Alex Dadgar
1ce5457ac0
Vault config flags
2016-09-01 15:41:07 -07:00
Michael Schurter
cbb0b8e31e
Merge pull request #1668 from hashicorp/b-fix-consul-updates
...
Fix old services not getting removed from consul on update
2016-08-31 17:17:09 -07:00
Michael Schurter
ec96e03563
Query consul without helpers in test to be safe
2016-08-31 14:14:17 -07:00
Diptanu Choudhury
c2945c3e0d
Merge pull request #1670 from hashicorp/b-telemetry-config
...
Merging telemetry configs
2016-08-31 11:47:50 -07:00
Diptanu Choudhury
03783d2554
Added a test
2016-08-31 11:46:51 -07:00
Diptanu Choudhury
a80f67d097
Merging telemetry configs
2016-08-31 11:24:01 -07:00
Michael Schurter
aa8cbe777a
Make comment more precise
2016-08-31 10:43:55 -07:00
Michael Schurter
7f6b5f4d2a
Fix error message when querying consul fails
2016-08-31 10:42:51 -07:00
Michael Schurter
db1cf6385e
Assert syncer state is consistent with consul's state
2016-08-31 09:19:54 -07:00
Michael Schurter
f6bf81270d
Remove extra consul service tracking entirely
...
Instead just remove all associated services on shutdown.
2016-08-30 17:10:15 -07:00
Michael Schurter
27912a95d6
Fix old services not getting removed from consul on update
...
Fixes #1661
2016-08-30 16:36:42 -07:00
Alex Dadgar
4e8576516f
Increase the timeout to be greater than the RPC hold threshold
2016-08-26 11:13:20 -07:00
Diptanu Choudhury
b80147d183
Merge pull request #1645 from capone212/failing_cehcks_fix
...
issue #1636 : start CheckRunner if check exists in consul already
2016-08-24 16:27:05 -05:00
capone
ce4d236a40
Fixed CR defects
2016-08-24 01:33:44 +03:00
Alex Dadgar
1da8566322
Merge pull request #1580 from hashicorp/f-disk-usage-monitoring
...
Monitor and enforce shared allocation directory disk usage
2016-08-23 09:49:53 -07:00
capone
10cc50ad29
First attemt to fix issue #1636
2016-08-23 19:09:20 +03:00
Alex Dadgar
4bfdd40948
test fixes
2016-08-18 10:30:47 -07:00
Ivo Verberk
2a17895a83
Disk resource monitoring and enforcement
2016-08-18 07:59:03 +02:00
Alex Dadgar
4135b4ece7
Address field name feedback
2016-08-17 16:23:29 -07:00
Alex Dadgar
7d899b6c60
Pass Vault config to client
2016-08-17 16:23:29 -07:00
Alex Dadgar
eac2675faf
Add enabled field
2016-08-17 16:23:29 -07:00
Alex Dadgar
c913e4396f
Add Vault config to server
2016-08-17 16:23:29 -07:00
Alex Dadgar
0ca4a9fa4f
Change token/role names
2016-08-17 16:23:29 -07:00
Alex Dadgar
adb3ce847f
change config variable names to match vault
2016-08-17 16:23:29 -07:00
Alex Dadgar
93b5fab63b
Parse Vault Config
2016-08-17 16:23:29 -07:00
Diptanu Choudhury
578171e7cb
Merge pull request #1601 from hashicorp/b-fix-node-alloc-test
...
get a free port from the kernel
2016-08-16 17:09:03 -07:00
Diptanu Choudhury
ce8a43b848
Fixed a test
2016-08-16 16:36:15 -07:00
Diptanu Choudhury
f72ad34540
get a free port from the kernel
2016-08-16 16:05:37 -07:00
Diptanu Choudhury
4683aa3dc6
Cleaning up some code
2016-08-16 15:22:26 -07:00
Marin
69bc3a8fc8
Add support for initial check status
2016-08-16 12:05:15 -07:00
Alex Dadgar
dd6c08a827
Merge pull request #1584 from novilabs/stream-framer-order
...
duplicate check for deep equals of frame order
2016-08-15 10:30:42 -07:00
Cameron Davison
0104d6fe08
use last job eval if multiple exist, when looking for registration
2016-08-13 22:37:35 -05:00
Cameron Davison
92ac9bb84c
duplicate check for deep equals of frame order
2016-08-13 22:26:53 -05:00
Diptanu Choudhury
eff622036e
Merge pull request #1562 from dbresson/support-query-strings-in-checks
...
support query strings in checks
2016-08-12 13:06:02 -07:00
Alex Dadgar
ed23dff23c
Merge pull request #1571 from hashicorp/t-logs-tests
...
Fixing logs tests on travis
2016-08-11 19:24:46 -07:00
Alex Dadgar
768055b4cc
lock heartbeat
2016-08-11 18:37:08 -07:00
Alex Dadgar
4c77d9688f
up timeouts
2016-08-11 18:30:46 -07:00
Alex Dadgar
2d5fa80ce7
Add travis multiplier
2016-08-11 18:16:10 -07:00
David Bresson
7d0fb58f03
Add a test for query string support
2016-08-11 12:22:46 -07:00
David Bresson
c651cbbfd6
Add error handling to check registration
2016-08-11 11:49:48 -07:00
David Bresson
f47a543a4d
Add support for query strings in check paths
2016-08-11 11:27:29 -07:00
Mathias Lafeldt
4143a9059a
Fix reload of retry_join server addresses on SIGHUP
...
The current code does not update the actual config, but only the local
reference to it.
2016-08-11 16:03:21 +02:00
Kenjiro Nakayama
c3b871e90d
Return error when client failed to collect host stats
2016-08-11 09:38:28 +09:00
Diptanu Choudhury
9a75052d2c
Merge pull request #1518 from pubnub/feature/chroot-map-rebase
...
Add config field to specify chroot mapping for exec driver
2016-08-10 17:00:03 -07:00
Alex Dadgar
c203885352
consul syncer uses multi-error
2016-08-09 12:24:50 -07:00
Jay Oster
dcb34412da
Fix ConfigMerge test with chroot config
2016-08-08 18:59:18 -07:00
Jay Oster
2ae059b41d
Address review comments
...
- Simplify map length check in Linux Executor
- Added a `chroot_env` test for config parser
- Moved `ChrootEnv` field from ExecutorCommand to ExecutorContext
- Added a test for `chroot_env` functionality
2016-08-04 15:33:06 -07:00
Diptanu Choudhury
5ff750db96
Merge pull request #1501 from hashicorp/f-stats-opt-in
...
Allow operators to opt into publishing node and alloc metrics
2016-08-04 13:33:56 -07:00
Diptanu Choudhury
88d383c47f
Updated tests and comments
2016-08-04 11:29:36 -07:00
Jay Oster
7df692226a
Add config field to specify chroot mapping for exec driver
...
- Same format as used by the internal chroot mapping
- Map: source_path -> dest_path
- Example HCL:
client {
chroot_env {
"/etc" = "/etc"
"/lib" = "/lib"
"/opt/projects/foo/bin" = "/usr/bin"
}
}
2016-08-03 17:17:17 -07:00
Diptanu Choudhury
74caed0c7a
Added an endpoint for users to reconcile job summaries
2016-08-03 16:12:47 -07:00
Diptanu Choudhury
41b540fbc8
Allow operators to opt into publishing node and alloc metrics
2016-08-01 19:52:20 -07:00
Kenjiro Nakayama
224ebc0129
Add LevelFilter test
2016-07-27 13:42:24 +09:00
Diptanu Choudhury
cc37ec33cf
Renamed Job.GetJobSummary to Job.Summary
2016-07-25 17:31:40 -07:00
Diptanu Choudhury
6193529040
Fixed more tests
2016-07-25 17:31:40 -07:00
Diptanu Choudhury
50842b88c7
Fixed some bugs
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
a5bb0ca6fc
Moved the job endpoint around
2016-07-25 17:26:38 -07:00
Diptanu Choudhury
2ff2acbfc0
Added the job summary related endpoints
2016-07-25 17:26:38 -07:00
Alex Dadgar
aa0c347450
remove unused file
2016-07-25 16:24:28 -07:00
Alex Dadgar
5a5d8f4ae3
Merge pull request #1465 from 42wim/ipv6-1318
...
Fix IPv6 advertise addresses
2016-07-25 16:14:15 -07:00
Wim
c96f3ccb28
Use net.JoinHostPort
2016-07-25 23:34:08 +02:00
Diptanu Choudhury
471416ab20
Removing un-wanted dependencies
2016-07-25 14:17:52 -07:00
Wim
a04907ad91
Fix IPv6 advertise addresses
2016-07-25 22:52:18 +02:00
Alex Dadgar
b8817e4877
better flush and connection closed handling
2016-07-25 11:16:54 -07:00
Alex Dadgar
43d78b6d23
control-c works
2016-07-25 11:16:54 -07:00
Alex Dadgar
aee152ee15
small fixes
2016-07-25 11:16:54 -07:00
Alex Dadgar
6e15bdbe36
Add logs command test
2016-07-25 11:16:54 -07:00
Alex Dadgar
1f600252e7
Handle skipping indexes
2016-07-25 11:16:54 -07:00
Alex Dadgar
120e9d14ee
log tests
2016-07-25 11:16:54 -07:00
Alex Dadgar
85cc520365
Support non-following logs
2016-07-25 11:16:54 -07:00
Alex Dadgar
b55e986c9f
Read from correct offset
2016-07-25 11:16:01 -07:00
Alex Dadgar
c84964bf6e
Fix buffer reuse
2016-07-25 11:16:01 -07:00
Alex Dadgar
0327109300
tests
2016-07-25 11:16:01 -07:00
Alex Dadgar
b2df901158
initial api and command
2016-07-25 11:16:01 -07:00
Alex Dadgar
3ea95bb91c
initial log api impl
2016-07-25 11:16:01 -07:00
matt maier
7f2af04bcd
Change circonus_broker_search_tag to circonus_broker_select_tag to match option in consul
2016-07-22 15:16:14 -04:00
matt maier
02d71eb6d3
Circonus integration for telemetry metrics
2016-07-22 12:33:10 -04:00
Mathias Lafeldt
ab94704518
Fix typos in source code
2016-07-18 16:24:46 +02:00
Alex Dadgar
d37651995f
implement -n for tail
2016-07-13 13:26:09 -06:00
Alex Dadgar
661d100f2f
address comments
2016-07-12 17:01:33 -06:00
Alex Dadgar
9059fc42cb
Address more comments
2016-07-12 10:45:05 -06:00
Alex Dadgar
7dd14507ca
Tests and handle conn close behavior better
2016-07-12 10:18:48 -06:00
Alex Dadgar
e9ffadfdc6
initial comments
2016-07-11 10:58:18 -06:00
Alex Dadgar
281c1fbf39
StreamFramer tests
2016-07-10 13:57:20 -04:00
Alex Dadgar
1fe435a130
StreamFramer encapsulates the sending, heartbeating and batching behavior of frames
2016-07-10 13:57:04 -04:00
Alex Dadgar
958e0d6ca3
Only initialize watcher once, fix offsetting, implement tail non-follow
2016-07-10 13:57:04 -04:00
Alex Dadgar
e100fc4422
Set up for testing
2016-07-10 13:57:04 -04:00
Alex Dadgar
2f44a0a069
Flush and use correct buffer size
2016-07-10 13:57:04 -04:00
Alex Dadgar
51ae7ace25
initial tail impl
2016-07-10 13:57:04 -04:00
Diptanu Choudhury
48b9684b1e
Using net.JoinHostPort instead of handcrafting addrs
2016-07-08 16:45:14 -07:00
Diptanu Choudhury
b180223f4b
Allowing ports to be overriden in check definitions
2016-07-08 14:14:25 -07:00
Diptanu Choudhury
9c6ce3ff90
Merge pull request #1344 from hashicorp/b-consul-service-name
...
Fixed parsing of consul agent service names
2016-06-22 15:47:34 -07:00
Alex Dadgar
f3bc85c20f
use microsecond granularity
2016-06-22 15:20:56 -07:00
Diptanu Choudhury
69e046f63f
Fixed parsing of consul agent service names
2016-06-22 13:52:43 -07:00
Alex Dadgar
9406739ba8
remove resolving client rpc addr
2016-06-17 14:55:37 -07:00
Sean Chittenden
9e287858de
Merge pull request #1310 from hashicorp/b-logger
...
Create and pass only one `logger` object around per Agent
2016-06-17 12:16:35 -07:00
Sean Chittenden
46e2d54acf
Provide nomad.Config
with a default LogOutput
of os.StdErr
2016-06-17 06:44:10 -07:00
Sean Chittenden
9a60999100
Pass a logger arg to NewClient
and NewServer
2016-06-16 23:29:23 -07:00
Sean Chittenden
c2f96ee6ba
Remove the shutdownCh as an argument, it was already present in the receiver
2016-06-16 23:15:41 -07:00
Sean Chittenden
871a31a8ec
Teach config.ConsulConfig how to construct a consulapi TLS client.
...
Said differently, centralize the creation of consul's client config
in one place and use it everywhere.
2016-06-16 22:51:06 -07:00
Sean Chittenden
438c1e149b
Fix tests
2016-06-16 22:26:45 -07:00
Sean Chittenden
59c54e9aeb
Fix tests, don't take the address of DefaultConsulCommand()
2016-06-16 21:21:39 -07:00
Sean Chittenden
d17af396ca
Create config.DefaultConsulConfig()
2016-06-16 20:41:05 -07:00
Sean Chittenden
e58c2a2ed4
Remove client registration of RPC services, only servers have an RPC interface
2016-06-16 18:14:59 -07:00
Sean Chittenden
2a2b35d1bc
Use /v1/agent/servers
(vs /v1/agent/self
).
2016-06-16 17:40:47 -07:00
Sean Chittenden
26cc057751
Automatically register service checks for HTTP, RPC, and Serf.
2016-06-16 17:34:25 -07:00
Sean Chittenden
ec77a1869e
Test for errors
2016-06-16 14:43:46 -07:00
Sean Chittenden
af55b74114
Merge pull request #1276 from hashicorp/f-consul-server-autojoin
...
Teach Nomad servers how to fall back to Consul.
2016-06-16 14:40:45 -07:00
Diptanu Choudhury
14747848f7
Removed the stats block from client configuration
2016-06-16 21:30:29 +01:00
Sean Chittenden
b0fecbefc1
Define BootstrapExepct
as an int32
so it can be manipulated atomically.
2016-06-16 12:00:15 -07:00
Sean Chittenden
f05514335b
Teach Nomad servers how to fall back to Consul.
2016-06-15 12:40:51 -07:00
Diptanu Choudhury
201dd28743
Merge pull request #1284 from hashicorp/add-warn-message
...
Added a warn message for deprecated consul options
2016-06-15 11:33:24 +02:00
Diptanu Choudhury
fd80e6ed0f
Added a warn message for deprecated consul options
2016-06-15 02:31:57 +02:00
Alex Dadgar
aea21affdb
Document consul configuration
2016-06-14 15:21:57 -07:00
Sean Chittenden
6e22b680ce
Disambiguate auto_join
from auto_register
, rename reg to auto_advertise
.
...
Provide an option that describes the value to the user vs the
operation performed by the software. Momentarily introducing
`auto_join`
2016-06-14 12:11:38 -07:00
Sean Chittenden
10ce8f27d4
Temporarily disable various syncer checks due to the API changes made earlier today.
2016-06-13 19:52:17 -07:00
Sean Chittenden
a54b4e08f8
Drive-by comment correction
2016-06-13 18:14:50 -07:00
Alex Dadgar
4b04e503f3
address comments
2016-06-13 17:32:18 -07:00
Alex Dadgar
8bbf4a55e5
Fix IDs and domain scoping
2016-06-13 16:30:58 -07:00
Diptanu Choudhury
2e10458367
Removing unwated line of code
2016-06-13 15:37:55 +02:00
Diptanu Choudhury
d019d8ef8e
implemented reconciliation of unwanted services
2016-06-13 14:52:26 +02:00
Alex Dadgar
753d50f3d4
agent just calls run
2016-06-12 22:30:52 -07:00
Alex Dadgar
232654cdee
register checks
2016-06-12 21:28:56 -07:00
Alex Dadgar
a82c2bb058
Do not reconcile in client and cleanup executor a bit
2016-06-12 18:22:07 -07:00
Alex Dadgar
e4506ea333
fix test
2016-06-12 16:48:55 -07:00
Alex Dadgar
c68d23b7d6
Merge pull request #1264 from hashicorp/b-rename-services
...
Rename ConsulService back to Service
2016-06-12 16:44:49 -07:00
Diptanu Choudhury
751b2e1bcb
Remove initial delay of registering services with consul
2016-06-13 01:42:56 +02:00
Alex Dadgar
8e231fa382
Rename ConsulService back to Service
2016-06-12 16:36:49 -07:00
Alex Dadgar
fdda90229f
only support latest and remove ring buffer
2016-06-12 09:32:38 -07:00
Alex Dadgar
e952540f6f
Allocation resources returned in a struct
2016-06-11 21:04:10 -07:00
Sean Chittenden
2f036231e5
Merge pull request #1201 from hashicorp/f-dyn-server-list
...
Dynamic Server Lists/Client Bootstrapping via consul.
2016-06-11 18:58:25 -04:00
Sean Chittenden
917766a3df
Prefer %+q
over %q
in log messages.
2016-06-11 18:17:20 -04:00
Alex Dadgar
5797534d16
Don't require slash for node stats
2016-06-11 13:15:57 -07:00
Sean Chittenden
bbd8dfa798
goling(1) compliance pass (e.g. Rpc* -> RPC)
2016-06-10 23:38:28 -04:00
Sean Chittenden
bc771d35df
Query for the Nomad service across multiple Consul datacenters.
2016-06-10 23:05:14 -04:00
Sean Chittenden
d99467ef5e
Always create a consul.Syncer. Use a default Consul Config if necessary.
2016-06-10 15:55:27 -04:00
Sean Chittenden
f6a0459ae5
Always create a consul.Syncer. Use a default Consul Config if necessary.
2016-06-10 15:55:27 -04:00
Sean Chittenden
e69232dd73
Commit miss, bump to 5s
2016-06-10 15:54:39 -04:00
Sean Chittenden
26b1e826d7
golint(1) police
2016-06-10 15:54:39 -04:00
Sean Chittenden
c92306f020
Stash client and server registration behind consul.auto_register
2016-06-10 15:54:39 -04:00
Sean Chittenden
68aebff84d
Only return the Client's server addresses, never mix-in server peers
2016-06-10 15:54:39 -04:00
Sean Chittenden
447fe59fd2
Hand wave over the syncer tests atm, these will be fixed shortly.
2016-06-10 15:54:39 -04:00
Sean Chittenden
fa7285cb5b
Don't spam the consul if Consul is not available.
...
Log once when Consul goes away, and log when Consul comes back.
2016-06-10 15:54:39 -04:00
Sean Chittenden
a1a0c313de
Skip nil check for agent's consulSyncer is always not nil
2016-06-10 15:54:39 -04:00
Sean Chittenden
a2109af862
Properly cover Syncer attributes with the registryLock.
...
trackedServices, delegateChecks, trackedChecks, and checkRunners
should all be covered. This lock needs to be reasonably narrow and
can't use defer due to possible recursive locking concerns further
downstream from the call sites.
2016-06-10 15:54:39 -04:00
Sean Chittenden
f9b561b52f
On Syncer Shutdown, remove all services that match a Syncer's prefix.
2016-06-10 15:54:39 -04:00
Sean Chittenden
57e084e4df
Sync checks with Consul by comparing the AgentCheckReg w/ ConsulService
...
The source of truth is the local Nomad Agent. Any checks are not local that
have a matching prefix are removed. Changed checks are re-registered
and missing checks are re-added.
2016-06-10 15:54:39 -04:00
Sean Chittenden
197feae679
Sync services with Consul by comparing the AgentServiceReg w/ ConsulService
...
The source of truth is the local Nomad Agent. Any services not local that
have a matching prefix are removed. Changed services are re-registered
and missing services are re-added.
2016-06-10 15:54:39 -04:00
Sean Chittenden
9a223936bb
Generate and sync Consul ServiceIDs consistently
2016-06-10 15:54:39 -04:00
Sean Chittenden
bcad11cc2a
Rename runChecks to consulAvailable
...
Apologies in advance for the variable thrash, the fingerprinter is
no longer used to gate whether or not Consul is available any more.
2016-06-10 15:54:39 -04:00
Sean Chittenden
efe00d2ccd
Update Syncer.Run() to call SyncServices().
2016-06-10 15:54:39 -04:00
Sean Chittenden
83775c5c8b
Add "Service Groups" to the Syncer.
...
Now the right way to register services with the Syncer is to call
`SetServices(groupName, []*services)`. This was required to allow
the Syncer to sync either the Client, Server, or Both using a
single Syncer.
2016-06-10 15:54:39 -04:00
Sean Chittenden
c54539b860
Initialize Consul for the Nomad Agent in a more uniform way.
...
Decompose Client and Server registration into `setupClient()` and
`setupServer()`, respectively.
2016-06-10 15:54:39 -04:00
Sean Chittenden
06e5e615a8
Rename command/agent/consul/sync.go to syncer.go
2016-06-10 15:54:39 -04:00
Sean Chittenden
d307ca2c28
Begin leveraging the Agent-level consul.Syncer
2016-06-10 15:54:39 -04:00
Sean Chittenden
7956eb0c80
Rename structs.Task's Service
attribute to ConsulService
2016-06-10 15:54:39 -04:00
Sean Chittenden
05a2b9528c
Remove Syncer.registerService()
...
This call is obsolete by a future commit that changes the canonical
source of truth to be consul.AgentServiceRegistration structs, which
means it is not necessary to construct AgentServiceRegistration
objects every time a registration is made, we just reuse the existing
object.
2016-06-10 15:54:39 -04:00
Sean Chittenden
8c813630e6
Move package client/consul/sync to command/agent/consul.
...
This has been done to allow the Server and Client to reuse the same
Syncer because the Agent may be running Client, Server, or both
simultaneously and we only want one Syncer object alive in the agent.
2016-06-10 15:54:39 -04:00
Sean Chittenden
6b126ce488
Change the API signature of Syncer.SyncServices().
...
SyncServices() immediately attempts to sync whatever information
the process has with Consul. Previously this method would take an
argument of the exclusive list of services that should exist,
however this is not condusive to having a Nomad Client and Nomad
Server share the same consul.Syncer.
2016-06-10 15:54:39 -04:00
Sean Chittenden
e24de53ead
Refine Nomad's Consul port
handling.
...
Previously this would immediately default to '127.0.0.1' if the
config was set to `:some-port-number`. Now it uses the BindAddr
if available. Also, if the `port` option is set to just a port`
number (e.g. '1234'), attempt to parse the port number by itself
to allow statically configured ports to work, even when no host is
specified.
2016-06-10 15:54:39 -04:00
Sean Chittenden
555f4fe135
Change client/consul.NewSyncer() to accept a shutdown channel
...
In addition to the API changing, consul.Syncer can now be signaled
to shutdown via the Shutdown() method, which will call the Run()'ing
sync task to exit gracefully.
2016-06-10 15:54:39 -04:00
Sean Chittenden
e2a561204a
Fix typo in comment
2016-06-10 15:50:11 -04:00
Sean Chittenden
b199743b8a
Add some trace-level logging for /v1/agent/servers when writing
...
This endpoint shouldn't be hit often, but this could be useful in
logs down the road.
2016-06-10 15:50:11 -04:00
Sean Chittenden
07fa89d2a5
Fix config_parse_test to reflect that consul.addr
does not exist.
...
`consul.address` does, but not `consul.addr`.
2016-06-10 15:50:11 -04:00
Sean Chittenden
7fe1944bc5
Fix tests for client.TestAgent_ServerConfig
...
Add similar logic in Agent `serverConfig()` to set up the
`serverSerfAddr` the same as `serverHttpAddr` and `serverRpcAddr`.
2016-06-10 15:50:11 -04:00
Sean Chittenden
39fb0f2469
Change the endpoint for /v1/agent/servers
and fix tests.
...
When an agent is running a server, the list of servers includes the
Raft peers. When the agent is running a client (which is always the
case?), include a list of the servers found in the Client's RpcProxy.
Dedupe and provide a unique list back to the caller.
2016-06-10 15:50:11 -04:00
Sean Chittenden
cb80e93a6b
Move client.DefaultConfig() to client/config.DefaultConfig()
...
Resolves an import cycle in testing and is more appropriate because
the default should reside next to its struct definition.
2016-06-10 15:50:11 -04:00
Sean Chittenden
b3fd455b1f
Register the serf service with the Nomad server service.
...
This will be unused in this PR.
2016-06-10 15:50:11 -04:00
Sean Chittenden
82d537fbd9
Update the nomad_server_service
default from nomad-server
to just nomad
.
2016-06-10 15:50:11 -04:00
Sean Chittenden
7c3838373b
Create a weak decoder to parse time.Duration.
...
Hat tip to Alex for pointing this out (vs patching mapstructure)
2016-06-10 15:50:11 -04:00
Sean Chittenden
6cd01d7567
Nuke a.consulConfig in favor of a.consul.Config
2016-06-10 15:50:11 -04:00
Sean Chittenden
1fe979a5e4
Remove types.ShutdownChannel and replace with chan struct{}
2016-06-10 15:50:11 -04:00
Sean Chittenden
9fb0104def
Teach Client to reuse an Agent's consulSyncer.
...
"There can be only one."
2016-06-10 15:50:11 -04:00
Sean Chittenden
47891fb559
Register two services each for clients and servers, http and rpc.
...
In order to give clients a fighting chance to talk to the right port,
differentiate RPC services from HTTP services by registering two
services with different tags. This yields
`rpc.nomad-server.service.consul` and
`http.nomad-server.service.consul` which is immensely more useful to
clients attempting to bootstrap their world.
2016-06-10 15:50:11 -04:00
Sean Chittenden
ac7881226c
Advertise the server's RPC endpoint, not its HTTP endpoint.
...
Rename c.serverRpcAddr to serverRpcAddr. This will be broken out
into in additional set of services in a subsequent commit.
2016-06-10 15:50:11 -04:00
Sean Chittenden
410d85cc78
Rename the package from client/rpc_proxy
to client/rpcproxy
...
Also rename `NewRpcProxy()` to just `New()` to avoid package stutter.
2016-06-10 15:50:11 -04:00
Sean Chittenden
10d1b6ba9b
Reduce all forms of ConsulConfig down to a single struct
...
nomad/structs/config/consul.go's ConsulConfig is the canonical definition
for all things Consul now.
2016-06-10 15:50:11 -04:00
Sean Chittenden
520fcb99de
Rename consulConfig to consulAgentConfig
2016-06-10 15:50:11 -04:00
Sean Chittenden
e6c78274c8
Rename client/config/config's ConsulConfig to ConsulAgentConfig
...
A follow up commit to the previous rename. More to come.
2016-06-10 15:50:11 -04:00
Sean Chittenden
e727fd8c3c
Centralize the creation of a consul/api.Config struct.
...
While documented, the consul.timeout parameter wasn't ever set
except one-off in the Consul fingerprinter.
2016-06-10 15:50:11 -04:00
Sean Chittenden
f695d6d70d
Reconcile consul's address configuration section.
...
There were conflicting directives previously, both consul.addr and
consul.address were required to achieve the desired behavior. The
documentation said `consul.address` was the canonical name for the
parameter, so consolidate configuration parameters to `consul.address`.
2016-06-10 15:50:11 -04:00
Sean Chittenden
bd779c3719
Reconcile renamed structures during rebase
2016-06-10 15:50:11 -04:00
Sean Chittenden
882364f4d9
An Agent's consulSyncer is always not nil now.
2016-06-10 15:50:11 -04:00
Sean Chittenden
98cea9ba07
Revise Agent.syncAgentServicesWithConsul()'s interface
...
Reduce down to its lowest common helper function denominator.
2016-06-10 15:50:11 -04:00