246db87a74
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.
10 lines
247 B
Go
10 lines
247 B
Go
package state
|
|
|
|
import "github.com/hashicorp/nomad/client/dynamicplugins"
|
|
|
|
// RegistryState12 is the dynamic plugin registry state persisted
|
|
// before 1.3.0.
|
|
type RegistryState12 struct {
|
|
Plugins map[string]map[string]*dynamicplugins.PluginInfo
|
|
}
|