2018-10-04 23:22:01 +00:00
|
|
|
package allocrunner
|
2018-06-22 00:35:07 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
log "github.com/hashicorp/go-hclog"
|
2018-08-23 19:03:17 +00:00
|
|
|
"github.com/hashicorp/nomad/client/allocwatcher"
|
2018-06-22 00:35:07 +00:00
|
|
|
clientconfig "github.com/hashicorp/nomad/client/config"
|
2018-07-20 00:40:25 +00:00
|
|
|
"github.com/hashicorp/nomad/client/consul"
|
2018-07-19 00:06:44 +00:00
|
|
|
"github.com/hashicorp/nomad/client/interfaces"
|
2018-08-08 00:46:37 +00:00
|
|
|
cstate "github.com/hashicorp/nomad/client/state"
|
2018-07-12 23:15:33 +00:00
|
|
|
"github.com/hashicorp/nomad/client/vaultclient"
|
2018-06-22 00:35:07 +00:00
|
|
|
"github.com/hashicorp/nomad/nomad/structs"
|
2018-10-04 19:08:20 +00:00
|
|
|
"github.com/hashicorp/nomad/plugins/shared/loader"
|
2018-06-22 00:35:07 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// Config holds the configuration for creating an allocation runner.
|
|
|
|
type Config struct {
|
|
|
|
// Logger is the logger for the allocation runner.
|
|
|
|
Logger log.Logger
|
|
|
|
|
|
|
|
// ClientConfig is the clients configuration.
|
|
|
|
ClientConfig *clientconfig.Config
|
|
|
|
|
2018-06-29 00:01:05 +00:00
|
|
|
// Alloc captures the allocation that should be run.
|
|
|
|
Alloc *structs.Allocation
|
2018-06-22 00:35:07 +00:00
|
|
|
|
|
|
|
// StateDB is used to store and restore state.
|
2018-08-08 00:46:37 +00:00
|
|
|
StateDB cstate.StateDB
|
2018-06-22 00:35:07 +00:00
|
|
|
|
2018-07-20 00:40:25 +00:00
|
|
|
// Consul is the Consul client used to register task services and checks
|
|
|
|
Consul consul.ConsulServiceAPI
|
|
|
|
|
2018-07-12 23:15:33 +00:00
|
|
|
// Vault is the Vault client to use to retrieve Vault tokens
|
|
|
|
Vault vaultclient.VaultClient
|
|
|
|
|
2018-07-19 00:06:44 +00:00
|
|
|
// StateUpdater is used to emit updated task state
|
|
|
|
StateUpdater interfaces.AllocStateHandler
|
2018-08-23 19:03:17 +00:00
|
|
|
|
2018-11-15 15:13:14 +00:00
|
|
|
// deviceStatsReporter is used to lookup resource usage for alloc devices
|
|
|
|
DeviceStatsReporter interfaces.DeviceStatsReporter
|
|
|
|
|
2018-08-23 19:03:17 +00:00
|
|
|
// PrevAllocWatcher handles waiting on previous allocations and
|
|
|
|
// migrating their ephemeral disk when necessary.
|
|
|
|
PrevAllocWatcher allocwatcher.PrevAllocWatcher
|
2018-10-04 19:08:20 +00:00
|
|
|
|
|
|
|
// PluginLoader is used to load plugins.
|
|
|
|
PluginLoader loader.PluginCatalog
|
|
|
|
|
|
|
|
// PluginSingletonLoader is a plugin loader that will returns singleton
|
|
|
|
// instances of the plugins.
|
|
|
|
PluginSingletonLoader loader.PluginCatalog
|
2018-06-22 00:35:07 +00:00
|
|
|
}
|