caasunitprovisioner

package
v0.0.0-...-8ff1004 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2019 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

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.

func NewWorker

func NewWorker(config Config) (worker.Worker, error)

NewWorker starts and returns a new CAAS unit provisioner worker.

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

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.

func (Config) Validate

func (config Config) Validate() error

Validate validates the worker configuration.

type ContainerBroker

type ContainerBroker interface {
	Provider() caas.ContainerEnvironProvider
	WatchUnits(appName string) (watcher.NotifyWatcher, error)
	Units(appName string) ([]caas.Unit, error)
	WatchOperator(string) (watcher.NotifyWatcher, error)
	Operator(string) (*caas.Operator, error)
}

type LifeGetter

type LifeGetter interface {
	Life(string) (life.Value, error)
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL