Proto commits in hashicorp/nomad

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:47c14dd
Author:Michael Smithhisler
Committer:GitHub

remove remote task execution code (#24909)

The documentation is generated from this commit.

Commit:51d33a8
Author:Tim Gross

[wip] tears, only tears

Commit:d5ae356
Author:hc-github-team-nomad-core
Committer:GitHub

backport of commit 658c429d75e405b5a30880b6a8d90b80196cc2a5 (#24351) Co-authored-by: Michael Smithhisler <michael.smithhisler@hashicorp.com>

Commit:658c429
Author:Michael Smithhisler
Committer:GitHub

Drivers: add work_dir config to exec/raw_exec/java drivers (#24249) --------- Co-authored-by: wurosh <uros.m.perisic@gmail.com> Co-authored-by: Michael Schurter <mschurter@hashicorp.com> Co-authored-by: Tim Gross <tgross@hashicorp.com>

Commit:1fabbaa
Author:James Rasell
Committer:GitHub

driver: remove LXC and ECS driver documentation. (#24107) Co-authored-by: Aimee Ukasick <aimee.ukasick@hashicorp.com>

Commit:5aeec72
Author:hc-github-team-nomad-core
Committer:GitHub

backport of commit 85430be6dd48574124567211cacf4367b58fb2fb (#23324) Co-authored-by: Piotr Kazmierczak <470696+pkazmierczak@users.noreply.github.com>

Commit:85430be
Author:Piotr Kazmierczak
Committer:GitHub

raw_exec: oom_score_adj support (#23308)

Commit:14a022c
Author:Seth Hoenig
Committer:GitHub

drivers/raw_exec: enable setting cgroup override values (#20481) * drivers/raw_exec: enable setting cgroup override values This PR enables configuration of cgroup override values on the `raw_exec` task driver. WARNING: setting cgroup override values eliminates any gauruntee Nomad can make about resource availability for *any* task on the client node. For cgroup v2 systems, set a single unified cgroup path using `cgroup_v2_override`. The path may be either absolute or relative to the cgroup root. config { cgroup_v2_override = "custom.slice/app.scope" } or config { cgroup_v2_override = "/sys/fs/cgroup/custom.slice/app.scope" } For cgroup v1 systems, set a per-controller path for each controller using `cgroup_v1_override`. The path(s) may be either absolute or relative to the controller root. config { cgroup_v1_override = { "pids": "custom/app", "cpuset": "custom/app", } } or config { cgroup_v1_override = { "pids": "/sys/fs/cgroup/pids/custom/app", "cpuset": "/sys/fs/cgroup/cpuset/custom/app", } } * drivers/rawexec: ensure only one of v1/v2 cgroup override is set * drivers/raw_exec: executor should error if setting cgroup does not work * drivers/raw_exec: create cgroups in raw_exec tests * drivers/raw_exec: ensure we fail to start if custom cgroup set and non-root * move custom cgroup func into shared file --------- Co-authored-by: Michael Schurter <mschurter@hashicorp.com>

Commit:043b19d
Author:hc-github-team-nomad-core
Committer:GitHub

backport of commit 120c3ca3c942b79df6004f3b95ecaf3cfd7ddd55 (#20423) Co-authored-by: Juana De La Cuesta <juanita.delacuestamorales@hashicorp.com>

Commit:952bdfd
Author:Michael Schurter
Committer:Michael Schurter

driver/exec: allow using custom cgroups This commit implements the cgroup_override task config which allows using a custom cgroup with the following behaviors: - cgroup1 and cgroup2 are supported. - No resource limits are enforced. - Absolute paths such as `/custom` will be rooted in the cgroup filesystem. - All cgroup1 controllers will be created if they do not exist prior to the task launching, but no limits will be set. - The custom cgroup is removed when the task terminates.

Commit:745799a
Author:Michael Schurter

cgroup overrides for exec wip cgroup1 unimplemented cgroup2 working port of 8f1cc097c7e94863d4c0e7197eb01d4982f32474

Commit:bb54d16
Author:Seth Hoenig
Committer:GitHub

exec2: setup RPC plumbing for dynamic workload users (#20129) And pass the dynamic users pool from the client into the hook.

Commit:05937ab
Author:Seth Hoenig
Committer:GitHub

exec2: add client support for unveil filesystem isolation mode (#20115) * exec2: add client support for unveil filesystem isolation mode This PR adds support for a new filesystem isolation mode, "Unveil". The mode introduces a "alloc_mounts" directory where tasks have user-owned directory structure which are bind mounts into the real alloc directory structure. This enables a task driver to use landlock (and maybe the real unveil on openbsd one day) to isolate a task to the task owned directory structure, providing sandboxing. * actually create alloc-mounts-dir directory * fix doc strings about alloc mount dir paths

Commit:6822b1d
Author:hc-github-team-nomad-core
Committer:GitHub

backport of commit 5f5b34db0ea6e761b5c988a06923014b0cc4c308 (#20114) Co-authored-by: carrychair <137268757+carrychair@users.noreply.github.com>

Commit:b8c9638
Author:hc-github-team-nomad-core
Committer:GitHub

backport of commit 5f5b34db0ea6e761b5c988a06923014b0cc4c308 (#20113) Co-authored-by: carrychair <137268757+carrychair@users.noreply.github.com>

Commit:e5e0297
Author:hc-github-team-nomad-core
Committer:GitHub

backport of commit 5f5b34db0ea6e761b5c988a06923014b0cc4c308 (#20112) Co-authored-by: carrychair <137268757+carrychair@users.noreply.github.com>

Commit:5f5b34d
Author:carrychair
Committer:GitHub

remove repetitive words (#20110) Signed-off-by: carrychair <linghuchong404@gmail.com>

Commit:120c3ca
Author:Juana De La Cuesta
Committer:GitHub

Add granular control of SELinux labels for host mounts (#19839) Add new configuration option on task's volume_mounts, to give a fine grained control over SELinux "z" label * Update website/content/docs/job-specification/volume_mount.mdx Co-authored-by: Luiz Aoqui <luiz@hashicorp.com> * fix: typo * func: make volume mount verification happen even on mounts with no volume --------- Co-authored-by: Luiz Aoqui <luiz@hashicorp.com> Co-authored-by: Tim Gross <tgross@hashicorp.com>

Commit:8f1cc09
Author:Mike Nomitch
Committer:Mike Nomitch

cgroup override

Commit:adfc522
Author:Luiz Aoqui
Committer:Juanadelacuesta

tmp

Commit:9410c51
Author:Seth Hoenig
Committer:GitHub

drivers/raw_exec: remove plumbing for ineffective no_cgroups configuration (#19599) * drivers/raw_exec: remove plumbing for ineffective no_cgroups configuration * fix tests

Commit:5253c12
Author:hc-github-team-nomad-core
Committer:GitHub

backport of commit d75293d2ab33532a2c3fe62c8d8ae26cfee28df3 (#19595) Co-authored-by: Marvin Chin <cheesemuffin95@gmail.com>

Commit:d75293d
Author:Marvin Chin
Committer:GitHub

Add OOM detection for exec driver (#19563) * Add OomKilled field to executor proto format * Teach linux executor to detect and report OOMs * Teach exec driver to propagate OOMKill information * Fix data race * use tail /dev/zero to create oom condition * use new test framework * minor tweaks to executor test * add cl entry * remove type conversion --------- Co-authored-by: Marvin Chin <marvinchin@users.noreply.github.com> Co-authored-by: Seth Hoenig <shoenig@duck.com>

Commit:73a8ce9
Author:Tim Gross

Update LICENSE, add MPL workaround, add headers

Commit:591394f
Author:Seth Hoenig
Committer:GitHub

drivers: plumb hardware topology via grpc into drivers (#18504) * drivers: plumb hardware topology via grpc into drivers This PR swaps out the temporary use of detecting system hardware manually in each driver for using the Client's detected topology by plumbing the data over gRPC. This ensures that Client configuration is taken to account consistently in all references to system topology. * cr: use enum instead of bool for core grade * cr: fix test slit tables to be possible

Commit:2d35e32
Author:hashicorp-copywrite[bot]
Committer:GitHub

Update copyright file headers to BUSL-1.1

Commit:b31e891
Author:Devashish Taneja
Committer:GitHub

Include parent job ID as a Docker container label (#17843) Fixes: #17751

Commit:bf7b82b
Author:Tim Gross
Committer:GitHub

drivers: make internal `DisableLogCollection` capability public (#17196) The `DisableLogCollection` capability was introduced as an experimental interface for the Docker driver in 0.10.4. The interface has been stable and allowing third-party task drivers the same capability would be useful for those drivers that don't need the additional overhead of logmon. This PR only makes the capability public. It doesn't yet add it to the configuration options for the other internal drivers. Fixes: #14636 #15686

Commit:1048d68
Author:stswidwinski
Committer:GitHub

backport of commit ee1b3875ed8bcc2cab8213233c745730aa842153

Commit:f005448
Author:hashicorp-copywrite[bot]
Committer:GitHub

[COMPLIANCE] Add Copyright and License Headers

Commit:30d764b
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of plugin: add missing fields to `TaskConfig` into release/1.5.x (#16466) This pull request was automerged via backport-assistant

Commit:c823e1b
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of plugin: add missing fields to `TaskConfig` into release/1.4.x (#16465) This pull request was automerged via backport-assistant

Commit:b4a0079
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of plugin: add missing fields to `TaskConfig` into release/1.3.x (#16464) This pull request was automerged via backport-assistant

Commit:b2c8732
Author:Luiz Aoqui
Committer:GitHub

plugin: add missing fields to `TaskConfig` (#16434)

Commit:f87136b
Author:hc-github-team-nomad-core
Committer:GitHub

renamed stanza to block for consistency with other projects (#15941) (#15953) Co-authored-by: Piotr Kazmierczak <470696+pkazmierczak@users.noreply.github.com>

Commit:e4c203d
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of renamed "stanza" to "block" for consistency with other projects into release/1.3.x (#15952) Co-authored-by: Piotr Kazmierczak <470696+pkazmierczak@users.noreply.github.com>

Commit:e8bd656
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of renamed "stanza" to "block" for consistency with other projects into release/1.2.x (#15951) Co-authored-by: Piotr Kazmierczak <470696+pkazmierczak@users.noreply.github.com>

Commit:949a6f6
Author:Piotr Kazmierczak
Committer:GitHub

renamed stanza to block for consistency with other projects (#15941)

Commit:1695ad2
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of Add mount propagation to protobuf definition of mounts into release/1.4.x (#15302) This pull request was automerged via backport-assistant

Commit:990d696
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of Add mount propagation to protobuf definition of mounts into release/1.2.x (#15301) This pull request was automerged via backport-assistant

Commit:cea543a
Author:hc-github-team-nomad-core
Committer:GitHub

Backport of Add mount propagation to protobuf definition of mounts into release/1.3.x (#15300) This pull request was automerged via backport-assistant

Commit:5ce42fe
Author:stswidwinski
Committer:GitHub

Add mount propagation to protobuf definition of mounts (#15096) * Add mount propagation to protobuf definition of mounts * Fix formatting * Add mount propagation to the simple roundtrip test. * changelog: add entry for #15096 Co-authored-by: Luiz Aoqui <luiz@hashicorp.com>

Commit:4667539
Author:Tim Gross
Committer:Tim Gross

[wip] logging plugins

Commit:aff6339
Author:James Rasell
Committer:Michael Schurter

allow configuration of Docker hostnames in bridge mode (#11173) Add a new hostname string parameter to the network block which allows operators to specify the hostname of the network namespace. Changing this causes a destructive update to the allocation and it is omitted if empty from API responses. This parameter also supports interpolation. In order to have a hostname passed as a configuration param when creating an allocation network, the CreateNetwork func of the DriverNetworkManager interface needs to be updated. In order to minimize the disruption of future changes, rather than add another string func arg, the function now accepts a request struct along with the allocID param. The struct has the hostname as a field. The in-tree implementations of DriverNetworkManager.CreateNetwork have been modified to account for the function signature change. In updating for the change, the enhancement of adding hostnames to network namespaces has also been added to the Docker driver, whilst the default Linux manager does not current implement it.

Commit:e34fa58
Author:James Rasell
Committer:GitHub

allow configuration of Docker hostnames in bridge mode (#11173) Add a new hostname string parameter to the network block which allows operators to specify the hostname of the network namespace. Changing this causes a destructive update to the allocation and it is omitted if empty from API responses. This parameter also supports interpolation. In order to have a hostname passed as a configuration param when creating an allocation network, the CreateNetwork func of the DriverNetworkManager interface needs to be updated. In order to minimize the disruption of future changes, rather than add another string func arg, the function now accepts a request struct along with the allocID param. The struct has the hostname as a field. The in-tree implementations of DriverNetworkManager.CreateNetwork have been modified to account for the function signature change. In updating for the change, the enhancement of adding hostnames to network namespaces has also been added to the Docker driver, whilst the default Linux manager does not current implement it.

Commit:8869c4d
Author:Seth Hoenig
Committer:Seth Hoenig

build: no longer use vendor directory This PR removes the vendor directory from the Nomad repository. Contributers will no longer need to deal with our `make sync` step when working on Nomad, which was suprising when making changes to the api. It also causes huge diffs in PRs that nobody looks at.

Commit:b27adce
Author:DerekStrickland
Committer:DerekStrickland

Add HTTP API v1 openapi spec

Commit:9fe77b3
Author:Luiz Aoqui

wip: opentelemetry poc

Commit:2a640f0
Author:Tim Gross
Committer:GitHub

docker: generate /etc/hosts file for bridge network mode (#10766) When `network.mode = "bridge"`, we create a pause container in Docker with no networking so that we have a process to hold the network namespace we create in Nomad. The default `/etc/hosts` file of that pause container is then used for all the Docker tasks that share that network namespace. Some applications rely on this file being populated. This changeset generates a `/etc/hosts` file and bind-mounts it to the container when Nomad owns the network, so that the container's hostname has an IP in the file as expected. The hosts file will include the entries added by the Docker driver's `extra_hosts` field. In this changeset, only the Docker task driver will take advantage of this option, as the `exec`/`java` drivers currently copy the host's `/etc/hosts` file and this can't be changed without breaking backwards compatibility. But the fields are available in the task driver protobuf for community task drivers to use if they'd like.

Commit:64fb3eb
Author:Mahmood Ali
Committer:Mahmood Ali

Update runc and protobuf dependency

Commit:2f924a9
Author:Seth Hoenig
Committer:Tim Gross

Merge pull request #10600 from hashicorp/f-exec-allow_caps drivers/exec+java: reduce default set of linux capabilities

Commit:191144c
Author:Seth Hoenig
Committer:Seth Hoenig

drivers/exec: enable setting allow_caps on exec driver This PR enables setting allow_caps on the exec driver plugin configuration, as well as cap_add and cap_drop in exec task configuration. These options replicate the functionality already present in the docker task driver. Important: this change also reduces the default set of capabilities enabled by the exec driver to match the default set enabled by the docker driver. Until v1.0.5 the exec task driver would enable all capabilities supported by the operating system. v1.0.5 removed NET_RAW from that list of default capabilities, but left may others which could potentially also be leveraged by compromised tasks. Important: the "root" user is still special cased when used with the exec driver. Older versions of Nomad enabled enabled all capabilities supported by the operating system for tasks set with the root user. To maintain compatibility with existing clusters we continue supporting this "feature", however we maintain support for the legacy set of capabilities rather than enabling all capabilities now supported on modern operating systems.

Commit:595cef8
Author:Seth Hoenig
Committer:Seth Hoenig

drivers/exec: pass capabilities through executor RPC Add capabilities to the LaunchRequest proto so that the capabilities set actually gets plumbed all the way through to task launch.

Commit:d50fb2a
Author:Michael Schurter
Committer:Michael Schurter

core: propagate remote task handles Add a new driver capability: RemoteTasks. When a task is run by a driver with RemoteTasks set, its TaskHandle will be propagated to the server in its allocation's TaskState. If the task is replaced due to a down node or draining, its TaskHandle will be propagated to its replacement allocation. This allows tasks to be scheduled in remote systems whose lifecycles are disconnected from the Nomad node's lifecycle. See https://github.com/hashicorp/nomad-driver-ecs for an example ECS remote task driver.

Commit:e834a60
Author:Nick Ethier

plugins/drivers: fix deprecated fields

Commit:9c014b6
Author:Nick Ethier

plugins/driver: add cpuset_cpus back and mark cpuset_mems as reserved

Commit:5377be4
Author:Nick Ethier
Committer:Nick Ethier

executor: add support for cpuset cgroup

Commit:cfb59ac
Author:Nick Ethier
Committer:Nick Ethier

executor: add support for cpuset cgroup

Commit:ce35ee3
Author:Seth Hoenig
Committer:Seth Hoenig

deps: upgrade go-plugin dependency This PR brings go-plugin up to date from ~v1.0.1 to v1.4.0 (about 18 months) with a grab-bag of bux fixes.

Commit:5e3fbd5
Author:Mahmood Ali
Committer:Mahmood Ali

oversubscription: driver/exec to honor MemoryMaxMB

Commit:d0e9de6
Author:Mahmood Ali
Committer:Mahmood Ali

pipe memoryMaxMB through grpc to drivers/executors

Commit:b682371
Author:Seth Hoenig
Committer:Seth Hoenig

drivers/exec+java: Add configuration to restore previous PID/IPC namespace behavior. This PR adds default_pid_mode and default_ipc_mode options to the exec and java task drivers. By default these will default to "private" mode, enabling PID and IPC isolation for tasks. Setting them to "host" mode disables isolation. Doing so is not recommended, but may be necessary to support legacy job configurations. Closes #9969

Commit:6d57a1c
Author:Mahmood Ali
Committer:GitHub

use comment ignores (#9448) Use targetted ignore comments for the cases where we are bound by backward compatibility. I've left some file based linters, especially when the file is riddled with linter voilations (e.g. enum names), or if it's a property of the file (e.g. package and file names). I encountered an odd behavior related to RPC_REQUEST_RESPONSE_UNIQUE and RPC_REQUEST_STANDARD_NAME. Apparently, if they target a `stream` type, we must separate them into separate lines so that the ignore comment targets the type specifically.

Commit:e877e42
Author:Kris Hicks
Committer:Kris Hicks

Switch event payload to oneof

Commit:83505b9
Author:Kris Hicks

Merge remote-tracking branch 'origin/master' into event/proto-service

Commit:3c9a856
Author:Drew Bailey
Committer:Drew Bailey

copy paste some waypoint glint structs/interfaces/pkgs

Commit:b3825e7
Author:Kris Hicks
Committer:GitHub

protos: Update .proto files not to use Go package name (#9301) Previously, it was required that you `go get github.com/hashicorp/nomad` to be able to build protos, as the protoc invocation added an include directive that pointed to `$GOPATH/src`, which is how dependent protos were discovered. As Nomad now uses Go modules, it won't necessarily be cloned to `$GOPATH`. (Additionally, if you _had_ go-gotten Nomad at some point, protoc compilation would have possibly used the _wrong_ protos, as those wouldn't necessarily be the most up-to-date ones.) This change modifies the proto files and the `protoc` invocation to handle discovering dependent protos via protoc plugin modifier statements that are specific to the protoc plugin being used. In this change, `make proto` was run to recompile the protos, which results in changes only to the gzipped `FileDescriptorProto`.

Commit:afdd95c
Author:Kris Hicks
Committer:Kris Hicks

Flesh out TestSinkServer_Subscribe The test passes, but it presently emits a listener error when the test ends.

Commit:ffb0c91
Author:Drew Bailey

exploratory work to add grpc endpoint for streaming events

Commit:965c766
Author:Drew Bailey

add proto file for subscribing and streaming events

Commit:f4ea3a5
Author:Seth Hoenig
Committer:Seth Hoenig

consul/connect: update consul to match current

Commit:5f7a8a0
Author:Yoan Blanc

vendor: consul v1.7.7 Signed-off-by: Yoan Blanc <yoan@dosimple.ch>

Commit:c11dbcd
Author:Nick Ethier
Committer:GitHub

docker: support group allocated ports and host_networks (#8623) * docker: support group allocated ports * docker: add new ports driver config to specify which group ports are mapped * docker: update port mapping docs

Commit:e9ff8a8
Author:Nick Ethier
Committer:Michael Schurter

Task DNS Options (#7661) Co-Authored-By: Tim Gross <tgross@hashicorp.com> Co-Authored-By: Seth Hoenig <shoenig@hashicorp.com>

Commit:15fb4c9
Author:Seth Hoenig
Committer:Seth Hoenig

deps: Switch to Go modules for dependency management This PR switches the Nomad repository from using govendor to Go modules for managing dependencies. Aspects of the Nomad workflow remain pretty much the same. The usual Makefile targets should continue to work as they always did. The API submodule simply defers to the parent Nomad version on the repository, keeping the semantics of API versioning that currently exists.

Commit:4b0fe71
Author:Tim Gross
Committer:Tim Gross

volumes: return better error messages for unsupported task drivers (#8030) When an allocation runs for a task driver that can't support volume mounts, the mounting will fail in a way that can be hard to understand. With host volumes this usually means failing silently, whereas with CSI the operator gets inscrutable internals exposed in the `nomad alloc status`. This changeset adds a MountConfig field to the task driver Capabilities response. We validate this when the `csi_hook` or `volume_hook` fires and return a user-friendly error. Note that we don't currently have a way to get driver capabilities up to the server, except through attributes. Validating this when the user initially submits the jobspec would be even better than what we're doing here (and could be useful for all our other capabilities), but that's out of scope for this changeset. Also note that the MountConfig enum starts with "supports all" in order to support community plugins in a backwards compatible way, rather than cutting them off from volume mounting unexpectedly.

Commit:8860b72
Author:Tim Gross
Committer:GitHub

volumes: return better error messages for unsupported task drivers (#8030) When an allocation runs for a task driver that can't support volume mounts, the mounting will fail in a way that can be hard to understand. With host volumes this usually means failing silently, whereas with CSI the operator gets inscrutable internals exposed in the `nomad alloc status`. This changeset adds a MountConfig field to the task driver Capabilities response. We validate this when the `csi_hook` or `volume_hook` fires and return a user-friendly error. Note that we don't currently have a way to get driver capabilities up to the server, except through attributes. Validating this when the user initially submits the jobspec would be even better than what we're doing here (and could be useful for all our other capabilities), but that's out of scope for this changeset. Also note that the MountConfig enum starts with "supports all" in order to support community plugins in a backwards compatible way, rather than cutting them off from volume mounting unexpectedly.

Commit:e128784
Author:Anthony Scalisi
Committer:GitHub

fix spelling errors (#6985)

Commit:493532b
Author:Mahmood Ali

remove vendor

Commit:120c244
Author:Mahmood Ali
Committer:Mahmood Ali

remove unused packages

Commit:b7ab84c
Author:Yoan Blanc

fixup! vendor: vendor.json cleanup Signed-off-by: Yoan Blanc <yoan@dosimple.ch>

Commit:d2ddef5
Author:Mahmood Ali
Committer:Mahmood Ali

update grpc Upgrade grpc to v1.27.1 and protobuf plugins to v1.3.4.

Commit:5a017ac
Author:Thomas Lefebvre
Committer:Thomas Lefebvre

client: support no_pivot_root in exec driver configuration

Commit:4e8e0a1
Author:Danielle Lancashire
Committer:Danielle Lancashire

vendor: golang/protobuf 1.1.0 -> 1.3.2

Commit:aa0e5ea
Author:Mahmood Ali
Committer:Mahmood Ali

Update github.com/shirou/gopsutil and docker libraries Update github.com/shirou/gopsutil and docker related libraries. I had to ugprade docker, because gopsutil required upgrades to shared libraries (golang.org/x/sys/..) that broke our old vendoring of docker libraries.

Commit:6c8f6c9
Author:Danielle Lancashire
Committer:Danielle Lancashire

vendor: golang/protobuf 1.1.0 -> 1.3.2

Commit:68c0a40
Author:Mahmood Ali

vendor: Update go-discover for AWS SDK change Update go-discover to pull in latest AWS SDK change through its vendored path, along with other provider changes.

Commit:d19bc8d
Author:Mahmood Ali
Committer:Mahmood Ali

nomad exec: Allow customizing environment variables When execing into a task, it's useful to be able to set some special environment variables, namely `TERM` and language environment variable. In this PR, we expose `env` parameter that takes an array of `KEY=VALUE` values that gets thread all the way through to executors exec handling. The main purpose is to allow configuring `TERM` for purposes of web ui, as the appropriate value would depend on the terminal library and not necessarily user friendly. CLI ---------- This PR doesn't expose this configuration to CLI due to some complexities: * It's not as valuable to set environment variables there (i.e. users can export their environment variables before running commands) * The `-e` flag is already used for escape character, and I'm unsure if how to best proceed; I can see the appeal of repurposing `-e` to env-variables as it's the most common thing * We use the standard library `flags` package that doesn't support string array flag to allow for multiple environment variables nicely. As such, I've punted on supporting the CLI for another time as the need arises. External drivers and compatibility ---------- This PR makes some changes to the exec endpoint in drivers. These changes are binary backward compatible: existing drivers continue to run against latest nomad binary as the grpc handler ignores the new `env` field. The drivers continue to compile as normal against the version they vendored or depended on. Though, when plugin authors upgrade the dependency they will need to update code to either handle the `env` field or explicitly ignore it.

Commit:43f45b8
Author:Mahmood Ali
Committer:Mahmood Ali

upgrade go-plugin to latest, 8091134 Upgrade go-plugin to latest to pick up Windows fix in https://github.com/hashicorp/go-plugin/pull/125 .

Commit:e17901d
Author:Tim Gross
Committer:Tim Gross

driver/networking: don't recreate existing network namespaces

Commit:0aa79ca
Author:Lang Martin
Committer:Lang Martin

govendor fetch github.com/hashicorp/go-getter@f5101da, protobuf 1.2

Commit:e26192a
Author:Nick Ethier
Committer:Nick Ethier

Driver networking support Adds support for passing network isolation config into drivers and implements support in the rawexec driver as a proof of concept

Commit:9fa47da
Author:Nick Ethier
Committer:Nick Ethier

ar: fix lint errors

Commit:e20fa7c
Author:Nick Ethier
Committer:Nick Ethier

Add network lifecycle management Adds a new Prerun and Postrun hooks to manage set up of network namespaces on linux. Work still needs to be done to make the code platform agnostic and support Docker style network initalization.

Commit:4e742ea
Author:Nick Ethier
Committer:Nick Ethier

Driver networking support Adds support for passing network isolation config into drivers and implements support in the rawexec driver as a proof of concept

Commit:df7fe15
Author:Nick Ethier
Committer:Nick Ethier

ar: fix lint errors

Commit:46367e3
Author:Nick Ethier
Committer:Nick Ethier

Add network lifecycle management Adds a new Prerun and Postrun hooks to manage set up of network namespaces on linux. Work still needs to be done to make the code platform agnostic and support Docker style network initalization.

Commit:c1c9953
Author:Mahmood Ali

mend

Commit:892f1b3
Author:Nick Ethier
Committer:Nick Ethier

Driver networking support Adds support for passing network isolation config into drivers and implements support in the rawexec driver as a proof of concept

Commit:fe38d0c
Author:Nick Ethier
Committer:Nick Ethier

ar: fix lint errors