Documentation
¶
Index ¶
- func GetPluginInitializers() map[string]InitFunc
- func RegisterPluginInitializer(name string, initFunc InitFunc)
- type DummyIndicatorPlugin
- func (d DummyIndicatorPlugin) GetSupportedBusinessIndicatorSpec() []apiworkload.ServiceBusinessIndicatorName
- func (d DummyIndicatorPlugin) GetSupportedBusinessIndicatorStatus() []apiworkload.ServiceBusinessIndicatorName
- func (d DummyIndicatorPlugin) GetSupportedSystemIndicatorSpec() []apiworkload.TargetIndicatorName
- func (d DummyIndicatorPlugin) Name() string
- func (d DummyIndicatorPlugin) Run()
- type IndicatorGetter
- type IndicatorManager
- func (u *IndicatorManager) AddBusinessIndicatorSpec(nn types.NamespacedName, indicators []apiworkload.ServiceBusinessIndicatorSpec)
- func (u *IndicatorManager) AddBusinessIndicatorStatus(nn types.NamespacedName, ...)
- func (u *IndicatorManager) AddSystemIndicatorSpec(nn types.NamespacedName, indicators []apiworkload.ServiceSystemIndicatorSpec)
- func (u *IndicatorManager) GetIndicatorSpec(nn types.NamespacedName) *apiworkload.ServiceProfileDescriptorSpec
- func (u *IndicatorManager) GetIndicatorSpecChan() chan types.NamespacedName
- func (u *IndicatorManager) GetIndicatorStatus(nn types.NamespacedName) *apiworkload.ServiceProfileDescriptorStatus
- func (u *IndicatorManager) GetIndicatorStatusChan() chan types.NamespacedName
- type IndicatorPlugin
- type IndicatorUpdater
- type InitFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetPluginInitializers ¶
GetPluginInitializers returns initialized functions of indicator plugins
func RegisterPluginInitializer ¶
RegisterPluginInitializer is used to register user-defined indicator plugins
Types ¶
type DummyIndicatorPlugin ¶
type DummyIndicatorPlugin struct {
SystemSpecNames []apiworkload.TargetIndicatorName
BusinessSpecNames []apiworkload.ServiceBusinessIndicatorName
BusinessStatusNames []apiworkload.ServiceBusinessIndicatorName
}
func (DummyIndicatorPlugin) GetSupportedBusinessIndicatorSpec ¶
func (d DummyIndicatorPlugin) GetSupportedBusinessIndicatorSpec() []apiworkload.ServiceBusinessIndicatorName
func (DummyIndicatorPlugin) GetSupportedBusinessIndicatorStatus ¶
func (d DummyIndicatorPlugin) GetSupportedBusinessIndicatorStatus() []apiworkload.ServiceBusinessIndicatorName
func (DummyIndicatorPlugin) GetSupportedSystemIndicatorSpec ¶
func (d DummyIndicatorPlugin) GetSupportedSystemIndicatorSpec() []apiworkload.TargetIndicatorName
func (DummyIndicatorPlugin) Name ¶
func (d DummyIndicatorPlugin) Name() string
func (DummyIndicatorPlugin) Run ¶
func (d DummyIndicatorPlugin) Run()
type IndicatorGetter ¶
type IndicatorGetter interface {
// GetIndicatorSpecChan + GetIndicatorStatusChan
// returns a channel to obtain the whether an update action has been triggered.
GetIndicatorSpecChan() chan types.NamespacedName
GetIndicatorStatusChan() chan types.NamespacedName
// GetIndicatorSpec + GetIndicatorStatus
// for indicator get functions, IndicatorUpdater will return a channel to obtain the merged results.
GetIndicatorSpec(_ types.NamespacedName) *apiworkload.ServiceProfileDescriptorSpec
GetIndicatorStatus(_ types.NamespacedName) *apiworkload.ServiceProfileDescriptorStatus
}
IndicatorGetter is used by spd controller as indicator notifier to trigger update real spd.
type IndicatorManager ¶
type IndicatorManager struct {
// contains filtered or unexported fields
}
func NewIndicatorManager ¶
func NewIndicatorManager() *IndicatorManager
func (*IndicatorManager) AddBusinessIndicatorSpec ¶
func (u *IndicatorManager) AddBusinessIndicatorSpec(nn types.NamespacedName, indicators []apiworkload.ServiceBusinessIndicatorSpec)
func (*IndicatorManager) AddBusinessIndicatorStatus ¶
func (u *IndicatorManager) AddBusinessIndicatorStatus(nn types.NamespacedName, indicators []apiworkload.ServiceBusinessIndicatorStatus)
func (*IndicatorManager) AddSystemIndicatorSpec ¶
func (u *IndicatorManager) AddSystemIndicatorSpec(nn types.NamespacedName, indicators []apiworkload.ServiceSystemIndicatorSpec)
func (*IndicatorManager) GetIndicatorSpec ¶
func (u *IndicatorManager) GetIndicatorSpec(nn types.NamespacedName) *apiworkload.ServiceProfileDescriptorSpec
func (*IndicatorManager) GetIndicatorSpecChan ¶
func (u *IndicatorManager) GetIndicatorSpecChan() chan types.NamespacedName
func (*IndicatorManager) GetIndicatorStatus ¶
func (u *IndicatorManager) GetIndicatorStatus(nn types.NamespacedName) *apiworkload.ServiceProfileDescriptorStatus
func (*IndicatorManager) GetIndicatorStatusChan ¶
func (u *IndicatorManager) GetIndicatorStatusChan() chan types.NamespacedName
type IndicatorPlugin ¶
type IndicatorPlugin interface {
// Run starts the main loop for indicator plugin
Run()
Name() string
// GetSupportedBusinessIndicatorSpec + GetSupportedSystemIndicatorSpec + GetSupportedBusinessIndicatorStatus
// Those methods below returns the supported indicator names, if any name
// is not supported by any indicator plugin, the controller will clear in CR.
GetSupportedBusinessIndicatorSpec() []apiworkload.ServiceBusinessIndicatorName
GetSupportedSystemIndicatorSpec() []apiworkload.TargetIndicatorName
GetSupportedBusinessIndicatorStatus() []apiworkload.ServiceBusinessIndicatorName
}
IndicatorPlugin represent an implementation for indicator sources; each plugin will implement its own indicator-obtain logic and use IndicatorUpdater to set the latest indicator info.
type IndicatorUpdater ¶
type IndicatorUpdater interface {
// AddBusinessIndicatorSpec + AddSystemIndicatorSpec + AddBusinessIndicatorStatus
// for indicator add functions, IndicatorUpdater will try to merge them in local stores.
AddBusinessIndicatorSpec(_ types.NamespacedName, _ []apiworkload.ServiceBusinessIndicatorSpec)
AddSystemIndicatorSpec(_ types.NamespacedName, _ []apiworkload.ServiceSystemIndicatorSpec)
AddBusinessIndicatorStatus(_ types.NamespacedName, _ []apiworkload.ServiceBusinessIndicatorStatus)
}
IndicatorUpdater is used by IndicatorPlugin as a unified implementation to trigger indicator updating logic.
type InitFunc ¶
type InitFunc func(ctx context.Context, conf *controller.SPDConfig, extraConf interface{}, spdWorkloadInformer map[schema.GroupVersionResource]native.DynamicInformer, controlCtx *katalystbase.GenericContext, updater IndicatorUpdater) (IndicatorPlugin, error)
Click to show internal directories.
Click to hide internal directories.