mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
f2614f2107
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
45 lines
1.3 KiB
Go
45 lines
1.3 KiB
Go
package exec
|
|
|
|
import (
|
|
"github.com/docker/swarmkit/api"
|
|
"golang.org/x/net/context"
|
|
)
|
|
|
|
// Executor provides controllers for tasks.
|
|
type Executor interface {
|
|
// Describe returns the underlying node description.
|
|
Describe(ctx context.Context) (*api.NodeDescription, error)
|
|
|
|
// Configure uses the node object state to propagate node
|
|
// state to the underlying executor.
|
|
Configure(ctx context.Context, node *api.Node) error
|
|
|
|
// Controller provides a controller for the given task.
|
|
Controller(t *api.Task) (Controller, error)
|
|
|
|
// SetNetworkBootstrapKeys passes the symmetric keys from the
|
|
// manager to the executor.
|
|
SetNetworkBootstrapKeys([]*api.EncryptionKey) error
|
|
}
|
|
|
|
// SecretsProvider is implemented by objects that can store secrets, typically
|
|
// an executor.
|
|
type SecretsProvider interface {
|
|
Secrets() SecretsManager
|
|
}
|
|
|
|
// SecretGetter contains secret data necessary for the Controller.
|
|
type SecretGetter interface {
|
|
// Get returns the the secret with a specific secret ID, if available.
|
|
// When the secret is not available, the return will be nil.
|
|
Get(secretID string) *api.Secret
|
|
}
|
|
|
|
// SecretsManager is the interface for secret storage and updates.
|
|
type SecretsManager interface {
|
|
SecretGetter
|
|
|
|
Add(secrets ...api.Secret) // add one or more secrets
|
|
Remove(secrets []string) // remove the secrets by ID
|
|
Reset() // remove all secrets
|
|
}
|