Documentation

Overview

    Copyright 2020 The Knative Authors

    Licensed under the Apache License, Veroute.on 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0
    

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

    Index

    Constants

    View Source
    const (
    	DoReconcileKind       = "ReconcileKind"
    	DoFinalizeKind        = "FinalizeKind"
    	DoObserveKind         = "ObserveKind"
    	DoObserveFinalizeKind = "ObserveFinalizeKind"
    )

    Variables

    View Source
    var EventAs = errors.As

      EventAs finds the first error in err's chain that matches target, and if so, sets target to that error value and returns true.

      The chain consists of err itself followed by the sequence of errors obtained by repeatedly calling Unwrap.

      An error matches target if the error's concrete value is assignable to the value pointed to by target, or if the error has a method As(interface{}) bool such that As(target) returns true. In the latter case, the As method is responsible for setting target.

      As will panic if target is not a non-nil pointer to either a type that implements error, or to any interface type. As returns false if err is nil. (text from errors/wrap.go)

      View Source
      var EventIs = errors.Is

        EventIs reports whether any error in err's chain matches target.

        The chain consists of err itself followed by the sequence of errors obtained by repeatedly calling Unwrap.

        An error is considered to match a target if it is equal to that target or if it implements a method Is(error) bool such that Is(target) returns true. (text from errors/wrap.go)

        Functions

        func AnnotationFilterFunc

        func AnnotationFilterFunc(key, value string, allowUnset bool) func(interface{}) bool

          AnnotationFilterFunc creates a FilterFunc only accepting objects with given annotation key and value

          func ChainFilterFuncs

          func ChainFilterFuncs(funcs ...func(interface{}) bool) func(interface{}) bool

            ChainFilterFuncs creates a FilterFunc which performs an AND of the passed FilterFuncs.

            func LabelExistsFilterFunc

            func LabelExistsFilterFunc(label string) func(obj interface{}) bool

              LabelExistsFilterFunc creates a FilterFunc only accepting objects which have a given label.

              func LabelFilterFunc

              func LabelFilterFunc(label, value string, allowUnset bool) func(interface{}) bool

                LabelFilterFunc creates a FilterFunc only accepting objects where a label is set to a specific value.

                func NameFilterFunc

                func NameFilterFunc(name string) func(interface{}) bool

                  NameFilterFunc creates a FilterFunc only accepting objects with the given name.

                  func NamespaceFilterFunc

                  func NamespaceFilterFunc(namespace string) func(interface{}) bool

                    NamespaceFilterFunc creates a FilterFunc only accepting objects in the given namespace.

                    func Not

                    func Not(f func(interface{}) bool) func(interface{}) bool

                      Not inverts the result of the predicate.

                      func PostProcessReconcile

                      func PostProcessReconcile(ctx context.Context, resource, oldResource duckv1.KRShaped)

                        PostProcessReconcile contains logic to apply after reconciliation of a resource.

                        func PreProcessReconcile

                        func PreProcessReconcile(ctx context.Context, resource duckv1.KRShaped)

                          PreProcessReconcile contains logic to apply before reconciliation of a resource.

                          func RetryErrors

                          func RetryErrors(updater func(int) error, fns ...func(error) bool) error

                            RetryErrors retries the inner function if it returns matching errors.

                            func RetryTestErrors

                            func RetryTestErrors(updater func(int) error) error

                              RetryTestErrors retries the inner function if it hits an error type that is common in our test environments.

                              func RetryUpdateConflicts

                              func RetryUpdateConflicts(updater func(int) error) error

                                RetryUpdateConflicts retries the inner function if it returns conflict errors. This can be used to retry status updates without constantly reenqueuing keys.

                                Types

                                type Bucket

                                type Bucket interface {
                                	// Name returns a string representing this bucket, which uniquely
                                	// identifies the bucket and is suitable for use as a resource lock name.
                                	Name() string
                                
                                	// Has determines whether this Bucket contains a particular key.
                                	Has(key types.NamespacedName) bool
                                }

                                  Bucket is an opaque type used to scope leadership.

                                  func UniversalBucket

                                  func UniversalBucket() Bucket

                                    UniversalBucket returns a Bucket that "Has()" all keys.

                                    type ConfigStore

                                    type ConfigStore interface {
                                    	// ConfigStore is used to attach the frozen configuration to the context.
                                    	ToContext(ctx context.Context) context.Context
                                    }

                                      ConfigStore is used to attach the frozen configuration to the context.

                                      type Event

                                      type Event error

                                        Event leverages go's 1.13 error wrapping.

                                        func NewEvent

                                        func NewEvent(eventtype, reason, messageFmt string, args ...interface{}) Event

                                          NewEvent returns an Event fully populated.

                                          type LeaderAware

                                          type LeaderAware interface {
                                          	// Promote is called when we become the leader of a given Bucket.  It must be
                                          	// supplied with an enqueue function through which a Bucket resync may be triggered.
                                          	Promote(b Bucket, enq func(Bucket, types.NamespacedName)) error
                                          
                                          	// Demote is called when we stop being the leader for the specified Bucket.
                                          	Demote(Bucket)
                                          }

                                            LeaderAware is implemented by Reconcilers that are aware of their leader status.

                                            type LeaderAwareFuncs

                                            type LeaderAwareFuncs struct {
                                            	sync.RWMutex
                                            
                                            	PromoteFunc func(b Bucket, enq func(Bucket, types.NamespacedName)) error
                                            	DemoteFunc  func(b Bucket)
                                            	// contains filtered or unexported fields
                                            }

                                              LeaderAwareFuncs implements LeaderAware using the given functions for handling promotion and demotion.

                                              func (*LeaderAwareFuncs) Demote

                                              func (laf *LeaderAwareFuncs) Demote(b Bucket)

                                                Demote implements LeaderAware

                                                func (*LeaderAwareFuncs) IsLeaderFor

                                                func (laf *LeaderAwareFuncs) IsLeaderFor(key types.NamespacedName) bool

                                                  IsLeaderFor implements LeaderAware

                                                  func (*LeaderAwareFuncs) Promote

                                                  func (laf *LeaderAwareFuncs) Promote(b Bucket, enq func(Bucket, types.NamespacedName)) error

                                                    Promote implements LeaderAware

                                                    type OnDeletionInterface

                                                    type OnDeletionInterface interface {
                                                    	// ObserveDeletion implements custom logic to observe deletion of the respective resource
                                                    	// with the given key.
                                                    	ObserveDeletion(ctx context.Context, key types.NamespacedName) error
                                                    }

                                                      OnDeletionInterface defines the strongly typed interface to be implemented by a controller observing a deletion of an object. Every controller that was active during the deletion of the respective resource is guaranteed to observe this event, leader or not. It's usually used to clear up in-memory state regarding the respective resource. Finalizers should be used to ensure external resources are properly cleaned up.

                                                      type ReconcilerEvent

                                                      type ReconcilerEvent struct {
                                                      	EventType string
                                                      	Reason    string
                                                      	Format    string
                                                      	Args      []interface{}
                                                      }

                                                        ReconcilerEvent wraps the fields required for recorders to create a kubernetes recorder Event.

                                                        func (*ReconcilerEvent) As

                                                        func (e *ReconcilerEvent) As(target interface{}) bool

                                                          As allows ReconcilerEvents to be treated as regular error types.

                                                          func (*ReconcilerEvent) Error

                                                          func (e *ReconcilerEvent) Error() string

                                                            Error returns the string that is formed by using the format string with the provided args.

                                                            func (*ReconcilerEvent) Is

                                                            func (e *ReconcilerEvent) Is(target error) bool

                                                              Is returns if the target error is a ReconcilerEvent type checking that EventType and Reason match.

                                                              Directories

                                                              Path Synopsis
                                                              Package testing includes utilities for testing controllers.
                                                              Package testing includes utilities for testing controllers.