Skip to content

what we can do to make resourceconsist much more easier for users #34

Description

@WeichengWang1

a few todos:

diff --git a/pkg/frame/controller/resourceconsist_controller.go b/pkg/frame/controller/resourceconsist_controller.go
index 57538cf..70ede67 100644
--- a/pkg/frame/controller/resourceconsist_controller.go
+++ b/pkg/frame/controller/resourceconsist_controller.go
@@ -104,6 +104,7 @@ func watch(c controller.Controller, mgr manager.Manager, adapter ReconcileAdapte
                return err
        }
 
+       // todo, this can be optional
        return c.Watch(employeeSource, employeeEventHandler, employeePredicateFuncs)
 }
 
diff --git a/pkg/frame/controller/types.go b/pkg/frame/controller/types.go
index d678a52..8e093a1 100644
--- a/pkg/frame/controller/types.go
+++ b/pkg/frame/controller/types.go
@@ -89,19 +89,26 @@ type ReconcileRequeueOptions interface {
        EmployeeSyncRequeueInterval() time.Duration
 }
 
+// todo separate employer and employee
 // ReconcileAdapter is the interface that customized controllers should implement.
 type ReconcileAdapter interface {
+       // todo make it default, no need to implement a method
        GetControllerName() string
 
+       // todo make it optional, since no need to be implemented if not follow podopslifecycle
        // GetSelectedEmployeeNames returns employees' names selected by employer
-       // note: in multi cluster case, if adapters deployed in fed and employees are under local, the format of employeeName
-       // should be "employeeName" + "#" + "clusterName"
+       // note: in multi cluster case, if adapters following PodOpsLifecycle deployed in fed and employees are under local,
+       // the format of employeeName should be "employeeName" + "#" + "clusterName"
        GetSelectedEmployeeNames(ctx context.Context, employer client.Object) ([]string, error)
 
+       // todo 命名修改,这里其实是变更employer、employee相关的资源,而不是变更employer employee
+       // todo discussion, shall we pass an interface between these methods, so that adapters can pass something
+
        // GetExpectedEmployer and GetCurrentEmployer return expect/current status of employer from related backend provider
        GetExpectedEmployer(ctx context.Context, employer client.Object) ([]IEmployer, error)
        GetCurrentEmployer(ctx context.Context, employer client.Object) ([]IEmployer, error)
 
+       // todo discussion: do we need separate Create/Update/Delete
        // CreateEmployer/UpdateEmployer/DeleteEmployer handles creation/update/deletion of resources related to employer on related backend provider
        CreateEmployer(ctx context.Context, employer client.Object, toCreates []IEmployer) ([]IEmployer, []IEmployer, error)
        UpdateEmployer(ctx context.Context, employer client.Object, toUpdates []IEmployer) ([]IEmployer, []IEmployer, error)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions