78b61de45f
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. |
||
---|---|---|
.. | ||
contexts | ||
internal/testutil | ||
acl.go | ||
acl_test.go | ||
agent.go | ||
agent_test.go | ||
allocations.go | ||
allocations_test.go | ||
api.go | ||
api_test.go | ||
compose_test.go | ||
constraint.go | ||
constraint_test.go | ||
deployments.go | ||
evaluations.go | ||
evaluations_test.go | ||
fs.go | ||
fs_test.go | ||
go.mod | ||
go.sum | ||
jobs.go | ||
jobs_test.go | ||
namespace.go | ||
namespace_test.go | ||
nodes.go | ||
nodes_test.go | ||
operator.go | ||
operator_autopilot.go | ||
operator_test.go | ||
quota.go | ||
quota_test.go | ||
raw.go | ||
regions.go | ||
regions_test.go | ||
resources.go | ||
search.go | ||
search_test.go | ||
sentinel.go | ||
sentinel_test.go | ||
services.go | ||
services_test.go | ||
status.go | ||
status_test.go | ||
system.go | ||
system_test.go | ||
tasks.go | ||
tasks_test.go | ||
util_test.go | ||
utils.go | ||
utils_test.go |