Alex Dadgar
9a576bafd1
Use a detected struct to hold deployment status for an allocation
2017-05-11 11:09:29 -07:00
Alex Dadgar
71788faacd
Easy feedback fixes
2017-05-10 15:26:00 -07:00
Alex Dadgar
3a53bdb669
API defaults use structs default
2017-05-10 13:51:52 -07:00
Alex Dadgar
50eec3ef35
handle upgrading old update block syntax
2017-05-10 13:48:53 -07:00
Alex Dadgar
6232b66ea7
Thread through warnings about deprecations
2017-05-09 20:52:47 -07:00
Alex Dadgar
ba70cc4f01
Merge branch 'master' into f-bolt-db
2017-05-09 11:11:55 -07:00
Alex Dadgar
10b040aea3
New update block; still need to handle the upgrade path
2017-05-08 17:44:26 -07:00
Michael Schurter
85210eb92f
Update consul/api to support unix socket addrs
...
Fixes #2594
2017-05-08 11:57:04 -07:00
Alex Dadgar
7078d563cb
Create Deployments through plan application
2017-05-05 15:33:19 -07:00
Alex Dadgar
343ff03f02
Deployment struct, state store, fsm persist/restore
2017-05-04 13:37:18 -07:00
Alex Dadgar
e65dca8746
Structs
2017-05-04 13:37:17 -07:00
Michael Schurter
b6e97d8523
Merge pull request #2587 from weargoggles/patch-1
...
Verification options for TLS
2017-05-02 10:36:41 -07:00
Alex Dadgar
bddedd7aba
Don't deepcopy job when retrieving copy of Alloc
...
This PR removes deepcopying of the job attached to the allocation in the
alloc runner. This operation is called very often so removing reflect
from the code path and the potentially large number of mallocs need to
create a job reduced memory and cpu pressure.
2017-05-01 14:50:34 -07:00
Alex Dadgar
b67c40f717
Proper denormalization in optimistic state store
2017-05-01 14:49:57 -07:00
Alex Dadgar
aed852782f
Merge pull request #2592 from hashicorp/b-gc-race
...
Protect against nil job in new allocation
2017-05-01 13:54:43 -07:00
Pete Wildsmith
1b8a1614ca
reduce to one configuration option
...
There should be just one option, verify_https_client, which
controls incoming and outgoing validation for the HTTPS wrapper
2017-04-28 10:45:09 +01:00
Alex Dadgar
490601f9d6
Swap validation checks
2017-04-27 10:51:28 -07:00
Alex Dadgar
efa91c3d89
Protect against nil job in new allocation
2017-04-26 18:27:27 -07:00
Michael Schurter
cafefa049b
Properly interpolate services on updated tasks
...
Previously was interpolating the original task's services again.
Fixes #2180
Also fixes a slight memory leak in the new consul agent. Script check
handles weren't being deleted after cancellation.
2017-04-26 11:22:01 -07:00
Pete Wildsmith
c948d2ee27
apply gofmt
2017-04-26 18:58:19 +01:00
Pete Wildsmith
56b122c501
Add verification options to TLS config struct
2017-04-25 23:29:43 +01:00
Alex Dadgar
367f4b592f
docs
2017-04-20 11:14:06 -07:00
Alex Dadgar
321e01988a
Don't allow revert to current version
2017-04-20 11:14:06 -07:00
Alex Dadgar
1b97c9abdd
Revert server endpoint
2017-04-20 11:14:06 -07:00
Alex Dadgar
ac5d65704f
Structs
2017-04-20 11:14:06 -07:00
Michael Schurter
5c621980da
Fix diff test + bonus upgrade to subtests
2017-04-19 12:42:48 -07:00
Michael Schurter
947e31e9c2
Only register HTTPS agent check when Consul>=0.7.2
...
Support for TLSSkipVerify in other checks coming soon!
2017-04-19 12:42:48 -07:00
Michael Schurter
33318501b6
Backoff on Consul lookup failures
2017-04-19 12:42:47 -07:00
Michael Schurter
e204a287ed
Refactor Consul Syncer into new ServiceClient
...
Fixes #2478 #2474 #1995 #2294
The new client only handles agent and task service advertisement. Server
discovery is mostly unchanged.
The Nomad client agent now handles all Consul operations instead of the
executor handling task related operations. When upgrading from an
earlier version of Nomad existing executors will be told to deregister
from Consul so that the Nomad agent can re-register the task's services
and checks.
Drivers - other than qemu - now support an Exec method for executing
abritrary commands in a task's environment. This is used to implement
script checks.
Interfaces are used extensively to avoid interacting with Consul in
tests that don't assert any Consul related behavior.
2017-04-19 12:42:47 -07:00
Alex Dadgar
5a2449d236
Respond to review comments
2017-04-19 10:54:03 -07:00
Alex Dadgar
1769fe468a
Fix some tests
2017-04-17 19:39:20 -07:00
Alex Dadgar
e7b128271f
Diff code fixes
2017-04-16 16:54:40 -07:00
Alex Dadgar
7b3f3f80fb
Status shows type of job
2017-04-15 17:08:05 -07:00
Alex Dadgar
34332af70e
GC and some fixes
2017-04-15 17:08:05 -07:00
Alex Dadgar
3145086a42
non-purge deregisters
2017-04-15 17:08:05 -07:00
Alex Dadgar
7abcdff7fd
GetJobVersions server endpoint
2017-04-15 17:08:05 -07:00
Alex Dadgar
fda44689b7
Histories -> Versions
2017-04-15 17:08:05 -07:00
Alex Dadgar
f97664512b
Upsert Job Histories
2017-04-15 17:08:05 -07:00
Alex Dadgar
d489ed3c7d
Job History schema
2017-04-15 17:08:05 -07:00
Alex Dadgar
a331a234d4
NewEvalBroker comment
2017-04-14 15:26:54 -07:00
Alex Dadgar
a9c8b09da8
Push to configs
2017-04-14 15:24:55 -07:00
Alex Dadgar
8aec604e3f
Easy feedback fixes
2017-04-14 13:19:14 -07:00
Alex Dadgar
df7d59051f
Reaping failed evaluations creates follow up eval
...
Create a follow up evaluation when reaping failed evaluations. This
ensures that a job will still make eventual progress.
2017-04-12 14:47:59 -07:00
Alex Dadgar
ef875f6dda
Delay Nack re-enqueue
...
Add a delay when an evaluation is nacked that starts off small but
compounds to a larger delay for subsequent Nacks. This creates some
back pressure.
2017-04-12 13:41:40 -07:00
Alex Dadgar
c261fe324e
Fix a panic during plan evaluation
...
This PR fixes a potential source of a panic while evaluating a plan with
all_at_once set to true with partial failures.
Fixes #2531
2017-04-10 14:56:21 -07:00
Michael Schurter
a81c387adf
Require TLS for server RPC when enabled
...
Fixes #2525
We used to be checking a RequireTLS field that was never set. Instead we
can just check the TLSConfig.EnableRPC field and require TLS if it's
enabled.
Added a few unfortunately slow integration tests to assert the intended
behavior of misconfigured RPC TLS.
Also disable a lot of noisy test logging when -v isn't specified.
2017-04-06 09:34:36 -07:00
Alex Dadgar
81b78f77e1
Track task start/finish time & improve logs errors
...
This PR adds tracking to when a task starts and finishes and the logs
API takes advantage of this and returns better errors when asking for
logs that do not exist.
2017-03-31 16:14:11 -07:00
Alex Dadgar
54a4d01bf6
Fix error checking
2017-03-29 13:59:43 -07:00
Michael Schurter
ae3810052d
Merge pull request #2482 from hashicorp/f-2289-better-artifact-err
...
Improve artifact download error message
2017-03-28 12:48:22 -07:00
Michael Schurter
2d07b75308
Recoverable struct field must be exported
2017-03-28 12:18:57 -07:00
Alex Dadgar
7bcf40bf65
Merge pull request #2489 from hashicorp/b-immediate-periodic
...
Fix dispatch of periodic job
2017-03-28 11:13:50 -07:00
Alex Dadgar
103e8d21fb
Fix dispatch of periodic job
...
This PR fixes an issue in which when a periodic and parameterized job
was dispatched, an allocation would be immediately created.
Fixes https://github.com/hashicorp/nomad/issues/2470
2017-03-27 16:55:17 -07:00
Michael Schurter
507862ade3
Add WrapRecoverable helper
2017-03-27 15:37:15 -07:00
Alex Dadgar
787be30f13
Fix periodic job state
...
This PR fixes an issue in which a periodic job would incorrectly
transistion to status dead.
Fixes https://github.com/hashicorp/nomad/issues/2268
2017-03-27 10:35:36 -07:00
Michael Schurter
0e6c564406
Improve artifact download error message
...
Fixes #2289
Unfortunately took more RecoverableError hijinx than I would have liked.
There might be a better way.
2017-03-24 15:26:05 -07:00
Alex Dadgar
3b323603b5
Fix diff alignment and remove no change DC
...
Old Output:
```
+/- Job: "example"
Datacenters {
Datacenters: "dc1"
}
+/- Task Group: "cache" (1 create/destroy update)
+/- RestartPolicy {
+/- Attempts: "10" => "9"
Delay: "25000000000"
Interval: "300000000000"
Mode: "delay"
}
+/- EphemeralDisk {
Migrate: "false"
+/- SizeMB: "300" => "301"
Sticky: "false"
}
+/- Task: "redis" (forces create/destroy update)
+ Meta[key]: "value"
+/- Config {
image: "redis:3.2"
+/- port_map[0][db]: "6379" => "6380"
}
+/- Resources {
CPU: "500"
DiskMB: "0"
IOPS: "0"
+/- MemoryMB: "256" => "257"
}
+/- Service {
Name: "global-redis-check"
PortLabel: "db"
+/- Check {
Command: ""
InitialStatus: ""
Interval: "10000000000"
Name: "alive"
Path: ""
PortLabel: ""
Protocol: ""
+/- Timeout: "2000000000" => "3000000000"
Type: "tcp"
}
}
```
New Output:
```
+/- Job: "example"
+/- Task Group: "cache" (1 create/destroy update)
+/- RestartPolicy {
+/- Attempts: "10" => "9"
Delay: "25000000000"
Interval: "300000000000"
Mode: "delay"
}
+/- EphemeralDisk {
Migrate: "false"
+/- SizeMB: "300" => "301"
Sticky: "false"
}
+/- Task: "redis" (forces create/destroy update)
+ Meta[key]: "value"
+/- Config {
image: "redis:3.2"
+/- port_map[0][db]: "6379" => "6380"
}
+/- Resources {
CPU: "500"
DiskMB: "0"
IOPS: "0"
+/- MemoryMB: "256" => "257"
}
+/- Service {
Name: "global-redis-check"
PortLabel: "db"
+/- Check {
Command: ""
InitialStatus: ""
Interval: "10000000000"
Name: "alive"
Path: ""
PortLabel: ""
Protocol: ""
+/- Timeout: "2000000000" => "3000000000"
Type: "tcp"
}
}
```
2017-03-21 11:42:10 -07:00
Alex Dadgar
df9ce2680b
Fix output alignment and remove no-change DC
...
Old Output:
```
+/- Job: "example"
Datacenters {
Datacenters: "dc1"
}
+/- Task Group: "cache" (1 create/destroy update)
+/- RestartPolicy {
+/- Attempts: "10" => "9"
Delay: "25000000000"
Interval: "300000000000"
Mode: "delay"
}
+/- EphemeralDisk {
Migrate: "false"
+/- SizeMB: "300" => "301"
Sticky: "false"
}
+/- Task: "redis" (forces create/destroy update)
+ Meta[key]: "value"
+/- Config {
image: "redis:3.2"
+/- port_map[0][db]: "6379" => "6380"
}
+/- Resources {
CPU: "500"
DiskMB: "0"
IOPS: "0"
+/- MemoryMB: "256" => "257"
}
+/- Service {
Name: "global-redis-check"
PortLabel: "db"
+/- Check {
Command: ""
InitialStatus: ""
Interval: "10000000000"
Name: "alive"
Path: ""
PortLabel: ""
Protocol: ""
+/- Timeout: "2000000000" => "3000000000"
Type: "tcp"
}
}
```
New Output:
```
+/- Job: "example"
+/- Task Group: "cache" (1 create/destroy update)
+/- RestartPolicy {
+/- Attempts: "10" => "9"
Delay: "25000000000"
Interval: "300000000000"
Mode: "delay"
}
+/- EphemeralDisk {
Migrate: "false"
+/- SizeMB: "300" => "301"
Sticky: "false"
}
+/- Task: "redis" (forces create/destroy update)
+ Meta[key]: "value"
+/- Config {
image: "redis:3.2"
+/- port_map[0][db]: "6379" => "6380"
}
+/- Resources {
CPU: "500"
DiskMB: "0"
IOPS: "0"
+/- MemoryMB: "256" => "257"
}
+/- Service {
Name: "global-redis-check"
PortLabel: "db"
+/- Check {
Command: ""
InitialStatus: ""
Interval: "10000000000"
Name: "alive"
Path: ""
PortLabel: ""
Protocol: ""
+/- Timeout: "2000000000" => "3000000000"
Type: "tcp"
}
}
```
2017-03-21 11:31:06 -07:00
Alex Dadgar
5588fd6c04
Merge pull request #2432 from hashicorp/b-batch-gc
...
Eval GC will collect allocs from stopped batch job
2017-03-13 10:06:55 -07:00
Alex Dadgar
56ac0970b4
validation errors
2017-03-11 16:23:24 -08:00
Alex Dadgar
3825f7cf1f
Eval GC will collect allocs from stopped batch job
...
This PR fixes a bug in which allocations from stopped batch jobs could
not be garbage collected.
2017-03-11 15:48:57 -08:00
Alex Dadgar
33263ca085
Merge pull request #2418 from hashicorp/f-distinct-property
...
`distinct_property` constraint
2017-03-09 22:15:52 -08:00
Alex Dadgar
9011a7984c
Add metrics to show allocations on the client
...
This PR adds the following metrics to the client:
client.allocations.migrating
client.allocations.blocked
client.allocations.pending
client.allocations.running
client.allocations.terminal
Also adds some missing fields to the API version of the evaluation.
2017-03-09 12:37:41 -08:00
Ben Barnard
abefe537ba
Correct error message re length of service name
...
The error message had an off-by-one error :)
2017-03-08 15:12:30 +01:00
Alex Dadgar
d83a8fe9f2
Unoptimized implementation + testing
2017-03-07 14:48:54 -08:00
Alex Dadgar
c1d4927088
Debug lines
2017-03-06 10:25:26 -08:00
Alex Dadgar
634cb3365f
Remove dead code
2017-03-03 18:27:49 -08:00
Alex Dadgar
3b9bdfef1c
Make validate work without a Nomad agent
2017-03-03 15:02:03 -08:00
Alex Dadgar
c58494fdb6
Handle periodic paramaterized jobs
...
Fixes https://github.com/hashicorp/nomad/issues/2382
2017-03-01 11:45:20 -08:00
Alex Dadgar
e21792091a
remove leading slash on vault path
2017-02-28 14:03:18 -08:00
Alex Dadgar
5be806a3df
Fix vet script and fix vet problems
...
This PR fixes our vet script and fixes all the missed vet changes.
It also fixes pointers being printed in `nomad stop <job>` and `nomad
node-status <node>`.
2017-02-27 16:00:19 -08:00
Alex Dadgar
c71cd02edf
Fix typo
2017-02-27 11:40:24 -08:00
Alex Dadgar
6936c81720
Merge pull request #2302 from hashicorp/f-task-state-setup
...
Adding a task event for setup
2017-02-22 18:42:57 -08:00
Alex Dadgar
d2cbbac76e
Merge pull request #2347 from hashicorp/b-parse
...
Remove defaulting from parse and fix tests
2017-02-22 18:42:43 -08:00
Diptanu Choudhury
98921575af
Adding a task event for setup
2017-02-22 18:28:07 -08:00
Alex Dadgar
ed670f0226
Revert "Deregistering non-existant job returns 404"
2017-02-22 18:22:02 -08:00
Alex Dadgar
eae24d7d3f
Fix flakey test TestNetworkIndex_AssignNetwork_Dynamic_Contention
2017-02-22 15:58:21 -08:00
Alex Dadgar
556fb2562f
Remove defaulting from parse and fix parser tests
...
This PR removes defaulting from the parse, fixes some regressions that
existed as part of the parser refactor and fixes the tests.
2017-02-22 12:30:05 -08:00
Alex Dadgar
1e5183fb89
Deregistering non-existant job returns 404
...
Fixes https://github.com/hashicorp/nomad/issues/2326
2017-02-20 20:10:21 -08:00
Alex Dadgar
b49fceb491
rebase
2017-02-20 16:43:28 -08:00
Alex Dadgar
b67c59f03c
Merge branch 'master' into refactor-parser
2017-02-20 15:13:21 -08:00
Alex Dadgar
b2ee70472d
Merge pull request #2331 from hashicorp/b-dispatch-response
...
swap structs
2017-02-17 11:44:19 -08:00
Alex Dadgar
e06056fa82
swap structs
2017-02-17 11:43:14 -08:00
Alex Dadgar
c586cb653b
Merge pull request #2318 from hashicorp/f-vault-debug
...
Server side Vault telemetry
2017-02-17 11:34:37 -08:00
Alex Dadgar
733038bc6c
Remove panic
2017-02-17 11:21:49 -08:00
Diptanu Choudhury
7567209857
Making the job spec return api.Job
2017-02-16 13:52:39 -08:00
Alex Dadgar
471d63d5ff
Fix diff
2017-02-15 15:23:29 -08:00
Alex Dadgar
7e918003ba
Allow specification of timezones
2017-02-15 14:37:06 -08:00
Alex Dadgar
743cf410ef
Include alloc on server side err/logs
2017-02-14 16:26:49 -08:00
Alex Dadgar
8bfc4255eb
Add server metrics
2017-02-14 16:02:18 -08:00
Alex Dadgar
1657c70426
Merge pull request #2310 from hashicorp/f-serf-reap
...
Handle Serf Reap event
2017-02-14 11:07:43 -08:00
Alex Dadgar
dbc4eac936
Merge pull request #2309 from hashicorp/f-no-root-token
...
Disallow root policy from being specified
2017-02-14 11:06:31 -08:00
Alex Dadgar
b6357f96c5
Merge pull request #2308 from hashicorp/f-leader-task
...
Leader task
2017-02-14 11:03:32 -08:00
Alex Dadgar
89fea63a53
Merge pull request #2305 from hashicorp/f-operator
...
Add nomad operator command for interacting with Raft configuration
2017-02-14 11:01:41 -08:00
Alex Dadgar
7d158a5a7f
Validate the interval within a restart policy
...
This PR ensures that the interval specified is not less than 5 seconds.
Fixes https://github.com/hashicorp/nomad/issues/2286
2017-02-13 15:27:36 -08:00
Alex Dadgar
96c17714cf
Fix test
2017-02-13 14:31:22 -08:00
Alex Dadgar
7c8bd12509
Handle Serf Reap event
...
This PR adds handling of the Serf member reap event to remove the peer
from Raft.
2017-02-13 14:22:54 -08:00
Alex Dadgar
0b2e2971fd
Disallow root policy from being specified
...
This PR disallows the specification of a root policy by a Nomad task.
2017-02-13 10:51:29 -08:00
Alex Dadgar
238b4bcafd
Add Leader support to client
2017-02-10 17:55:19 -08:00
Alex Dadgar
3ba8faeae3
Add leader task to api and server side
2017-02-10 16:57:47 -08:00
Alex Dadgar
21ef1ce685
Add guard
2017-02-10 16:29:28 -08:00