func Add(mgr manager.Manager, p *tfschema.Provider, smLoader *servicemappingloader.ServiceMappingLoader, dclConfig *dcl.Config, dclConverter *conversion.Converter, regFunc registrationFunc) error
Add creates a new registration Controller and adds it to the Manager with default RBAC. The Manager will set fields on the Controller and Start it when the Manager is Started.
func RegisterDefaultController(r *ReconcileRegistration, crd *apiextensions.CustomResourceDefinition, gvk schema.GroupVersionKind) (k8s.SchemaReferenceUpdater, error)
func RegisterDeletionDefenderController(r *ReconcileRegistration, crd *apiextensions.CustomResourceDefinition, _ schema.GroupVersionKind) (k8s.SchemaReferenceUpdater, error)
func RegisterUnmanagedDetectorController(r *ReconcileRegistration, crd *apiextensions.CustomResourceDefinition, _ schema.GroupVersionKind) (k8s.SchemaReferenceUpdater, error)
This predicate will react only to Create requests from CRDs that KCC manages.
type ManagedByKCCPredicate struct { predicate.Funcs }
func (ManagedByKCCPredicate) Create(e event.CreateEvent) bool
Create returns true if the given resource has the KCC management label.
func (ManagedByKCCPredicate) Delete(_ event.DeleteEvent) bool
Delete always returns false, as currently there is no support for removing controllers on CRD deletion.
func (ManagedByKCCPredicate) Update(e event.UpdateEvent) bool
Update returns true if the given resource has the KCC management label. When CRD is changed, the controller should reload its jsonSchema from the newly updated CRD.
ReconcileRegistration reconciles a CRD owned by KCC
type ReconcileRegistration struct { client.Client // contains filtered or unexported fields }
func (r *ReconcileRegistration) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error)