Documentation ¶
Index ¶
- Constants
- func IsExecutionFailed(err error) bool
- func IsInvalidConfig(err error) bool
- func IsNoResourceSet(err error) bool
- func IsPortforward(err error) bool
- func IsStatusForbidden(err error) bool
- func IsTooManyResourceSets(err error) bool
- func ProcessDelete(ctx context.Context, obj interface{}, resources []resource.Interface) error
- func ProcessUpdate(ctx context.Context, obj interface{}, resources []resource.Interface) error
- type Config
- type Controller
- type Labels
- type Selector
Constants ¶
const ( PrometheusNamespace = "operatorkit" PrometheusSubsystem = "controller" )
const (
DefaultResyncPeriod = 5 * time.Minute
)
const (
DisableMetricsServing = "0"
)
Variables ¶
This section is empty.
Functions ¶
func IsExecutionFailed ¶
IsExecutionFailed asserts executionFailedError.
func IsInvalidConfig ¶
IsInvalidConfig asserts invalidConfigError.
func IsNoResourceSet ¶
IsNoResourceSet asserts noResourceSetError.
func IsStatusForbidden ¶
IsStatusForbiddenError asserts statusForbiddenError and apimachinery StatusError with StatusReasonForbidden.
func IsTooManyResourceSets ¶
IsTooManyResourceSets asserts tooManyResourceSetsError.
func ProcessDelete ¶
ProcessDelete is a drop-in for an informer's DeleteFunc. It receives the custom object observed during custom resource watches and anything that implements Resource. ProcessDelete takes care about all necessary reconciliation logic for delete events.
func deleteFunc(obj interface{}) { err := c.ProcessDelete(obj, resources) if err != nil { // error handling here } } newResourceEventHandler := &cache.ResourceEventHandlerFuncs{ DeleteFunc: deleteFunc, }
func ProcessUpdate ¶
ProcessUpdate is a drop-in for an informer's UpdateFunc. It receives the new custom object observed during custom resource watches and anything that implements Resource. ProcessUpdate takes care about all necessary reconciliation logic for update events. For complex resources this means state has to be created, deleted and updated eventually, in this order.
func updateFunc(oldObj, newObj interface{}) { err := c.ProcessUpdate(newObj, resources) if err != nil { // error handling here } } newResourceEventHandler := &cache.ResourceEventHandlerFuncs{ UpdateFunc: updateFunc, }
Types ¶
type Config ¶
type Config struct { // InitCtx is deprecated and should not be used anymore. InitCtx func(ctx context.Context, obj interface{}) (context.Context, error) // K8sClient is the client collection used to setup and manage certain // operatorkit primitives. The Controller Client is used to fetch runtime // objects. It therefore must be properly configured using the AddToScheme // option. The REST Client is used to patch finalizers on runtime objects. K8sClient k8sclient.Interface Logger micrologger.Logger // NewRuntimeObjectFunc returns a new initialized pointer of a type // implementing the runtime object interface. The object returned is used with // the controller-runtime client to fetch the latest version of the object // itself. That way we can manage all runtime objects in a somewhat generic // way. See the example below. // // func() pkgruntime.Object { // return new(corev1.ConfigMap) // } // NewRuntimeObjectFunc func() pkgruntime.Object // Pause is a map of additional pausing annotations, defining their // key-value pairs. This can be used to stop reconciliation in case the // configured pausing annotations are present in the reconciled runtime // object watched by operatorkit. Pause map[string]string // Resources is the list of controller resources being executed on runtime // object reconciliation. Resources are executed in given order. Resources []resource.Interface // Selector is used to filter objects before passing them to the controller. Selector Selector // Name is the name which the controller uses on finalizers for resources. // The name used should be unique in the kubernetes cluster, to ensure that // two operators which handle the same resource add two distinct finalizers. Name string // ResyncPeriod is the duration after which a complete sync with all known // runtime objects the controller watches is performed. Defaults to // DefaultResyncPeriod. ResyncPeriod time.Duration // SentryDSN is the optional URL used to forward runtime errors to the sentry.io service. // If this field is empty, logs will not be forwarded. SentryDSN string }
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
func New ¶
func New(config Config) (*Controller, error)
New creates a new configured operator controller.
func (*Controller) Boot ¶
func (c *Controller) Boot(ctx context.Context)
func (*Controller) Booted ¶
func (c *Controller) Booted() chan struct{}
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
context
|
|
cachekeycontext
Package cachekeycontext stores and accesses the local context key in context.Context.
|
Package cachekeycontext stores and accesses the local context key in context.Context. |
finalizerskeptcontext
Package finalizerskeptcontext stores and accesses the kept in context.Context.
|
Package finalizerskeptcontext stores and accesses the kept in context.Context. |
reconciliationcanceledcontext
Package reconciliationcanceledcontext stores and accesses the canceled in context.Context.
|
Package reconciliationcanceledcontext stores and accesses the canceled in context.Context. |
resourcecanceledcontext
Package resourcecanceledcontext stores and accesses the canceled in context.Context.
|
Package resourcecanceledcontext stores and accesses the canceled in context.Context. |
updateallowedcontext
Package updateallowedcontext stores and accesses the update allowed in context.Context.
|
Package updateallowedcontext stores and accesses the update allowed in context.Context. |
internal
|
|