Skip to content

Commit

Permalink
Merge pull request kubewharf#304 from Poor12/add-mcs-api
Browse files Browse the repository at this point in the history
feat: support mcs
  • Loading branch information
mrlihanbo authored Jan 18, 2024
2 parents 90e7d5e + 866450e commit efd5d30
Show file tree
Hide file tree
Showing 40 changed files with 2,914 additions and 47 deletions.
3 changes: 2 additions & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
zz_generated* linguist-generated=true
pkg/client linguist-generated=true
config/crds/*.yaml linguist-generated=true
config/crds/bases/core_kubeadmiral_io/*.yaml linguist-generated=true
config/crds/bases/multicluster_x-k8s_io/*.yaml linguist-generated=true
4 changes: 4 additions & 0 deletions cmd/controller-manager/app/controllermanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ const (
AutoMigrationControllerName = "auto-migration"
StatusAggregatorControllerName = "status-aggregator"
FederatedHPAControllerName = "federated-hpa"
ServiceExportControllerName = "serviceexport"
ServiceImportControllerName = "serviceimport"
)

var knownControllers = map[string]controllermanager.StartControllerFunc{
Expand All @@ -62,6 +64,8 @@ var knownControllers = map[string]controllermanager.StartControllerFunc{
AutoMigrationControllerName: startAutoMigrationController,
StatusAggregatorControllerName: startStatusAggregatorController,
FederatedHPAControllerName: startFederatedHPAController,
ServiceExportControllerName: startServiceExportController,
ServiceImportControllerName: startServiceImportController,
}

var controllersDisabledByDefault = sets.New[string]()
Expand Down
44 changes: 44 additions & 0 deletions cmd/controller-manager/app/core.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"github.com/kubewharf/kubeadmiral/pkg/controllers/federatedcluster"
"github.com/kubewharf/kubeadmiral/pkg/controllers/federatedhpa"
"github.com/kubewharf/kubeadmiral/pkg/controllers/follower"
"github.com/kubewharf/kubeadmiral/pkg/controllers/mcs"
"github.com/kubewharf/kubeadmiral/pkg/controllers/nsautoprop"
"github.com/kubewharf/kubeadmiral/pkg/controllers/override"
"github.com/kubewharf/kubeadmiral/pkg/controllers/policyrc"
Expand Down Expand Up @@ -344,3 +345,46 @@ func startFederatedHPAController(

return federatedHPAController, nil
}

func startServiceExportController(
ctx context.Context,
controllerCtx *controllercontext.Context,
) (controllermanager.Controller, error) {
serviceExportController, err := mcs.NewServiceExportController(
controllerCtx.KubeClientset,
controllerCtx.KubeInformerFactory.Discovery().V1beta1().EndpointSlices(),
controllerCtx.FederatedInformerManager,
klog.Background(),
controllerCtx.Metrics,
controllerCtx.WorkerCount,
)
if err != nil {
return nil, fmt.Errorf("error creating serviceexport controller: %w", err)
}

go serviceExportController.Run(ctx)

return serviceExportController, nil
}

func startServiceImportController(
ctx context.Context,
controllerCtx *controllercontext.Context,
) (controllermanager.Controller, error) {
serviceImportController, err := mcs.NewServiceImportController(
controllerCtx.KubeClientset,
controllerCtx.KubeInformerFactory.Discovery().V1beta1().EndpointSlices(),
controllerCtx.FedClientset,
controllerCtx.FedInformerFactory.Core().V1alpha1().FederatedObjects(),
controllerCtx.Metrics,
klog.Background(),
controllerCtx.WorkerCount,
)
if err != nil {
return nil, fmt.Errorf("error creating serviceimport controller: %w", err)
}

go serviceImportController.Run(ctx)

return serviceImportController, nil
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 42 additions & 0 deletions config/sample/host/01-ftc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -422,3 +422,45 @@ spec:
fields:
- metadata.creationTimestamp
- status
---
apiVersion: core.kubeadmiral.io/v1alpha1
kind: FederatedTypeConfig
metadata:
name: serviceimports.multicluster.x-k8s.io
spec:
sourceType:
kind: ServiceImport
pluralName: serviceimports
scope: Namespaced
version: v1alpha1
group: multicluster.x-k8s.io
controllers:
- - kubeadmiral.io/global-scheduler
- - kubeadmiral.io/overridepolicy-controller
---
apiVersion: core.kubeadmiral.io/v1alpha1
kind: FederatedTypeConfig
metadata:
name: serviceexports.multicluster.x-k8s.io
spec:
sourceType:
kind: ServiceExport
pluralName: serviceexports
scope: Namespaced
version: v1alpha1
group: multicluster.x-k8s.io
controllers:
- - kubeadmiral.io/global-scheduler
- - kubeadmiral.io/overridepolicy-controller
---
apiVersion: core.kubeadmiral.io/v1alpha1
kind: FederatedTypeConfig
metadata:
name: endpointslices.discovery.k8s.io
spec:
sourceType:
kind: EndpointSlice
pluralName: endpointslices
scope: Namespaced
version: v1beta1
group: discovery.k8s.io
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ require (
sigs.k8s.io/controller-runtime v0.14.1
sigs.k8s.io/custom-metrics-apiserver v1.27.0
sigs.k8s.io/kind v0.17.0
sigs.k8s.io/mcs-api v0.1.0
)

require (
Expand Down
Loading

0 comments on commit efd5d30

Please sign in to comment.