Commit Graph

16653 Commits

Author SHA1 Message Date
Mahmood Ali
596d0be5d8 executor: stop joining executor to container cgroup
Stop joining libcontainer executor process into the newly created task
container cgroup, to ensure that the cgroups are fully destroyed on
shutdown, and to make it consistent with other plugin processes.

Previously, executor process is added to the container cgroup so the
executor process resources get aggregated along with user processes in
our metric aggregation.

However, adding executor process to container cgroup adds some
complications with much benefits:

First, it complicates cleanup.  We must ensure that the executor is
removed from container cgroup on shutdown.  Though, we had a bug where
we missed removing it from the systemd cgroup.  Because executor uses
`containerState.CgroupPaths` on launch, which includes systemd, but
`cgroups.GetAllSubsystems` which doesn't.

Second, it may have advese side-effects.  When a user process is cpu
bound or uses too much memory, executor should remain functioning
without risk of being killed (by OOM killer) or throttled.

Third, it is inconsistent with other drivers and plugins.  Logmon and
DockerLogger processes aren't in the task cgroups.  Neither are
containerd processes, though it is equivalent to executor in
responsibility.

Fourth, in my experience when executor process moves cgroup while it's
running, the cgroup aggregation is odd.  The cgroup
`memory.usage_in_bytes` doesn't seem to capture the full memory usage of
the executor process and becomes a red-harring when investigating memory
issues.

