Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
197 changes: 0 additions & 197 deletions pkg/client/crd.go

This file was deleted.

11 changes: 4 additions & 7 deletions pkg/client/fake/fake.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,8 @@ func (f *FakeSet) RESTConfig() *rest.Config {
}

// CRD returns a new CRD interface instance
func (f *FakeSet) CRD(cfg client.CRDWrapperConfig) client.CRDInterface {
// Return a fake CRD implementation for testing
return &FakeCRD{}
func (f *FakeSet) CRD() apiextensionsv1.CustomResourceDefinitionInterface {
return f.ApiExtensionsClient.CustomResourceDefinitions()
}

// WithImpersonation returns a new client that impersonates the given user
Expand All @@ -78,10 +77,8 @@ func (f *FakeSet) WithImpersonation(user string) (client.SetInterface, error) {
// FakeCRD is a fake implementation of CRDInterface for testing
type FakeCRD struct{}

var _ client.CRDInterface = (*FakeCRD)(nil)

// Ensure ensures a CRD exists, up-to-date, and is ready
func (f *FakeCRD) Ensure(ctx context.Context, crd v1.CustomResourceDefinition) error {
// Create ensures a CRD exists, up-to-date, and is ready
func (f *FakeCRD) Create(ctx context.Context, crd v1.CustomResourceDefinition) error {
// For testing, just return success
return nil
}
Expand Down
14 changes: 5 additions & 9 deletions pkg/client/set.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ type SetInterface interface {
// RESTConfig returns a copy of the underlying REST config
RESTConfig() *rest.Config

// CRD returns a new CRDInterface instance
CRD(cfg CRDWrapperConfig) CRDInterface
// CRD returns a new CustomResourceDefinitionInterface instance
CRD() apiextensionsv1.CustomResourceDefinitionInterface

// WithImpersonation returns a new client that impersonates the given user
WithImpersonation(user string) (SetInterface, error)
Expand Down Expand Up @@ -148,13 +148,9 @@ func (c *Set) RESTConfig() *rest.Config {
return rest.CopyConfig(c.config)
}

// CRD returns a new CRDInterface instance
func (c *Set) CRD(cfg CRDWrapperConfig) CRDInterface {
if cfg.Client == nil {
cfg.Client = c.apiExtensionsV1
}

return newCRDWrapper(cfg)
// CRD returns a new CustomResourceDefinitionInterface instance
func (c *Set) CRD() apiextensionsv1.CustomResourceDefinitionInterface {
return c.apiExtensionsV1.CustomResourceDefinitions()
}

// WithImpersonation returns a new client that impersonates the given user
Expand Down
12 changes: 8 additions & 4 deletions pkg/controller/resourcegraphdefinition/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import (
"github.com/kro-run/kro/pkg/dynamiccontroller"
"github.com/kro-run/kro/pkg/graph"
"github.com/kro-run/kro/pkg/metadata"
"github.com/kro-run/kro/pkg/requeue"
)

//+kubebuilder:rbac:groups=kro.run,resources=resourcegraphdefinitions,verbs=get;list;watch;create;update;patch;delete
Expand All @@ -50,8 +51,7 @@ type ResourceGraphDefinitionReconciler struct {
client.Client
instanceLogger logr.Logger

clientSet kroclient.SetInterface
crdManager kroclient.CRDClient
clientSet kroclient.SetInterface

metadataLabeler metadata.Labeler
rgBuilder *graph.Builder
Expand All @@ -66,12 +66,10 @@ func NewResourceGraphDefinitionReconciler(
builder *graph.Builder,
maxConcurrentReconciles int,
) *ResourceGraphDefinitionReconciler {
crdWrapper := clientSet.CRD(kroclient.CRDWrapperConfig{})

return &ResourceGraphDefinitionReconciler{
clientSet: clientSet,
allowCRDDeletion: allowCRDDeletion,
crdManager: crdWrapper,
dynamicController: dynamicController,
metadataLabeler: metadata.NewKROMetaLabeler(),
rgBuilder: builder,
Expand Down Expand Up @@ -169,9 +167,15 @@ func (r *ResourceGraphDefinitionReconciler) Reconcile(ctx context.Context, o *v1

topologicalOrder, resourcesInformation, reconcileErr := r.reconcileResourceGraphDefinition(ctx, o)

// Always update status
if err := r.updateStatus(ctx, o, topologicalOrder, resourcesInformation); err != nil {
reconcileErr = errors.Join(reconcileErr, err)
}

// Check if this is a requeue error
if needRequeue, duration := requeue.Check(reconcileErr); needRequeue {
return ctrl.Result{RequeueAfter: duration}, nil
}

return ctrl.Result{}, reconcileErr
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func (r *ResourceGraphDefinitionReconciler) cleanupResourceGraphDefinitionCRD(ct
return nil
}

if err := r.crdManager.Delete(ctx, crdName); err != nil {
if err := r.deleteCRD(ctx, crdName); err != nil {
return fmt.Errorf("error deleting CRD: %w", err)
}
return nil
Expand Down
Loading
Loading