open-nomad/drivers/shared/executor
Tim Gross eabbcebdd4
exec: allow running commands from host volume (#14851)
The exec driver and other drivers derived from the shared executor check the
path of the command before handing off to libcontainer to ensure that the
command doesn't escape the sandbox. But we don't check any host volume mounts,
which should be safe to use as a source for executables if we're letting the
user mount them to the container in the first place.

Check the mount config to verify the executable lives in the mount's host path,
but then return an absolute path within the mount's task path so that we can hand
that off to libcontainer to run.

Includes a good bit of refactoring here because the anchoring of the final task
path has different code paths for inside the task dir vs inside a mount. But
I've fleshed out the test coverage of this a good bit to ensure we haven't
created any regressions in the process.
2022-11-11 09:51:15 -05:00
..
proto drivers/exec: pass capabilities through executor RPC 2021-05-17 12:37:40 -06:00
test-resources/busybox tests: busybox only depends on arch 2019-01-07 08:36:32 -05:00
exec_utils.go Apply some suggested fixes from staticcheck (#9598) 2020-12-10 07:29:18 -08:00
executor.go raw_exec: make raw exec driver work with cgroups v2 2022-04-04 16:11:38 -05:00
executor_basic.go raw_exec: make raw exec driver work with cgroups v2 2022-04-04 16:11:38 -05:00
executor_linux.go exec: allow running commands from host volume (#14851) 2022-11-11 09:51:15 -05:00
executor_linux_test.go exec: allow running commands from host volume (#14851) 2022-11-11 09:51:15 -05:00
executor_plugin.go goimports 2019-01-22 15:44:31 -08:00
executor_test.go test: use `T.TempDir` to create temporary test directory (#12853) 2022-05-12 11:42:40 -04:00
executor_universal_linux.go client: protect user lookups with global lock (#14742) 2022-09-29 09:30:13 -05:00
executor_unix.go raw_exec: make raw exec driver work with cgroups v2 2022-04-04 16:11:38 -05:00
executor_windows.go raw_exec: make raw exec driver work with cgroups v2 2022-04-04 16:11:38 -05:00
grpc_client.go client: enable support for cgroups v2 2022-03-23 11:35:27 -05:00
grpc_server.go deps: remove deprecated net/context (#13932) 2022-07-28 14:46:56 -04:00
libcontainer_nsenter_linux.go comment on using init() for libcontainer handling 2019-04-19 09:49:04 -04:00
pid_collector.go raw_exec: make raw exec driver work with cgroups v2 2022-04-04 16:11:38 -05:00
pid_collector_test.go ci: swap ci parallelization for unconstrained gomaxprocs 2022-03-15 12:58:52 -05:00
plugins.go remove pre-0.9 driver code and related E2E test (#12791) 2022-04-27 09:53:37 -04:00
pty_unix.go deps: pty has new home 2022-01-19 12:33:05 -06:00
pty_windows.go gofmt all the files 2021-10-01 10:14:28 -04:00
resource_container_default.go raw_exec: make raw exec driver work with cgroups v2 2022-04-04 16:11:38 -05:00
utils.go remove pre-0.9 driver code and related E2E test (#12791) 2022-04-27 09:53:37 -04:00
utils_test.go drivers/exec+java: Add task configuration to restore previous PID/IPC isolation behavior 2021-02-08 14:26:35 -06:00
utils_unix.go gofmt all the files 2021-10-01 10:14:28 -04:00
utils_windows.go executor: merge plugin shim with executor package 2018-12-06 21:13:45 -05:00
z_executor_cmd.go drivers: remove duplicate import statements. 2021-06-11 09:38:09 +02:00