For all the reasons above, I opted to have executor remain in nomad
agent cgroup and we can revisit this when we have a better story for
plugin process cgroup management.
2019-12-11 11:28:09 -05:00
Mahmood Ali
2f4b9da61a drivers/exec: test all cgroups are destroyed 2019-12-11 11:12:29 -05:00
Tim Gross
8babbf4f1b doc: spread is inherited from job to group (#6837) 2019-12-11 09:59:26 -05:00
Drew Bailey
c28722e74d Merge pull request #6834 from hashicorp/monitor-changelog
add 6828 to changelog
2019-12-11 08:17:12 -05:00
Michael Schurter
948b24acc2 Merge pull request #6833 from hashicorp/sentinel-imports-note
Make note of Sentinel standard imports
2019-12-10 13:56:01 -08:00
Chris Arcand
bdb70ef09c Make note of Sentinel standard imports
> Sentinel-embedded applications can choose to whitelist or blacklist
certain standard imports. Please reference the documentation for the
Sentinel-enabled application you're using to determine if all standard
imports are available.
2019-12-10 14:44:51 -06:00
Drew Bailey
fbf22eff9d add 6828 to changelog 2019-12-10 15:02:34 -05:00
Tim Gross
5e3efbd3ec doc: explain ALLOC_INDEX uniqueness guarantees (#6830)
The `ALLOC_INDEX` isn't guaranteed to be unique, and this has caused
some user confusion. The servers make a best-effort attempt to make
this value unique from 0 to count-1 but when you have canaries on the
task group, there are reused indexes because you have multiple job
versions running at the same time. If a user needs a unique number for
interpolating a value in your application, they can get this by
combining the job version and the alloc index.

Co-Authored-By: Michael Schurter <mschurter@hashicorp.com>
2019-12-10 10:30:26 -05:00
Danielle
34a5a3a6a6 Merge pull request #6828 from hashicorp/b/nomad-monitor-panic
command: error when no node is found for `monitor`
2019-12-10 14:29:32 +01:00
Danielle Lancashire
c91f8da7f0 command: error when no node is found for monitor
Currently `nomad monitor -node-id` will panic when a node-id does not
match any nodes, as there is no empty result bounds checking. Here we
return an error to the user when no nodes are found.
2019-12-10 13:10:47 +01:00
Chris Dickson
bbb6b2af09 client: expose allocated CPU per task (#6784) 2019-12-09 15:40:22 -05:00
Seth Hoenig
ffba749001 Merge pull request #6800 from hashicorp/b-update-freeport
tests: swap lib/freeport for tweaked helper/freeport
2019-12-09 09:50:26 -06:00
Tim Gross
e7f9a06c9f Merge pull request #6631 from hashicorp/dependabot/npm_and_yarn/ui/lodash.mergewith-4.6.2
Bump lodash.mergewith from 4.6.1 to 4.6.2 in /ui
2019-12-09 09:47:14 -05:00
Tim Gross
3717c3cae2 Merge pull request #6629 from hashicorp/dependabot/npm_and_yarn/ui/lodash.defaultsdeep-4.6.1
Bump lodash.defaultsdeep from 4.6.0 to 4.6.1 in /ui
2019-12-09 09:47:05 -05:00
Seth Hoenig
94c60b4cfa tests: swap lib/freeport for tweaked helper/freeport
Copy the updated version of freeport (sdk/freeport), and tweak it for use
in Nomad tests. This means staying below port 10000 to avoid conflicts with
the lib/freeport that is still transitively used by the old version of
consul that we vendor. Also provide implementations to find ephemeral ports
of macOS and Windows environments.

Ports acquired through freeport are supposed to be returned to freeport,
which this change now also introduces. Many tests are modified to include
calls to a cleanup function for Server objects.

This should help quite a bit with some flakey tests, but not all of them.
Our port problems will not go away completely until we upgrade our vendor
version of consul. With Go modules, we'll probably do a 'replace' to swap
out other copies of freeport with the one now in 'nomad/helper/freeport'.
2019-12-09 08:37:32 -06:00
dependabot[bot]
551ff191ce Bump lodash.mergewith from 4.6.1 to 4.6.2 in /ui
Bumps [lodash.mergewith](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-09 13:37:45 +00:00
Tim Gross
cb7ed5fee9 Merge pull request #6628 from hashicorp/dependabot/npm_and_yarn/ui/handlebars-4.1.2
Bump handlebars from 4.1.1 to 4.1.2 in /ui
2019-12-09 08:37:10 -05:00
Tim Gross
701cab81f5 Bump fstream from 1.0.11 to 1.0.12 in /ui (#6630)
Bumps [fstream](https://github.com/npm/fstream) from 1.0.11 to 1.0.12.
- [Release notes](https://github.com/npm/fstream/releases)
- [Commits](https://github.com/npm/fstream/compare/v1.0.11...v1.0.12)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-09 08:36:57 -05:00
dependabot[bot]
132b0dc513 Bump lodash.merge from 4.6.1 to 4.6.2 in /ui (#6632)
Bumps [lodash.merge](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-09 08:36:44 -05:00
Mahmood Ali
16aef03331 Merge pull request #6788 from hashicorp/b-timeout-logmon-stop
logmon: add timeout to RPC operations
2019-12-06 19:12:06 -05:00
abhip
ad2af255b1 Update consensus.html.md (#6813)
The url for raft algorithm pdf is no longer valid. Here is correct url - https://raft.github.io/raft.pdf  and website is https://raft.github.io/
2019-12-06 06:17:30 -08:00
Seth Hoenig
3ae03b4fed Merge pull request #6814 from hashicorp/f-use-golangci-lint
swap gometalint for golangci-lint
2019-12-06 08:16:17 -06:00
dependabot[bot]
c9577724f6 Bump lodash.defaultsdeep from 4.6.0 to 4.6.1 in /ui
Bumps [lodash.defaultsdeep](https://github.com/lodash/lodash) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.6.0...4.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-06 14:13:32 +00:00
dependabot[bot]
73a64ef191 Bump handlebars from 4.1.1 to 4.1.2 in /ui
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.1.1...v4.1.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-06 14:13:27 +00:00
dependabot[bot]
538ef5afb2 Bump fstream from 1.0.11 to 1.0.12 in /ui
Bumps [fstream](https://github.com/npm/fstream) from 1.0.11 to 1.0.12.
- [Release notes](https://github.com/npm/fstream/releases)
- [Commits](https://github.com/npm/fstream/compare/v1.0.11...v1.0.12)

Signed-off-by: dependabot[bot] <support@github.com>
2019-12-06 14:13:19 +00:00
Charlie Voiselle
935a96a685 Added Discuss badge to README (#6695) 2019-12-06 06:09:23 -08:00
Fredrik Hoem Grelland
641c9b7d7d Update network.html.md (#6782)
There is an undocumented way of mapping a dynamically allocated port to the container. This is applicable in bridge networking ( necessary for consul connect enabled services ) to expose the service *directly*. This is needed when using upstream connect services, but you need to expose the service by normal means. By referencing the current documentation you need to use static ports in order to do so. Introduced in #6189 but undocumented
2019-12-06 06:08:56 -08:00
James Rasell
dcd4c7cf82 docs: add jrasell/chemtrail to community resources. (#6798) 2019-12-06 06:07:00 -08:00
Seth Hoenig
d8d85c82cb spellcheck: add misspell to linter dependencies
You'd think since golangci-lint embeds misspell we could use that,
but it fails to run if it finds no Go source files, which is the
case in our website/ directory that we want to check.
2019-12-05 19:27:14 -06:00
Danielle Lancashire
5efa8994b9 spellcheck: Fix spelling of retrieve 2019-12-05 18:59:47 -06:00
Danielle Lancashire
8bb27f7eeb chore: Switch from gometalinter to golangci-lint
gometalinter has been deprecated, with golangci-lint as its spiritual
and recommended successor. Here we switch to using it with an equivalent
configuration, albeit with newer versions of some linters.

To maintain compatibility with existing settings, we have a couple of
things disabled here, specifically:

- tests
        We have a lot of unused code in our tests that choke deadcode.
        We should attempt to clean these up soon so that we can lint our
        testcode.
- govet.check-shadowing = false
        This breaks on redefining `err` which we do all over the nomad
        codebase.
2019-12-05 18:58:13 -06:00
Mahmood Ali
e2ce1eb2ea Merge pull request #6809 from hoh/patch-1
docs: port name requires quotes in hcl
2019-12-05 10:09:28 -05:00
Hugo Herter
ec9837fe16 docs: port name requires quotes in hcl
When trying to run this example, Nomad v0.10.2 raises the following error:
`Error getting job struct: Error parsing job file from example-ipv6.hcl: error parsing: At 33:22: Unknown token: 27:16 IDENT db`

Adding quotes around the port map `db` fixes the problem and the job works as expected.
2019-12-05 12:37:24 +01:00
Michael Schurter
b7a48a99cc Merge pull request #6807 from hashicorp/docs-097
docs: add #6792 backport to 0.9.7 changelog
2019-12-04 14:49:16 -08:00
Michael Schurter
e7675b94a9 docs: add #6792 backport to 0.9.7 changelog 2019-12-04 14:48:45 -08:00
Michael Schurter
0cff312311 Merge pull request #6805 from hashicorp/release-0102
Release 0102
2019-12-04 14:38:44 -08:00
Michael Schurter
f530bed66c Merge pull request #6806 from hashicorp/docs-0102
docs: release 0.10.2 and 0.9.7
2019-12-04 14:27:53 -08:00
Michael Schurter
7f85f7170f docs: release 0.10.2 and 0.9.7 2019-12-04 14:18:17 -08:00
Michael Schurter
e2b12087a1 release: prep for 0.10.3 development 2019-12-04 14:14:22 -08:00
Michael Schurter
aaffe61863 Merge branch 'master' into release-0102 2019-12-04 14:13:34 -08:00
Luiz Aoqui
5651999563 Merge pull request #6803 from hashicorp/docs-driver-skeleton-reference
docs: add reference to the driver plugin skeleton project
2019-12-04 18:49:17 +00:00
Michael Schurter
53fe1a3f23 Merge pull request #6804 from hashicorp/docs-cni-version
docs: reference cni-plugins v0.8.3
2019-12-04 10:49:03 -08:00
Michael Schurter
0b118f967d release: remove 0.10.2 generated files 2019-12-04 10:45:57 -08:00
Michael Schurter
9c93a44ee0 docs: reference cni-plugins v0.8.3 2019-12-04 10:20:33 -08:00
Michael Schurter
40edb4d3dd Release v0.10.2 2019-12-04 10:14:01 -08:00
Nomad Release bot
0d2d6e3dc5 Generate files for 0.10.2 release 2019-12-04 17:03:20 +00:00
Michael Schurter
1ab08a11e4 release: unset prerelease for final release 2019-12-04 08:52:25 -08:00
Mahmood Ali
b5d7c31ee5 Merge pull request #6795 from hashicorp/vendor-update-aws-sdk-v1.25.41
update aws sdk v1.25.41
2019-12-04 07:59:12 -05:00
Luiz Aoqui
e93252d61b docs: add reference to the drivir plugin skeleton project 2019-12-03 17:17:52 -05:00
Charlie Voiselle
5884f6250c Merge pull request #6791 from hashicorp/docs/cv/stateful_to_learn
Stateful Workload guides to learn.hashicorp.com
2019-12-03 14:48:01 -05:00