plugin

package
v1.8.9 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2024 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CapsuleStep

func CapsuleStep[T any](_ T, req pipeline.CapsuleRequest) (string, any, error)

func GetNew

func GetNew(group, kind, name string, req pipeline.CapsuleRequest) (client.Object, error)

func LoadYAMLConfig

func LoadYAMLConfig(data []byte, out any) error

func ParseCapsuleTemplatedConfig added in v1.8.7

func ParseCapsuleTemplatedConfig[T any](data []byte, req pipeline.CapsuleRequest) (T, error)

ParseCapsuleTemplatedConfig parses the given data as a Go template with the capsule as a templating context under '.capsule' It then JSON/YAML decodes the resulting bytes into an instance of T

func ParseTemplatedConfig

func ParseTemplatedConfig[T any](data []byte, req pipeline.CapsuleRequest, steps ...ParseStep[T]) (T, error)

Using this, we parse the config at every execution of the plugin. If we get performance issues due to that we can try and optimize that.

func StartPlugin

func StartPlugin(name string, rigPlugin Plugin)

StartPlugin starts the plugin so it can listen for requests to be run on a CapsuleRequest name is the name of the plugin as referenced in the rig-operator configuration.

Types

type GRPCServer

type GRPCServer struct {
	apiplugin.UnimplementedPluginServiceServer

	Impl Plugin
	// contains filtered or unexported fields
}

func (*GRPCServer) Initialize

func (*GRPCServer) RunCapsule

type Info

type Info struct {
	Name       string
	Image      string
	IsBuiltin  bool
	BinaryPath string
	Args       []string
}

type InitializeRequest added in v1.7.2

type InitializeRequest struct {
	Config []byte
	Tag    string
}

InitializeRequest contains information needed to initialize the plugin This data is constant throughout the execution of the rig-operator.

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(opts ...ManagerOption) (*Manager, error)

func (*Manager) GetPlugin

func (m *Manager) GetPlugin(name string) (Info, bool)

func (*Manager) GetPlugins

func (m *Manager) GetPlugins() []Info

func (*Manager) NewStep

func (m *Manager) NewStep(step v1alpha1.Step, logger logr.Logger) (*Step, error)

type ManagerOption added in v1.8.0

type ManagerOption func(m *Manager)

func SetBuiltinBinaryPathOption added in v1.8.0

func SetBuiltinBinaryPathOption(path string) ManagerOption

type Matcher

type Matcher struct {
	// contains filtered or unexported fields
}

func NewMatcher

func NewMatcher(namespaces, capsules []string, selector metav1.LabelSelector, enableForPlatform bool) (Matcher, error)

func (Matcher) Match

func (m Matcher) Match(namespace, capsule string, capsuleLabels map[string]string) bool

type ParseStep

type ParseStep[T any] func(config T, req pipeline.CapsuleRequest) (string, any, error)

type Plugin

type Plugin interface {
	// Run is executed once per reconciliation and throug the CapsuleRequest, has read access
	// to the Capsule being reconciled and read/write access to all other derived resources
	Run(ctx context.Context, req pipeline.CapsuleRequest, logger hclog.Logger) error
	// Initialize is executed once when the rig-operator starts up and is used to pass the configuration
	// of the plugin from the operator to the plugin itself.
	Initialize(req InitializeRequest) error
}

Plugin is the interface a rig plugin must implement to be used by the rig-operator

type Step

type Step struct {
	// contains filtered or unexported fields
}

func (*Step) Apply

func (s *Step) Apply(ctx context.Context, req pipeline.CapsuleRequest) error

func (*Step) Stop

func (s *Step) Stop(ctx context.Context)

type ThirdPartyConfig added in v1.8.0

type ThirdPartyConfig struct {
	Plugins []ThirdPartyPlugin `json:"plugins"`
}

type ThirdPartyPlugin added in v1.8.0

type ThirdPartyPlugin struct {
	Name string `json:"name"`
}

Jump to

Keyboard shortcuts

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