Commit Graph

15871 Commits

Author SHA1 Message Date
Tim Gross
40368d2c63 support script checks for task group services (#6197)
In Nomad prior to Consul Connect, all Consul checks work the same
except for Script checks. Because the Task being checked is running in
its own container namespaces, the check is executed by Nomad in the
Task's context. If the Script check passes, Nomad uses the TTL check
feature of Consul to update the check status. This means in order to
run a Script check, we need to know what Task to execute it in.

To support Consul Connect, we need Group Services, and these need to
be registered in Consul along with their checks. We could push the
Service down into the Task, but this doesn't work if someone wants to
associate a service with a task's ports, but do script checks in
another task in the allocation.

Because Nomad is handling the Script check and not Consul anyways,
this moves the script check handling into the task runner so that the
task runner can own the script check's configuration and
lifecycle. This will allow us to pass the group service check
configuration down into a task without associating the service itself
with the task.

When tasks are checked for script checks, we walk back through their
task group to see if there are script checks associated with the
task. If so, we'll spin off script check tasklets for them. The
group-level service and any restart behaviors it needs are entirely
encapsulated within the group service hook.
2019-09-03 15:09:04 -04:00
Michael Schurter
f02c163532 Merge pull request #6000 from Iqoqo/docker-convert-host-paths-to-host-native
driver/docker: convert host bind path to os native
2019-09-03 09:34:56 -07:00
Pete Woods
da93f826a5 Add node "status" and "scheduling eligibility" tags to client metrics (#6130)
When summing up the capability of your Nomad fleet for scaling purposes, it's important to exclude draining nodes, as they won't accept new jobs.
2019-09-03 12:11:11 -04:00
Michael Schurter
477cf83516 connect: add unix socket to proxy grpc for envoy (#6232)
* connect: add unix socket to proxy grpc for envoy

Fixes #6124

Implement a L4 proxy from a unix socket inside a network namespace to
Consul's gRPC endpoint on the host. This allows Envoy to connect to
Consul's xDS configuration API.

* connect: pointer receiver on structs with mutexes

* connect: warn on all proxy errors
2019-09-03 08:43:38 -07:00
Danielle
f744cb9819 Merge pull request #6246 from hashicorp/dani/fix-docker-driver
docker: Fix driver spec
2019-09-03 14:19:12 +02:00
Danielle Lancashire
86838dbc02 docker: Fix driver spec
hclspec.NewLiteral does not quote its values, which caused `3m` to be
parsed as a nonsensical literal which broke the plugin loader during
initialization. By quoting the value here, it starts correctly.
2019-09-03 08:53:37 +02:00
Jasmine Dahilig
c346a47b5b add default update stanza and max_parallel=0 disables deployments (#6191) 2019-09-02 10:30:09 -07:00
Danielle
9a44545dbe Merge pull request #6078 from zhiguangwang/fix-docker-image-delay-default-value
Add default value "3m" to image_delay, making it consistent with docs.
2019-09-02 15:39:51 +02:00
Danielle
798b605b47 Merge pull request #6240 from EvanErcolano/remove-unused-param-consul-client
Remove unused canary param from MakeTaskServiceID
2019-09-02 12:38:08 +02:00
Zhiguang Wang
e7eede5f74 Add default value "3m" to image_delay, making it consistent with docs. 2019-09-02 16:40:00 +08:00
Danielle
6ac3a4a1fd Merge pull request #6210 from hashicorp/f-update-node-response
docs: Update /v1/node/{node-id} example response
2019-09-01 19:17:30 +02:00
Danielle
dade48b783 Merge pull request #6119 from rlewkowicz/master
bumped hadoop version
2019-09-01 08:41:51 +02:00
Danielle
fb3abb288b Merge pull request #6208 from pcgeek86/patch-1
Update AWS logo to current version
2019-09-01 08:41:23 +02:00
Evan Ercolano
859861817d Remove unused canary param from MakeTaskServiceID 2019-08-31 16:53:23 -04:00
Danielle
b0986240ed Merge pull request #6238 from hashicorp/e2e-ami-filters
e2e: filter default AMI by OS
2019-08-31 13:34:36 +02:00
Danielle
c6467cc138 Merge pull request #6233 from hashicorp/chore/more-circle
ci: Migrate remaining jobs to CircleCI
2019-08-31 13:28:51 +02:00
Preetha
3e1ffe9059 Merge pull request #6237 from hashicorp/f-rkt-deprecated
rkt deprecation notice
2019-08-30 16:45:40 -05:00
Tim Gross
e19520cf13 e2e: filter default AMI by OS
Add an OS tag to Packer builds of our e2e test AMIs and then filters
by this in Terraform.
2019-08-30 16:51:13 -04:00
Preetha Appan
9d094668e8 fix casing 2019-08-30 15:31:28 -05:00
Lang Martin
ae952be146 CHANGELOG go-getter upgrade 2019-08-30 16:22:34 -04:00
Michael Schurter
c783505582 Merge pull request #6236 from hashicorp/b-ignore-connect-services
consul: ignore connect services when syncing
2019-08-30 13:11:09 -07:00
Preetha Appan
b553e9c72d Wording changes 2019-08-30 14:36:08 -05:00
Michael Schurter
c5023d2cdb consul: ignore connect services when syncing
Consul registers Connect services automatically, however Nomad thinks it
owns them due to the _nomad prefix. Since the services are managed by
Consul, Nomad needs to explicitly ignore them or otherwies they will be
removed.
2019-08-30 11:53:41 -07:00
Tim Gross
8ebfdb3eac test: add NOMAD_TEST_LOG_LEVEL env var to tune log levels 2019-08-30 13:25:36 -04:00
Tim Gross
ab38c1bbea cli: split -dev and -dev-connect flags 2019-08-30 09:33:30 -04:00
Danielle Lancashire
0098841c4a chore: Remove unused travis scripts 2019-08-30 13:51:05 +02:00
Danielle Lancashire
38f2258df9 ci: Migrate remaining jobs to CircleCI 2019-08-30 13:44:23 +02:00
Danielle Lancashire
8be697012c chore: Update changelog 2019-08-30 13:31:01 +02:00
Danielle
c7f4ce91fd Merge pull request #6228 from hashicorp/chore/remove-go-travis
chore: Remove Go Tests from Travis
2019-08-30 09:09:20 +02:00
Mahmood Ali
97c429c987 Merge pull request #6226 from hashicorp/b-defensive-rawexec
raw_exec: be defensive when disabled
2019-08-29 21:19:05 -04:00
Mahmood Ali
8b688cc70e tests: enable raw_exec driver 2019-08-29 20:26:50 -04:00
Buck Doyle
b0054cde4e Update recent entries with consistent tenses 2019-08-29 17:36:21 -05:00
Preetha Appan
d3136a3ee3 Deprecation notice for rkt 2019-08-29 13:38:12 -05:00
Tim Gross
92783b681a ci: require Consul 1.6.0 2019-08-29 14:15:56 -04:00
Tim Gross
09cb3994cc dev: bump vagrant consul version to match CI 2019-08-29 14:15:56 -04:00
Grégoire Delattre
50068fc348 Fix the ExecTask function in DriverExecTaskNotSupported (#6145)
This fixes the ExecTask definition to match with the DriverPlugin
interface.
2019-08-29 11:36:29 -04:00
Mahmood Ali
4320d87be5 Merge pull request #6227 from hashicorp/b-drivers-check
schedulers: check all drivers on node
2019-08-29 09:48:07 -04:00
Danielle Lancashire
10f13dae1a chore: Remove Go Tests from Travis
This commit removes the travis tests that duplicate ones ran in
CircleCI.
2019-08-29 15:43:09 +02:00
Mahmood Ali
e14619da45 raw_exec: be defensive when disabled
Ensure that no raw_exec task can run on a client where it's disabled,
even if a flaw lead to client being assigned a raw_exec task
unexpectedly.
2019-08-29 09:09:40 -04:00
Mahmood Ali
8a0647c9cf schedulers: check all drivers on node
When checking driver feasability for an alloc with multiple drivers, we
must check that all drivers are detected and healthy.

Nomad 0.9 and 0.8 have a bug where we may check a single driver only,
but which driver is dependent on map traversal order, which is
unspecified in golang spec.
2019-08-29 09:03:31 -04:00
Mahmood Ali
542d17e745 scheduler: tests for multiple drivers in TG 2019-08-29 09:03:31 -04:00
Michael Schurter
d4553b7569 Merge pull request #6218 from hashicorp/f-consul-defaults
consul: use Consul's defaults and env vars
2019-08-28 11:54:44 -07:00
Mahmood Ali
b2ef75e10d Merge pull request #6216 from hashicorp/b-recognize-pending-allocs
alloc_runner: wait when starting suspicious allocs
2019-08-28 14:46:09 -04:00
Mahmood Ali
8b05f87140 rename to hasLocalState, and ignore clientstate
The ClientState being pending isn't a good criteria; as an alloc may
have been updated in-place before it was completed.

Also, updated the logic so we only check for task states.  If an alloc
has deployment state but no persisted tasks at all, restore will still
fail.
2019-08-28 11:44:48 -04:00
Mahmood Ali
ddf2f6be4d Merge pull request #6219 from hashicorp/c-circleci-upgrade-machine-img
upgrade machine image for most jobs
2019-08-28 11:27:04 -04:00
Lang Martin
3f0f3a06c0 Merge pull request #6215 from hashicorp/f-upgrade-go-getter
upgrade go-getter, leave compiled protobuf at version 1.2
2019-08-28 11:01:31 -04:00
Nick Ethier
99742f2665 ar: ensure network forwarding is allowed for bridged allocs (#6196)
* ar: ensure network forwarding is allowed in iptables for bridged allocs

* ensure filter rule exists at setup time
2019-08-28 10:51:34 -04:00
Mahmood Ali
d99da5b656 upgrade machine image for most jobs
Looks like the host unattended upgrades is interferring with chroot
creation.  Here, we upgrade machine image to one without unattended
upgrades misconfigured, across the board except for the `test-docker`
job.

Docker seems to be misbehaving on that image, and we get some unexpected
cgroups errors, e.g. https://circleci.com/gh/hashicorp/nomad/3854 .

Sample recent failures of `test-exec`:

https://circleci.com/gh/hashicorp/nomad/3633
https://circleci.com/gh/hashicorp/nomad/3696
https://circleci.com/gh/hashicorp/nomad/3714
https://circleci.com/gh/hashicorp/nomad/3764
https://circleci.com/gh/hashicorp/nomad/3770
https://circleci.com/gh/hashicorp/nomad/3834
2019-08-28 09:50:56 -04:00
Nick Ethier
f631ec6c2d cli: display group ports and address in alloc status command output (#6189)
* cli: display group ports and address in alloc status command output

* add assertions for port.To = -1 case and convert assertions to testify
2019-08-27 23:59:36 -04:00
Nick Ethier
51750f5732 Add environment variables for connect upstreams (#6171)
* taskenv: add connect upstream env vars + test

* set taskenv upstreams instead of appending

* Update client/taskenv/env.go

Co-Authored-By: Michael Schurter <mschurter@hashicorp.com>
2019-08-27 23:41:38 -04:00