Skip to content

Commit

Permalink
refactor(auto-migration): unify types and support pod trigger
Browse files Browse the repository at this point in the history
  • Loading branch information
JackZxj committed Jul 14, 2023
1 parent 210156d commit 15592f4
Show file tree
Hide file tree
Showing 12 changed files with 545 additions and 146 deletions.
2 changes: 2 additions & 0 deletions cmd/controller-manager/app/controllermanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,14 @@ const (
FederatedClusterControllerName = "cluster"
MonitorControllerName = "monitor"
FollowerControllerName = "follower"
AutoMigrationControllerName = "automigration"
)

var knownControllers = map[string]controllermanager.StartControllerFunc{
FederatedClusterControllerName: startFederatedClusterController,
MonitorControllerName: startMonitorController,
FollowerControllerName: startFollowerController,
AutoMigrationControllerName: startAutoMigrationController,
}

var controllersDisabledByDefault = sets.New(MonitorControllerName)
Expand Down
22 changes: 3 additions & 19 deletions cmd/controller-manager/app/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,11 @@ import (
"k8s.io/klog/v2"

fedcorev1a1 "github.com/kubewharf/kubeadmiral/pkg/apis/core/v1alpha1"
"github.com/kubewharf/kubeadmiral/pkg/client/generic"
"github.com/kubewharf/kubeadmiral/pkg/controllermanager"
"github.com/kubewharf/kubeadmiral/pkg/controllers/automigration"
controllercontext "github.com/kubewharf/kubeadmiral/pkg/controllers/context"
"github.com/kubewharf/kubeadmiral/pkg/controllers/federate"
"github.com/kubewharf/kubeadmiral/pkg/controllers/federatedcluster"
"github.com/kubewharf/kubeadmiral/pkg/controllers/federatedtypeconfig"
"github.com/kubewharf/kubeadmiral/pkg/controllers/follower"
"github.com/kubewharf/kubeadmiral/pkg/controllers/monitor"
"github.com/kubewharf/kubeadmiral/pkg/controllers/scheduler"
Expand Down Expand Up @@ -190,24 +188,14 @@ func isFederateControllerEnabled(typeConfig *fedcorev1a1.FederatedTypeConfig) bo
func startAutoMigrationController(
ctx context.Context,
controllerCtx *controllercontext.Context,
typeConfig *fedcorev1a1.FederatedTypeConfig,
) (controllermanager.Controller, error) {
genericClient, err := generic.New(controllerCtx.RestConfig)
if err != nil {
return nil, fmt.Errorf("error creating generic client: %w", err)
}

federatedAPIResource := typeConfig.GetFederatedType()
federatedGVR := schemautil.APIResourceToGVR(&federatedAPIResource)

//nolint:contextcheck
controller, err := automigration.NewAutoMigrationController(
controllerConfigFromControllerContext(controllerCtx),
typeConfig,
genericClient,
controllerCtx.KubeClientset,
controllerCtx.DynamicClientset.Resource(federatedGVR),
controllerCtx.DynamicInformerFactory.ForResource(federatedGVR),
controllerCtx.FedClientset.CoreV1alpha1(),
controllerCtx.FedInformerFactory.Core().V1alpha1().FederatedObjects(),
controllerCtx.FederatedInformerManager,
)
if err != nil {
return nil, fmt.Errorf("error creating auto-migration controller: %w", err)
Expand All @@ -217,7 +205,3 @@ func startAutoMigrationController(

return controller, nil
}

func isAutoMigrationControllerEnabled(typeConfig *fedcorev1a1.FederatedTypeConfig) bool {
return typeConfig.Spec.AutoMigration != nil && typeConfig.Spec.AutoMigration.Enabled
}
5 changes: 0 additions & 5 deletions cmd/controller-manager/app/ftcmanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import (
const (
FederateControllerName = "federate"
GlobalSchedulerName = "scheduler"
AutoMigrationControllerName = "automigration"
)

var knownFTCSubControllers = map[string]controllermanager.FTCSubControllerInitFuncs{
Expand All @@ -35,8 +34,4 @@ var knownFTCSubControllers = map[string]controllermanager.FTCSubControllerInitFu
StartFunc: startFederateController,
IsEnabledFunc: isFederateControllerEnabled,
},
AutoMigrationControllerName: {
StartFunc: startAutoMigrationController,
IsEnabledFunc: isAutoMigrationControllerEnabled,
},
}
Loading

0 comments on commit 15592f4

Please sign in to comment.