plugins

package
v1.5.0-rc2 Latest Latest
Warning

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

Go to latest
Published: Feb 18, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AlreadyMigrated = errors.New("database already migrated")
View Source
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.

View Source
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 AuthnAPIServerPlugin added in v1.8.1

type AuthnAPIServerPlugin interface {
	Plugin
	NewAuthenticator(PluginContext) (authn.Authenticator, error)
}

AuthnAPIServerPlugin is responsible for providing authenticator for API Server.

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) (core_ca.Manager, error)
}

CaPlugin is responsible for providing Certificate Authority Manager

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 Plugin

type Plugin interface{}

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"
	Postgres   PluginName = "postgres"

	CaBuiltin  PluginName = "builtin"
	CaProvided PluginName = "provided"
)

type Registry

type Registry interface {
	BootstrapPlugins() []BootstrapPlugin
	BootstrapPlugin(name PluginName) (BootstrapPlugin, error)
	ResourceStore(name PluginName) (ResourceStorePlugin, error)
	SecretStore(name PluginName) (SecretStorePlugin, error)
	ConfigStore(name PluginName) (ConfigStorePlugin, error)
	RuntimePlugins() map[PluginName]RuntimePlugin
	CaPlugins() map[PluginName]CaPlugin
	AuthnAPIServer() map[PluginName]AuthnAPIServerPlugin
}

func Plugins

func Plugins() Registry

type RegistryMutator

type RegistryMutator interface {
	Register(PluginName, Plugin) error
}

type ResourceStorePlugin

type ResourceStorePlugin interface {
	Plugin
	NewResourceStore(PluginContext, PluginConfig) (core_store.ResourceStore, error)
	Migrate(PluginContext, PluginConfig) (DbVersion, error)
	EventListener(PluginContext, events.Emitter) error
}

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.

type SecretStorePlugin

type SecretStorePlugin interface {
	Plugin
	NewSecretStore(PluginContext, PluginConfig) (secret_store.SecretStore, error)
}

SecretStorePlugin is responsible for instantiating a particular SecretStore.

Jump to

Keyboard shortcuts

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