Documentation ¶
Index ¶
- func Manifold(config ManifoldConfig) dependency.Manifold
- func NewWorker(config Config) (worker.Worker, error)
- type ApplicationGetter
- type ApplicationUpdater
- type Client
- type Config
- type ContainerBroker
- type LifeGetter
- type ManifoldConfig
- type ProvisioningInfoGetter
- type ProvisioningStatusSetter
- type ServiceBroker
- type UnitUpdater
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Manifold ¶
func Manifold(config ManifoldConfig) dependency.Manifold
Manifold creates a manifold that runs a CAAS unit provisioner. See the ManifoldConfig type for discussion about how this can/should evolve.
Types ¶
type ApplicationGetter ¶
type ApplicationGetter interface { WatchApplications() (watcher.StringsWatcher, error) ApplicationConfig(string) (application.ConfigAttributes, error) WatchApplicationScale(string) (watcher.NotifyWatcher, error) ApplicationScale(string) (int, error) }
ApplicationGetter provides an interface for watching for the lifecycle state changes (including addition) of applications in the model, and fetching their details.
type ApplicationUpdater ¶
type ApplicationUpdater interface {
UpdateApplicationService(arg params.UpdateApplicationServiceArg) error
}
ApplicationUpdater provides an interface for updating Juju applications from changes in the cloud.
type Client ¶
type Client interface { ApplicationGetter ApplicationUpdater ProvisioningInfoGetter LifeGetter UnitUpdater ProvisioningStatusSetter }
Client provides an interface for interacting with the CAASUnitProvisioner API. Subsets of this should be passed to the CAASUnitProvisioner worker.
type Config ¶
type Config struct { ApplicationGetter ApplicationGetter ApplicationUpdater ApplicationUpdater ServiceBroker ServiceBroker ContainerBroker ContainerBroker ProvisioningInfoGetter ProvisioningInfoGetter ProvisioningStatusSetter ProvisioningStatusSetter LifeGetter LifeGetter UnitUpdater UnitUpdater }
Config holds configuration for the CAAS unit provisioner worker.
type ContainerBroker ¶
type LifeGetter ¶
LifeGetter provides an interface for getting the lifecycle state value for an application or unit.
type ManifoldConfig ¶
type ManifoldConfig struct { APICallerName string BrokerName string NewClient func(base.APICaller) Client NewWorker func(Config) (worker.Worker, error) }
ManifoldConfig defines a CAAS unit provisioner's dependencies.
func (ManifoldConfig) Validate ¶
func (config ManifoldConfig) Validate() error
Validate is called by start to check for bad configuration.
type ProvisioningInfoGetter ¶
type ProvisioningInfoGetter interface { ProvisioningInfo(appName string) (*apicaasunitprovisioner.ProvisioningInfo, error) WatchPodSpec(appName string) (watcher.NotifyWatcher, error) }
ProvisioningInfoGetter provides an interface for watching and getting the pod spec and other info needed to provision an application.
type ProvisioningStatusSetter ¶
type ProvisioningStatusSetter interface { // SetOperatorStatus sets the status for the application operator. SetOperatorStatus(appName string, status status.Status, message string, data map[string]interface{}) error }
ProvisioningStatusSetter provides an interface for setting status information.
type ServiceBroker ¶
type ServiceBroker interface { Provider() caas.ContainerEnvironProvider EnsureService(appName string, statusCallback caas.StatusCallbackFunc, params *caas.ServiceParams, numUnits int, config application.ConfigAttributes) error EnsureCustomResourceDefinition(appName string, podSpec *caas.PodSpec) error Service(appName string) (*caas.Service, error) DeleteService(appName string) error UnexposeService(appName string) error }
type UnitUpdater ¶
type UnitUpdater interface {
UpdateUnits(arg params.UpdateApplicationUnits) error
}
UnitUpdater provides an interface for updating Juju units from changes in the cloud.