Commit Graph

15273 Commits

Author SHA1 Message Date
Chris Baker
e02947801e Merge pull request #5850 from hashicorp/b-5345-prometheus-metric-label-conflict
metrics: upgraded prometheus http client
2019-06-19 12:50:24 -04:00
Chris Baker
29bafaf920 Merge branch 'master' into b-5345-prometheus-metric-label-conflict 2019-06-19 12:50:03 -04:00
Chris Baker
ff2d9c5f5f Update CHANGELOG.md 2019-06-19 12:49:12 -04:00
Mahmood Ali
e93bbf8cf2 Merge pull request #5844 from hashicorp/b-hcl-parse-unknown-vars
Upgrade hcl2 to validate arrays for unknown values
2019-06-19 10:44:21 -04:00
Omar Khawaja
e8893772fa fixing typos in operator endpoint api docs (#5854) 2019-06-19 10:35:47 -04:00
Mahmood Ali
949ba0caff update changelog for GH-5726, GH-5811, and GH-5851 2019-06-18 21:59:49 -04:00
Mahmood Ali
858e98cea0 Merge pull request #5811 from cloudbuy/b-win32-volume-split
lift code from docker/volume/mounts for splitting windows volumes
2019-06-18 21:19:15 -04:00
Mahmood Ali
6708a0ccc9 Merge pull request #5726 from hashicorp/b-plugins-via-init
Use init() to handle plugin invocation
2019-06-18 21:09:03 -04:00
Mahmood Ali
8fb9d25041 comment on use of init() for plugin handlers 2019-06-18 20:54:55 -04:00
Mahmood Ali
a4147af7f8 Merge pull request #5851 from hashicorp/b-libcontainer-6cc5158
Update libcontainer to 6cc5158
2019-06-18 19:03:11 -04:00
Mahmood Ali
711b0b9a6f update logrus and go-windows-terminal-sequences 2019-06-18 14:55:19 -04:00
Mahmood Ali
489b68e00e Update github.com/opencontainers/selinux
Or github.com/opencontainers/selinux/go-selinux, a dependency of
libcontainer.
2019-06-18 14:49:11 -04:00
Mahmood Ali
2f54095846 Update libcontainer to 6cc5158
To pick up the fix in https://github.com/opencontainers/runc/pull/2023

Fixes https://github.com/hashicorp/nomad/issues/5836
2019-06-18 14:48:13 -04:00
Chris Baker
f1daa6af9f update changelog for GH-5850 2019-06-18 18:38:41 +00:00
Chris Baker
226a261ba6 metrics: upgraded prometheus http client to 0.9.4 to address label conflict in Nomad 0.9.x reported in #5345 2019-06-18 18:34:22 +00:00
Chris Baker
2eacf1940e Merge pull request #5847 from hashicorp/f-5554-metrics-namespace-label
metrics: add namespace label to allocation metrics
2019-06-18 10:57:07 -04:00
Charlie Voiselle
25f7876134 Merge pull request #5849 from hashicorp/roll-back-ami
roll back to previous ami
2019-06-18 10:23:11 -04:00
Omar Khawaja
04d82e6628 roll back to previous ami 2019-06-18 10:20:13 -04:00
Chris Baker
80fa207ced update changelog 2019-06-18 14:16:49 +00:00
Chris Baker
03500494b2 cleanup test 2019-06-18 14:15:25 +00:00
Chris Baker
7050e14eb5 formatting and clarity 2019-06-18 14:00:57 +00:00
Damien Churchill
0cce6977d7 run new file through goimports 2019-06-18 08:35:25 +01:00
Damien Churchill
cb8a5e4caa run gofmt over the new file 2019-06-18 08:35:25 +01:00
Damien Churchill
960f898dff drivers/docker: move lifted code out to separate file and link the source & license 2019-06-18 08:35:25 +01:00
Damien Churchill
4f04c03c27 lift code from docker/volume/mounts for splitting windows volumes
Using the API as provided from the `mounts` package imposes validation
on the `src:dest` which shouldn't be performed at this time. To workaround
that lift the internal code from that library required to only perform
the split.
2019-06-18 08:35:25 +01:00
Buck Doyle
c7723c7000 Add exclusion of UI branches for AppVeyor (#5842)
As with #5839 on Travis CI, this skips AppVeyor for UI branches.
2019-06-17 16:31:11 -07:00
Chris Baker
240d68765c metrics: add namespace label to allocation metrics 2019-06-17 20:50:26 +00:00
Mahmood Ali
9ebf0a7645 Upgrade hcl2 to validate arrays for unknown values
This upgrades hcl2 library dependency to pick up
https://github.com/hashicorp/hcl2/pull/113 .

Prior to this change, parsing and decoding array attributes containing
invalid errors (e.g. references to unknown variables) are silently
dropped, with `cty.Unknown` being assigned to the bad element.  Rather
than showing a type/meaningful error from hcl2, we get a very decrypted
error message from msgpack layer trying to handle `cty.unknown`.

This ensures that we propagate diagnostics correctly and report
meaningful errors to users.

Fixes https://github.com/hashicorp/nomad/issues/5694
Fixes https://github.com/hashicorp/nomad/issues/5680
2019-06-17 12:28:14 -04:00
Mahmood Ali
95adf6127c Add a test for unknown variables 2019-06-17 12:25:43 -04:00
Buck Doyle
78da9b6ee8 Remove non-UI jobs for branches starting with .-ui (#5839)
Branches that follow the UI naming convention will no longer produce
non-UI jobs on Travis CI.
2019-06-14 15:41:34 -07:00
Buck Doyle
91ee6caba5 Update changelog properly
I failed to amend my commit! 😭
2019-06-14 08:55:13 -07:00
Buck Doyle
84f11ccc8a Update changelog 2019-06-13 16:55:00 -07:00
Jasmine Dahilig
fcd42f6392 update changelog 2019-06-13 14:41:56 -07:00
Mahmood Ali
2899991ccd Merge pull request #5790 from hashicorp/b-reschedule-desired-state
Mark rescheduled allocs as stopped.
2019-06-13 17:28:59 -04:00
Michael Schurter
77f5f004c7 Merge pull request #5786 from hashicorp/docs-docs
docs: initial attempt at developer docs
2019-06-13 14:19:41 -07:00
Buck Doyle
6c0080a252 Change sort arrow to pass through pointer events (#5833)
Without this, clicking on the sort arrow didn’t change the
sort direction.
2019-06-13 16:14:35 -05:00
Michael Schurter
5cfae0a399 Merge branch 'master' into docs-docs 2019-06-13 14:13:41 -07:00
Mahmood Ali
eeaa95ddf9 Use init to handle plugin invocation
Currently, nomad "plugin" processes (e.g. executor, logmon, docker_logger) are started as CLI
commands to be handled by command CLI framework.  Plugin launchers use
`discover.NomadBinary()` to identify the binary and start it.

This has few downsides: The trivial one is that when running tests, one
must re-compile the nomad binary as the tests need to invoke the nomad
executable to start plugin.  This is frequently overlooked, resulting in
puzzlement.

The more significant issue with `executor` in particular is in relation
to external driver:

* Plugin must identify the path of invoking nomad binary, which is not
trivial; `discvoer.NomadBinary()` now returns the path to the plugin
rather than to nomad, preventing external drivers from launching
executors.

* The external driver may get a different version of executor than it
expects (specially if we make a binary incompatible change in future).

This commit addresses both downside by having the plugin invocation
handling through an `init()` call, similar to how libcontainer init
handler is done in [1] and recommened by libcontainer [2].  `init()`
will be invoked and handled properly in tests and external drivers.

For external drivers, this change will cause external drivers to launch
the executor that's compiled against.

There a are a couple of downsides to this approach:
* These specific packages (i.e executor, logmon, and dockerlog) need to
be careful in use of `init()`, package initializers.  Must avoid having
command execution rely on any other init in the package.  I prefixed
files with `z_` (golang processes files in lexical order), but ensured
we don't depend on order.
* The command handling is spread in multiple packages making it a bit
less obvious how plugin starts are handled.

[1] drivers/shared/executor/libcontainer_nsenter_linux.go
[2] eb4aeed24f/libcontainer (using-libcontainer)
2019-06-13 16:48:01 -04:00
Mahmood Ali
e2ee80481c Merge pull request #5831 from hashicorp/golang-1.11.11
Update golang to 1.11.11
2019-06-13 16:44:32 -04:00
Mahmood Ali
25b44b18db Test behavior no reschedule for service/batch jobs 2019-06-13 16:41:19 -04:00
Jasmine Dahilig
e7857b4ad5 update changelog 2019-06-13 12:28:54 -07:00
Jasmine Dahilig
ce55bf5fba Merge pull request #5664 from hashicorp/f-http-hcl-region
backfill region from hcl for jobUpdate and jobPlan
2019-06-13 12:25:01 -07:00
Jasmine Dahilig
c467a94e2b backfill region from job hcl in jobUpdate and jobPlan endpoints
- updated region in job metadata that gets persisted to nomad datastore
- fixed many unrelated unit tests that used an invalid region value
(they previously passed because hcl wasn't getting picked up and
the job would default to global region)
2019-06-13 08:03:16 -07:00
Danielle
2a65ceeefc Merge pull request #5801 from jrasell/patch-5
Fix incorrect link to the sample Grafana dashboard
2019-06-13 16:39:23 +02:00
Danielle
17f96165df Merge pull request #5829 from hashicorp/dani/b-5819
consul: Include port-label in service registration
2019-06-13 16:20:45 +02:00
Mahmood Ali
5ade5f54c5 Update golang to 1.11.11
It's the latest 1.11 point release as of now
2019-06-13 09:49:21 -04:00
Mahmood Ali
b5f45780c7 Merge pull request #5830 from hashicorp/docs-go-version-update
Updated minimum development go version
2019-06-13 09:48:34 -04:00
Mahmood Ali
34a66835db Don't stop rescheduleLater allocations
When an alloc is due to be rescheduleLater, it goes through the
reconciler twice: once to be ignored with a follow up evals, and once
again when processing the follow up eval where they appear as
rescheduleNow.

Here, we ignore them in the first run and mark them as stopped in second
iteration; rather than stop them twice.
2019-06-13 09:44:41 -04:00
Charlie Voiselle
cb3bc09318 Updated minimum development go version 2019-06-13 09:36:09 -04:00
Danielle Lancashire
efdfef868f consul: Include port-label in service registration
It is possible to provide multiple identically named services with
different port assignments in a Nomad configuration.

We introduced a regression when migrating to stable service identifiers where
multiple services with the same name would conflict, and the last definition
would take precedence.

This commit includes the port label in the stable service identifier to
allow the previous behaviour where this was supported, for example
providing:

```hcl
service {
  name = "redis-cache"
  tags = ["global", "cache"]
  port = "db"
  check {
    name     = "alive"
    type     = "tcp"
    interval = "10s"
    timeout  = "2s"
  }
}

service {
  name = "redis-cache"
  tags = ["global", "foo"]
  port = "foo"

  check {
    name     = "alive"
    type     = "tcp"
    port     = "db"
    interval = "10s"
    timeout  = "2s"
  }
}

service {
  name = "redis-cache"
  tags = ["global", "bar"]
  port = "bar"

  check {
    name     = "alive"
    type     = "tcp"
    port     = "db"
    interval = "10s"
    timeout  = "2s"
  }
}
```

in a nomad task definition is now completely valid. Each service
definition with the same name must still have a unique port label however.
2019-06-13 15:24:54 +02:00