Documentation ¶
Overview ¶
Package containerbroker worker sole responsibility is to manage the lifecycle of a instance-broker. Configuration of the instance-broker relies on talking to the provisioner to ensure that we correctly configure the correct availability zones. Failure to do so, will result in an error.
The instance-broker is created for LXD types only and any other container types cause the worker to uninstall itself.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Manifold ¶
func Manifold(config ManifoldConfig) dependency.Manifold
Manifold returns a Manifold that encapsulates a *Tracker and exposes it as an Broker resource.
func NewWorkerTracker ¶
NewWorkerTracker defines a function that is covariant in the return type so that the manifold can use the covariance of the function as an alias.
Types ¶
type Config ¶
type Config struct { APICaller base.APICaller AgentConfig agent.Config MachineLock machinelock.Lock NewBrokerFunc func(broker.Config) (environs.InstanceBroker, error) NewStateFunc func(base.APICaller) State }
Config describes the dependencies of a Tracker.
It's arguable that it should be called TrackerConfig, because of the heavy use of model config in this package.
type ManifoldConfig ¶
type ManifoldConfig struct { AgentName string APICallerName string MachineLock machinelock.Lock NewBrokerFunc func(broker.Config) (environs.InstanceBroker, error) NewTracker func(Config) (worker.Worker, error) }
ManifoldConfig describes the resources used by a Tracker.
func (ManifoldConfig) Validate ¶
func (config ManifoldConfig) Validate() error
Validate validates the manifold configuration.
type State ¶
type State interface { broker.APICalls Machines(...names.MachineTag) ([]provisioner.MachineResult, error) ContainerManagerConfig(params.ContainerManagerConfigParams) (params.ContainerManagerConfig, error) }
State represents the interaction for the apiserver
type Tracker ¶
type Tracker struct {
// contains filtered or unexported fields
}
Tracker loads a broker, makes it available to clients, and updates the broker in response to config changes until it is killed.
func NewTracker ¶
NewTracker returns a new Tracker, or an error if anything goes wrong. If a tracker is returned, its Broker() method is immediately usable.
The caller is responsible for Kill()ing the returned Tracker and Wait()ing for any errors it might return.
func (*Tracker) Broker ¶
func (t *Tracker) Broker() environs.InstanceBroker
Broker returns the encapsulated Broker. It will continue to be updated in the background for as long as the Tracker continues to run.