Documentation ¶
Index ¶
- func CapsuleStep[T any](_ T, req pipeline.CapsuleRequest) (string, any, error)
- func GetNew(group, kind, name string, req pipeline.CapsuleRequest) (client.Object, error)
- func LoadYAMLConfig(data []byte, out any) error
- 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 GRPCServer
- type Info
- type InitializeRequest
- type Manager
- type ManagerOption
- type Matcher
- type ParseStep
- type Plugin
- type Step
- type ThirdPartyConfig
- type ThirdPartyPlugin
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CapsuleStep ¶
func LoadYAMLConfig ¶
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 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)
type InitializeRequest ¶ added in v1.7.2
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) 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 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 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"`
}