Documentation ¶
Index ¶
- func AddFinalizer(obj client.Object, finalizer string)
- func AdvancedTemplateFuncMap(config *rest.Config) template.FuncMap
- func HasFinalizer(obj client.Object, finalizer string) bool
- func IsBeingDeleted(obj client.Object) bool
- func IsGVKDefined(gvk schema.GroupVersionKind, discoveryClient *discovery.DiscoveryClient) (*v1.APIResource, error)
- func IsJSONArray(data []byte) bool
- func IsOwner(owner, owned metav1.Object) bool
- func IsUnstructuredDefined(obj *unstructured.Unstructured, discoveryClient *discovery.DiscoveryClient) (*v1.APIResource, error)
- func NewLookupFunction(config *rest.Config) lookupFunc
- func ProcessTemplate(data interface{}, template *template.Template) (*unstructured.Unstructured, error)
- func ProcessTemplateArray(data interface{}, template *template.Template) ([]unstructured.Unstructured, error)
- func RemoveFinalizer(obj client.Object, finalizer string)
- func ValidateUnstructured(obj *unstructured.Unstructured, validationSchema *validation.SchemaValidation) error
- type ReconcilerBase
- func (r *ReconcilerBase) CreateIfNotExistTemplatedResources(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) CreateOrUpdateResource(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) CreateOrUpdateResources(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) CreateOrUpdateTemplatedResources(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) CreateOrUpdateUnstructuredResources(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) CreateResourceIfNotExists(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) CreateResourcesIfNotExist(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) CreateUnstructuredResourcesIfNotExist(context context.Context, owner client.Object, namespace string, ...) error
- func (r *ReconcilerBase) DeleteResourceIfExists(context context.Context, obj client.Object) error
- func (r *ReconcilerBase) DeleteResourcesIfExist(context context.Context, objs []client.Object) error
- func (r *ReconcilerBase) DeleteTemplatedResources(context context.Context, data interface{}, template *template.Template) error
- func (r *ReconcilerBase) DeleteUnstructuredResources(context context.Context, objs []unstructured.Unstructured) error
- func (r *ReconcilerBase) GetClient() client.Client
- func (r *ReconcilerBase) GetDiscoveryClient() (*discovery.DiscoveryClient, error)
- func (r *ReconcilerBase) GetDynamicClientOnAPIResource(resource metav1.APIResource) (dynamic.NamespaceableResourceInterface, error)
- func (r *ReconcilerBase) GetDynamicClientOnUnstructured(obj unstructured.Unstructured) (dynamic.ResourceInterface, error)
- func (r *ReconcilerBase) GetRecorder() record.EventRecorder
- func (r *ReconcilerBase) GetRestConfig() *rest.Config
- func (r *ReconcilerBase) GetScheme() *runtime.Scheme
- func (r *ReconcilerBase) IsAPIResourceAvailable(GVK schema.GroupVersionKind) (bool, error)
- func (r *ReconcilerBase) IsInitialized(obj metav1.Object) bool
- func (r *ReconcilerBase) IsValid(obj metav1.Object) (bool, error)
- func (r *ReconcilerBase) ManageError(context context.Context, obj client.Object, issue error) (reconcile.Result, error)
- func (r *ReconcilerBase) ManageSuccess(context context.Context, obj client.Object) (reconcile.Result, error)
- func (r *ReconcilerBase) Reconcile(request reconcile.Request) (reconcile.Result, error)
- type ResourceGenerationOrFinalizerChangedPredicate
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddFinalizer ¶
AddFinalizer adds the passed finalizer this object
func AdvancedTemplateFuncMap ¶ added in v0.3.5
AdvancedTemplateFuncMap to add Sprig and additional templating functions
func HasFinalizer ¶
HasFinalizer returns whether this object has the passed finalizer
func IsBeingDeleted ¶
IsBeingDeleted returns whether this object has been requested to be deleted
func IsGVKDefined ¶ added in v0.2.5
func IsGVKDefined(gvk schema.GroupVersionKind, discoveryClient *discovery.DiscoveryClient) (*v1.APIResource, error)
IsGVKDefined verifuled if a resource is defined and returns it
func IsJSONArray ¶ added in v0.3.5
IsJSONArray checks to see if a byte array containing JSON is an array of data
func IsUnstructuredDefined ¶ added in v0.2.5
func IsUnstructuredDefined(obj *unstructured.Unstructured, discoveryClient *discovery.DiscoveryClient) (*v1.APIResource, error)
IsUnstructuredDefined checks whether the content of a unstructured is defined against the passed DiscoveryClient
func NewLookupFunction ¶ added in v0.3.5
NewLookupFunction get information at runtime from cluster
func ProcessTemplate ¶
func ProcessTemplate(data interface{}, template *template.Template) (*unstructured.Unstructured, error)
ProcessTemplate processes an initialized Go template with a set of data. It expects one API object to be defined in the template
func ProcessTemplateArray ¶
func ProcessTemplateArray(data interface{}, template *template.Template) ([]unstructured.Unstructured, error)
ProcessTemplateArray processes an initialized Go template with a set of data. It expects an arrays of API objects to be defined in the template. Dishomogeneus types are supported
func RemoveFinalizer ¶
RemoveFinalizer removes the passed finalizer from object
func ValidateUnstructured ¶ added in v0.2.5
func ValidateUnstructured(obj *unstructured.Unstructured, validationSchema *validation.SchemaValidation) error
ValidateUnstructured validates the content of an unstructred against an openapi schema. the schema is intented to be retrieved from a running instance of kubernetes, but other usages are possible.
Types ¶
type ReconcilerBase ¶
type ReconcilerBase struct {
// contains filtered or unexported fields
}
ReconcilerBase is a base struct from which all reconcilers can be derived. By doing so your finalizers will also inherir a set of utility functions To inherit from reconciler just build your finalizer this way:
type MyReconciler struct { util.ReconcilerBase ... other optional fields ... }
func NewReconcilerBase ¶
func NewReconcilerBase(client client.Client, scheme *runtime.Scheme, restConfig *rest.Config, recorder record.EventRecorder) ReconcilerBase
NewReconcilerBase is a contructionr fucntion to create a new ReconcilerBase. To use ReconsicerBase as the base for you reconciler, replace the standart consturctor generated by the oiperator sdk with this:
func newReconciler(mgr manager.Manager) reconcile.Reconciler { return &MyReconciler{ ReconcilerBase: util.NewReconcilerBase(mgr.GetClient(), mgr.GetScheme(),mgr.GetConfig()), } }
func (*ReconcilerBase) CreateIfNotExistTemplatedResources ¶
func (r *ReconcilerBase) CreateIfNotExistTemplatedResources(context context.Context, owner client.Object, namespace string, data interface{}, template *template.Template) error
CreateIfNotExistTemplatedResources processes an initialized template expecting an array of objects as a result and then processes them with the CreateResourceIfNotExists function
func (*ReconcilerBase) CreateOrUpdateResource ¶
func (r *ReconcilerBase) CreateOrUpdateResource(context context.Context, owner client.Object, namespace string, obj client.Object) error
CreateOrUpdateResource creates a resource if it doesn't exist, and updates (overwrites it), if it exist if owner is not nil, the owner field os set if namespace is not "", the namespace field of the object is overwritten with the passed value
func (*ReconcilerBase) CreateOrUpdateResources ¶
func (r *ReconcilerBase) CreateOrUpdateResources(context context.Context, owner client.Object, namespace string, objs []client.Object) error
CreateOrUpdateResources operates as CreateOrUpdate, but on an array of resources
func (*ReconcilerBase) CreateOrUpdateTemplatedResources ¶
func (r *ReconcilerBase) CreateOrUpdateTemplatedResources(context context.Context, owner client.Object, namespace string, data interface{}, template *template.Template) error
CreateOrUpdateTemplatedResources processes an initialized template expecting an array of objects as a result and the processes them with the CreateOrUpdate function
func (*ReconcilerBase) CreateOrUpdateUnstructuredResources ¶ added in v0.2.0
func (r *ReconcilerBase) CreateOrUpdateUnstructuredResources(context context.Context, owner client.Object, namespace string, objs []unstructured.Unstructured) error
CreateOrUpdateUnstructuredResources operates as CreateOrUpdate, but on an array of unstructured.Unstructured
func (*ReconcilerBase) CreateResourceIfNotExists ¶
func (r *ReconcilerBase) CreateResourceIfNotExists(context context.Context, owner client.Object, namespace string, obj client.Object) error
CreateResourceIfNotExists create a resource if it doesn't already exists. If the resource exists it is left untouched and the functin does not fails if owner is not nil, the owner field os set if namespace is not "", the namespace field of the object is overwritten with the passed value
func (*ReconcilerBase) CreateResourcesIfNotExist ¶
func (r *ReconcilerBase) CreateResourcesIfNotExist(context context.Context, owner client.Object, namespace string, objs []client.Object) error
CreateResourcesIfNotExist operates as CreateResourceIfNotExists, but on an array of resources
func (*ReconcilerBase) CreateUnstructuredResourcesIfNotExist ¶ added in v0.2.0
func (r *ReconcilerBase) CreateUnstructuredResourcesIfNotExist(context context.Context, owner client.Object, namespace string, objs []unstructured.Unstructured) error
CreateUnstructuredResourcesIfNotExist operates as CreateResourceIfNotExists, but on an array of unstructured.Unstructured
func (*ReconcilerBase) DeleteResourceIfExists ¶ added in v0.2.0
DeleteResourceIfExists deletes an existing resource. It doesn't fail if the resource does not exist
func (*ReconcilerBase) DeleteResourcesIfExist ¶ added in v0.2.0
func (r *ReconcilerBase) DeleteResourcesIfExist(context context.Context, objs []client.Object) error
DeleteResourcesIfExist operates like DeleteResources, but on an arrays of resources
func (*ReconcilerBase) DeleteTemplatedResources ¶
func (r *ReconcilerBase) DeleteTemplatedResources(context context.Context, data interface{}, template *template.Template) error
DeleteTemplatedResources processes an initialized template expecting an array of objects as a result and then processes them with the Delete function
func (*ReconcilerBase) DeleteUnstructuredResources ¶ added in v0.2.0
func (r *ReconcilerBase) DeleteUnstructuredResources(context context.Context, objs []unstructured.Unstructured) error
DeleteUnstructuredResources operates like DeleteResources, but on an arrays of unstructured.Unstructured
func (*ReconcilerBase) GetClient ¶
func (r *ReconcilerBase) GetClient() client.Client
GetClient returns the underlying client
func (*ReconcilerBase) GetDiscoveryClient ¶
func (r *ReconcilerBase) GetDiscoveryClient() (*discovery.DiscoveryClient, error)
GetDiscoveryClient returns a disocvery client for the current reconciler
func (*ReconcilerBase) GetDynamicClientOnAPIResource ¶
func (r *ReconcilerBase) GetDynamicClientOnAPIResource(resource metav1.APIResource) (dynamic.NamespaceableResourceInterface, error)
GetDynamicClientOnAPIResource returns a dynamic client on an APIResource. This client can be further namespaced.
func (*ReconcilerBase) GetDynamicClientOnUnstructured ¶
func (r *ReconcilerBase) GetDynamicClientOnUnstructured(obj unstructured.Unstructured) (dynamic.ResourceInterface, error)
GetDynamicClientOnUnstructured returns a dynamic client on an Unstructured type. This client can be further namespaced. TODO consider refactoring using apimachinery.RESTClientForGVK in controller-runtime
func (*ReconcilerBase) GetRecorder ¶
func (r *ReconcilerBase) GetRecorder() record.EventRecorder
GetRecorder returns the underlying recorder
func (*ReconcilerBase) GetRestConfig ¶
func (r *ReconcilerBase) GetRestConfig() *rest.Config
GetRestConfig returns the undelying rest config
func (*ReconcilerBase) GetScheme ¶
func (r *ReconcilerBase) GetScheme() *runtime.Scheme
GetScheme returns the scheme
func (*ReconcilerBase) IsAPIResourceAvailable ¶ added in v0.2.1
func (r *ReconcilerBase) IsAPIResourceAvailable(GVK schema.GroupVersionKind) (bool, error)
IsAPIResourceAvailable checks of a give GroupVersionKind is available in the running apiserver
func (*ReconcilerBase) IsInitialized ¶
func (r *ReconcilerBase) IsInitialized(obj metav1.Object) bool
IsInitialized determines if a CR instance is initialized. this implementation returns always true, should be overridden
func (*ReconcilerBase) IsValid ¶
func (r *ReconcilerBase) IsValid(obj metav1.Object) (bool, error)
IsValid determines if a CR instance is valid. this implementation returns always true, should be overridden
func (*ReconcilerBase) ManageError ¶
func (r *ReconcilerBase) ManageError(context context.Context, obj client.Object, issue error) (reconcile.Result, error)
ManageError will take care of the following: 1. generate a warning event attached to the passed CR 2. set the status of the passed CR to a error condition if the object implements the apis.ConditionsStatusAware interface 3. return a reconcile status with the passed error
func (*ReconcilerBase) ManageSuccess ¶
func (r *ReconcilerBase) ManageSuccess(context context.Context, obj client.Object) (reconcile.Result, error)
ManageSuccess will update the status of the CR and return a successful reconcile result
type ResourceGenerationOrFinalizerChangedPredicate ¶
ResourceGenerationOrFinalizerChangedPredicate this preducates will fire an update event when the spec of a resource is changed (controller by ResourceGeneration), or when the finalizers are changed
func (ResourceGenerationOrFinalizerChangedPredicate) Update ¶
func (ResourceGenerationOrFinalizerChangedPredicate) Update(e event.UpdateEvent) bool
Update implements default UpdateEvent filter for validating resource version change