Documentation ¶
Overview ¶
nolint
Index ¶
- func CapsuleStep[T any](_ T, req pipeline.CapsuleRequest) (string, any, error)
- func LoadYAMLConfig(data []byte, out any) error
- func MatchFromStep(step v1alpha1.Step) v1alpha1.CapsuleMatch
- func ParseCapsuleTemplatedConfig[T any](data []byte, req pipeline.CapsuleRequest) (T, error)
- func ParseTemplatedConfig[T any](data []byte, req pipeline.CapsuleRequest, steps ...ParseStep[T]) (T, error)
- func StartPlugin(name string, rigPlugin Plugin)
- type CapsuleWatcher
- type ExecutionContext
- type GRPCServer
- func (m *GRPCServer) Initialize(_ context.Context, req *apiplugin.InitializeRequest) (*apiplugin.InitializeResponse, error)
- func (m *GRPCServer) RunCapsule(ctx context.Context, req *apiplugin.RunCapsuleRequest) (*apiplugin.RunCapsuleResponse, error)
- func (m *GRPCServer) WatchObjectStatus(req *apiplugin.WatchObjectStatusRequest, ...) error
- type Info
- type InitializeRequest
- type Item
- type Manager
- type ManagerOption
- type Matcher
- type NoWatchObjectStatus
- type ObjectWatcher
- type ParseStep
- type Plugin
- type Step
- type ThirdPartyConfig
- type ThirdPartyPlugin
- type WatchCallback
- type Watcher
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CapsuleStep ¶
func LoadYAMLConfig ¶
func MatchFromStep ¶ added in v1.8.14
func MatchFromStep(step v1alpha1.Step) v1alpha1.CapsuleMatch
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 ¶
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 CapsuleWatcher ¶ added in v1.9.0
type CapsuleWatcher interface { // Watch a primary resource, by providing a capsule name and // the type of the object to watch for. // All objects which type matches `objType` and that belongs to the capsule // will be processed. WatchPrimary(ctx context.Context, objType client.Object, cb WatchCallback) error }
type ExecutionContext ¶ added in v1.10.0
func NewExecutionContext ¶ added in v1.10.0
func NewExecutionContext(ctx context.Context) ExecutionContext
type GRPCServer ¶
type GRPCServer struct { apiplugin.UnimplementedPluginServiceServer Impl Plugin // contains filtered or unexported fields }
func (*GRPCServer) Initialize ¶
func (m *GRPCServer) Initialize( _ context.Context, req *apiplugin.InitializeRequest, ) (*apiplugin.InitializeResponse, error)
func (*GRPCServer) RunCapsule ¶
func (m *GRPCServer) RunCapsule( ctx context.Context, req *apiplugin.RunCapsuleRequest, ) (*apiplugin.RunCapsuleResponse, error)
func (*GRPCServer) WatchObjectStatus ¶ added in v1.9.0
func (m *GRPCServer) WatchObjectStatus( req *apiplugin.WatchObjectStatusRequest, stream apiplugin.PluginService_WatchObjectStatusServer, ) error
type InitializeRequest ¶ added in v1.7.2
type InitializeRequest struct { Config []byte Tag string // contains filtered or unexported fields }
InitializeRequest contains information needed to initialize the plugin This data is constant throughout the execution of the rig-operator.
func (InitializeRequest) Scheme ¶ added in v1.9.1
func (r InitializeRequest) Scheme() *runtime.Scheme
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func NewManager(restCfg *rest.Config, opts ...ManagerOption) (*Manager, error)
func (*Manager) GetPlugins ¶
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(match v1alpha1.CapsuleMatch) (Matcher, error)
type NoWatchObjectStatus ¶ added in v1.9.0
type NoWatchObjectStatus struct{}
func (NoWatchObjectStatus) WatchObjectStatus ¶ added in v1.9.0
func (NoWatchObjectStatus) WatchObjectStatus(context.Context, CapsuleWatcher) error
type ObjectWatcher ¶ added in v1.9.0
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 WatchObjectStatus(ctx context.Context, watcher CapsuleWatcher) 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) WatchObjectStatus ¶ added in v1.9.0
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"`
}
type WatchCallback ¶ added in v1.9.0
type WatchCallback func( obj client.Object, events []*corev1.Event, objectWatcher ObjectWatcher, ) *apipipeline.ObjectStatusInfo
type Watcher ¶ added in v1.9.0
type Watcher interface { NewCapsuleWatcher( ctx context.Context, namespace string, capsule string, c chan<- *apiplugin.ObjectStatusChange) CapsuleWatcher }