Documentation
¶
Index ¶
- Variables
- func Register(name PluginName, plugin Plugin)
- type BootstrapPlugin
- type CaPlugin
- type ConfigStorePlugin
- type DbVersion
- type MutablePluginContext
- type MutableRegistry
- type Plugin
- type PluginConfig
- type PluginContext
- type PluginName
- type PolicyPlugin
- type RegisteredPolicyPlugin
- type Registry
- type RegistryMutator
- type ResourceStorePlugin
- type RuntimePlugin
Constants ¶
This section is empty.
Variables ¶
var AlreadyMigrated = errors.New("database already migrated")
var EnvironmentPreparedOrder = EnvironmentPreparingOrder + 1
EnvironmentPreparedOrder describes an order at which you can put a plugin and expect that the base environment is already configured by Universal/Kubernetes plugins.
var EnvironmentPreparingOrder = 0
EnvironmentPreparingOrder describes an order at which base environment plugins (Universal/Kubernetes) configure the control plane.
Functions ¶
func Register ¶
func Register(name PluginName, plugin Plugin)
Types ¶
type BootstrapPlugin ¶
type BootstrapPlugin interface {
Plugin
BeforeBootstrap(*MutablePluginContext, PluginConfig) error
AfterBootstrap(*MutablePluginContext, PluginConfig) error
Name() PluginName
// Order defines an order in which plugins are applied on the control plane.
// If you don't have specific need, consider using EnvironmentPreparedOrder
Order() int
}
BootstrapPlugin is responsible for environment-specific initialization at start up, e.g. Kubernetes-specific part of configuration. Unlike other plugins, can mutate plugin context directly.
type CaPlugin ¶
type CaPlugin interface {
Plugin
NewCaManager(PluginContext, PluginConfig)
}
type ConfigStorePlugin ¶
type ConfigStorePlugin interface {
Plugin
NewConfigStore(PluginContext, PluginConfig) (core_store.ResourceStore, error)
}
ConfigStorePlugin is responsible for instantiating a particular ConfigStore.
type DbVersion ¶
type DbVersion = uint
ResourceStorePlugin is responsible for instantiating a particular ResourceStore.
type MutablePluginContext ¶
type MutablePluginContext = core_runtime.Builder
type MutableRegistry ¶
type MutableRegistry interface {
Registry
RegistryMutator
}
func NewRegistry ¶
func NewRegistry() MutableRegistry
type PluginConfig ¶
type PluginConfig interface{}
type PluginContext ¶
type PluginContext = core_runtime.BuilderContext
type PluginName ¶
type PluginName string
const ( Kubernetes PluginName = "k8s" Universal PluginName = "universal" Memory PluginName = "memory" Zookeeper PluginName = "zookeeper" Traditional PluginName = "traditional" Nacos PluginName = "nacos" MySQL PluginName = "mysql" CaBuiltin PluginName = "builtin" )
type PolicyPlugin ¶
type PolicyPlugin interface {
Plugin
// MatchedPolicies accessible in Apply through `proxy.Policies.Dynamic`
MatchedPolicies(dataplane *core_mesh.DataplaneResource, resource xds_context.Resources) (core_xds.TypedMatchingPolicies, error)
// Apply to `rs` using the `ctx` and `proxy` the mutation for all policies of the type this plugin implements.
// You can access matching policies by using `proxy.Policies.Dynamic`.
Apply(rs *core_xds.ResourceSet, ctx xds_context.Context, proxy *core_xds.Proxy) error
}
PolicyPlugin a plugin to add a Policy to dubbo
type RegisteredPolicyPlugin ¶
type RegisteredPolicyPlugin struct {
Plugin PolicyPlugin
Name PluginName
}
type Registry ¶
type Registry interface {
BootstrapPlugins() []BootstrapPlugin
ResourceStore(name PluginName) (ResourceStorePlugin, error)
ConfigStore(name PluginName) (ConfigStorePlugin, error)
RuntimePlugins() map[PluginName]RuntimePlugin
PolicyPlugins([]PluginName) []RegisteredPolicyPlugin
}
type RegistryMutator ¶
type RegistryMutator interface {
Register(PluginName, Plugin) error
}
type ResourceStorePlugin ¶
type ResourceStorePlugin interface {
Plugin
NewResourceStore(PluginContext, PluginConfig) (core_store.ResourceStore, core_store.Transactions, error)
Migrate(PluginContext, PluginConfig) (DbVersion, error)
EventListener(PluginContext, events.Emitter) error
}
ResourceStorePlugin is responsible for instantiating a particular ResourceStore.
type RuntimePlugin ¶
type RuntimePlugin interface {
Plugin
Customize(core_runtime.Runtime) error
}
RuntimePlugin is responsible for registering environment-specific components, e.g. Kubernetes admission web hooks.