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.