github.com/juju/juju@v0.0.0-20240327075706-a90865de2538/worker/caasunitprovisioner/broker.go (about) 1 // Copyright 2017 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package caasunitprovisioner 5 6 import ( 7 "github.com/juju/names/v5" 8 9 "github.com/juju/juju/caas" 10 "github.com/juju/juju/core/config" 11 "github.com/juju/juju/core/watcher" 12 ) 13 14 type ContainerBroker interface { 15 Provider() caas.ContainerEnvironProvider 16 WatchOperator(string) (watcher.NotifyWatcher, error) 17 Operator(string) (*caas.Operator, error) 18 19 WatchUnits(appName string, mode caas.DeploymentMode) (watcher.NotifyWatcher, error) 20 Units(appName string, mode caas.DeploymentMode) ([]caas.Unit, error) 21 AnnotateUnit(appName string, mode caas.DeploymentMode, podName string, unit names.UnitTag) error 22 } 23 24 type ServiceBroker interface { 25 Provider() caas.ContainerEnvironProvider 26 EnsureService(appName string, statusCallback caas.StatusCallbackFunc, params *caas.ServiceParams, numUnits int, config config.ConfigAttributes) error 27 DeleteService(appName string) error 28 UnexposeService(appName string) error 29 30 GetService(appName string, mode caas.DeploymentMode, includeClusterIP bool) (*caas.Service, error) 31 WatchService(appName string, mode caas.DeploymentMode) (watcher.NotifyWatcher, error) 32 }