Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Application ¶
type Application interface { // Application resource HasResource // dot-separated path inside the application resource locating container resources // the returned value follows foo.bar.bla convention // it cannot be empty ContainersPath() string // optional dot-separated path inside the application resource locating field where intermediate binding secret ref should be injected // the returns value follows foo.bar.bla convention, but it can be empty SecretPath() string }
Application to be bound to service(s)
type BindingItem ¶
type BindingItems ¶
type BindingItems []*BindingItem
func (*BindingItems) AsMap ¶
func (items *BindingItems) AsMap() map[string]string
Returns map representation of given list of binding items
type CRD ¶
type CRD interface { // CRD resource HasResource // optional Descriptor attached to ClusterServiceVersion resource Descriptor() (*olmv1alpha1.CRDDescription, error) }
Custom Resource Definition
type Context ¶
type Context interface { BindingName() string // Services referred by binding // if reading fails, return error Services() ([]Service, error) // Applications referred by binding // it can be empty slice // if reading fails, return error Applications() ([]Application, error) // Returns true if binding is about to be removed UnbindRequested() bool BindingSecretName() string // Return true if bindings should be projected as files inside application containers BindAsFiles() bool // Path where bindings should be mounted inside application containers MountPath() string // Template that should be applied on collected binding names, prior projection NamingTemplate() string // Additional bindings that will be projected into application containers // entry key is the future binding name // entry value contains template that generates binding value Mappings() map[string]string // Add binding item to the context AddBindingItem(item *BindingItem) // List binding items that should be projected into application containers BindingItems() BindingItems // Indicates that the binding should be retried at some later time // The current processing stops and context gets closed RetryProcessing(reason error) // Indicates that en error has occurred while processing the binding Error(err error) // Stops processing StopProcessing() // Closes the context, persisting changed resources // Returns error if occurrs Close() error // Sets context condition SetCondition(condition *metav1.Condition) kubernetes.ConfigMapReader kubernetes.SecretReader FlowStatus() FlowStatus }
Pipeline context passed to each handler
type ContextProvider ¶
type ContextProvider interface {
Get(binding *api.ServiceBinding) (Context, error)
}
Provides context for a given service binding
type HandlerFunc ¶
type HandlerFunc func(ctx Context)
func (HandlerFunc) Handle ¶
func (f HandlerFunc) Handle(ctx Context)
type HasResource ¶
type HasResource interface {
Resource() *unstructured.Unstructured
}
type Pipeline ¶
type Pipeline interface { // Reconcile given service binding // Returns true if processing should be repeated // and optional error if occurred // important: even if error occurred it might not be needed to retry processing Process(binding *api.ServiceBinding) (bool, error) }
Reconciliation pipeline
type Service ¶
type Service interface { // Service resource HasResource // Return CRD for this service, otherwise nil if not backed by CRD // Error might be returned if occurred during the operation CustomResourceDefinition() (CRD, error) // Resources owned by the service, if any // Error might be returned if occurred during the operation OwnedResources() ([]*unstructured.Unstructured, error) // Attach binding definition to service AddBindingDef(def binding.Definition) // All binding definitions attached to the service BindingDefs() []binding.Definition // Optional service id Id() *string }
Service to be bound
Click to show internal directories.
Click to hide internal directories.