open-nomad/client/allocrunner/taskrunner
Danielle Lancashire 78b61de45f
config: Hoist volume.config.source into volume
Currently, using a Volume in a job uses the following configuration:

```
volume "alias-name" {
  type = "volume-type"
  read_only = true

  config {
    source = "host_volume_name"
  }
}
```

This commit migrates to the following:

```
volume "alias-name" {
  type = "volume-type"
  source = "host_volume_name"
  read_only = true
}
```

The original design was based due to being uncertain about the future of storage
plugins, and to allow maxium flexibility.

However, this causes a few issues, namely:
- We frequently need to parse this configuration during submission,
scheduling, and mounting
- It complicates the configuration from and end users perspective
- It complicates the ability to do validation

As we understand the problem space of CSI a little more, it has become
clear that we won't need the `source` to be in config, as it will be
used in the majority of cases:

- Host Volumes: Always need a source
- Preallocated CSI Volumes: Always needs a source from a volume or claim name
- Dynamic Persistent CSI Volumes*: Always needs a source to attach the volumes
                                   to for managing upgrades and to avoid dangling.
- Dynamic Ephemeral CSI Volumes*: Less thought out, but `source` will probably point
                                  to the plugin name, and a `config` block will
                                  allow you to pass meta to the plugin. Or will
                                  point to a pre-configured ephemeral config.
*If implemented

The new design simplifies this by merging the source into the volume
stanza to solve the above issues with usability, performance, and error
handling.
2019-09-13 04:37:59 +02:00
..
getter taskrunner getter set Umask for go-getter, setuid test 2019-08-23 15:59:03 -04:00
interfaces client: fix tr lifecycle logic and shutdown delay 2018-11-05 12:32:05 -08:00
restarts Fix restart attempts of restart stanza. 2019-05-21 13:27:19 +02:00
state client: test logmon cleanup 2019-03-04 13:15:15 -08:00
template client/template: configuration for function blacklist and sandboxing 2019-08-12 16:34:48 -04:00
testdata executor/linux: make chroot binary paths absolute 2019-04-01 15:45:31 -07:00
artifact_hook.go client: ensure task is cleaned up when terminal 2019-03-01 14:00:23 -08:00
artifact_hook_test.go client: ensure task is cleaned up when terminal 2019-03-01 14:00:23 -08:00
device_hook.go Store device envs separately and pass to drivers 2018-12-19 14:23:09 -08:00
device_hook_test.go Device hook and devices affect computed node class 2018-11-27 17:25:33 -08:00
dispatch_hook.go client/state: support upgrading from 0.8->0.9 2018-12-19 10:39:27 -08:00
dispatch_hook_test.go use drivers.FSIsolation 2019-01-08 09:11:47 -05:00
driver_handle.go implement client endpoint of nomad exec 2019-05-09 16:49:08 -04:00
envoybootstrap_hook.go connect: add unix socket to proxy grpc for envoy (#6232) 2019-09-03 08:43:38 -07:00
envoybootstrap_hook_test.go connect: add unix socket to proxy grpc for envoy (#6232) 2019-09-03 08:43:38 -07:00
errors.go client: artifact errors are retry-able 2019-02-20 07:21:27 -08:00
errors_test.go client: artifact errors are retry-able 2019-02-20 07:21:27 -08:00
lazy_handle.go executor: implement streaming stats API 2019-01-12 12:18:22 -05:00
lifecycle.go tr: Fetch Wait channel before killTask in restart 2019-06-26 15:20:57 +02:00
logmon_hook.go retry grpc unavailable errors even if not shutting down 2019-04-25 18:39:17 -04:00
logmon_hook_test.go logmon: make Start rpc idempotent and simplify hook 2019-03-19 14:02:36 -04:00
logmon_hook_unix_test.go try checking process status 2019-04-25 18:16:13 -04:00
script_check_hook.go script checks: Update needs to update Alloc as well (#6291) 2019-09-06 11:18:00 -04:00
script_check_hook_test.go client: recreate script checks on Update (#6265) 2019-09-05 11:43:23 -04:00
service_hook.go Consul service meta (#6193) 2019-08-23 12:49:02 -04:00
service_hook_test.go consul: fix task deregistration hook 2019-02-12 15:36:02 -08:00
stats_hook.go log unrecoverable errors 2019-07-17 11:01:59 +07:00
stats_hook_test.go executor: implement streaming stats API 2019-01-12 12:18:22 -05:00
task_dir_hook.go client: ensure task is cleaned up when terminal 2019-03-01 14:00:23 -08:00
task_runner.go Merge pull request #6065 from hashicorp/b-nil-driver-exec 2019-08-02 09:48:28 -05:00
task_runner_getters.go Merge pull request #5518 from hashicorp/f-simplify-kill 2019-04-15 14:11:58 -07:00
task_runner_hooks.go support script checks for task group services (#6197) 2019-09-03 15:09:04 -04:00
task_runner_test.go cleanup test 2019-06-18 14:15:25 +00:00
tasklet.go support script checks for task group services (#6197) 2019-09-03 15:09:04 -04:00
tasklet_test.go support script checks for task group services (#6197) 2019-09-03 15:09:04 -04:00
template_hook.go client: Rename drivers/shared/env => client/taskenv 2018-11-30 12:18:39 +01:00
validate_hook.go client: Rename drivers/shared/env => client/taskenv 2018-11-30 12:18:39 +01:00
validate_hook_test.go client: Rename drivers/shared/env => client/taskenv 2018-11-30 12:18:39 +01:00
vault_hook.go emit TaskRestartSignal event on vault restart 2019-02-22 15:56:14 -05:00
vault_hook_test.go client: support graceful shutdowns 2018-11-19 16:39:30 -08:00
volume_hook.go config: Hoist volume.config.source into volume 2019-09-13 04:37:59 +02:00