• Tim Gross's avatar
    CSI: allow for concurrent plugin allocations (#12078) · 7bcf0afd
    Tim Gross authored
    The dynamic plugin registry assumes that plugins are singletons, which
    matches the behavior of other Nomad plugins. But because dynamic
    plugins like CSI are implemented by allocations, we need to handle the
    possibility of multiple allocations for a given plugin type + ID, as
    well as behaviors around interleaved allocation starts and stops.
    
    Update the data structure for the dynamic registry so that more recent
    allocations take over as the instance manager singleton, but we still
    preserve the previous running allocations so that restores work
    without racing.
    
    Multiple allocations can run on a client for the same plugin, even if
    only during updates. Provide each plugin task a unique path for the
    control socket so that the tasks don't interfere with each other.
    7bcf0afd