Skip to content

Commit 595a499

Browse files
weng271190436Wei Weng
andauthored
chore: remove placement_controllerv1alpha1 and test and v1alpha1 e2e test and integration test (#291)
* delete v1alpha1 placement controller Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * delete v1alpha1 e2e and integration tests Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * keep mcp controller and fix test Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * move test helper Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * consolidate test time constants Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * remove from unused make targets Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * delete install helm as well Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> --------- Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> Co-authored-by: Wei Weng <Wei.Weng@microsoft.com>
1 parent 9c049bb commit 595a499

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+83
-9187
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
## Repository upload token - get it from codecov.io. Required only for private repositories
5656
token: ${{ secrets.CODECOV_TOKEN }}
5757
## Comma-separated list of files to upload
58-
files: ./it-coverage.xml;./ut-coverage.xml
58+
files: ./ut-coverage.xml
5959

6060
e2e-tests:
6161
strategy:

Makefile

Lines changed: 1 addition & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -132,24 +132,6 @@ fmt: $(GOIMPORTS) ## Run go fmt against code.
132132
vet: ## Run go vet against code.
133133
go vet ./...
134134

135-
## --------------------------------------
136-
## Kind
137-
## --------------------------------------
138-
139-
# Note that these targets are only used for E2E tests of the v1alpha1 API.
140-
141-
create-hub-kind-cluster:
142-
kind create cluster --name $(HUB_KIND_CLUSTER_NAME) --image=$(KIND_IMAGE) --config=$(CLUSTER_CONFIG) --kubeconfig=$(KUBECONFIG)
143-
144-
create-member-kind-cluster:
145-
kind create cluster --name $(MEMBER_KIND_CLUSTER_NAME) --image=$(KIND_IMAGE) --config=$(CLUSTER_CONFIG) --kubeconfig=$(KUBECONFIG)
146-
147-
load-hub-docker-image:
148-
kind load docker-image --name $(HUB_KIND_CLUSTER_NAME) $(REGISTRY)/$(HUB_AGENT_IMAGE_NAME):$(HUB_AGENT_IMAGE_VERSION)
149-
150-
load-member-docker-image:
151-
kind load docker-image --name $(MEMBER_KIND_CLUSTER_NAME) $(REGISTRY)/$(REFRESH_TOKEN_IMAGE_NAME):$(REFRESH_TOKEN_IMAGE_VERSION) $(REGISTRY)/$(MEMBER_AGENT_IMAGE_NAME):$(MEMBER_AGENT_IMAGE_VERSION)
152-
153135
## --------------------------------------
154136
## test
155137
## --------------------------------------
@@ -175,69 +157,10 @@ integration-test: $(ENVTEST) ## Run tests.
175157
export CGO_ENABLED=1 && \
176158
export KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" && \
177159
ginkgo -v -p --race --cover --coverpkg=./pkg/scheduler/... ./test/scheduler && \
178-
ginkgo -v -p --race --cover --coverpkg=./... ./test/apis/... && \
179-
go test ./test/integration/... -coverpkg=./... -race -coverprofile=it-coverage.xml -v
160+
ginkgo -v -p --race --cover --coverpkg=./... ./test/apis/...
180161

181162
## local tests & e2e tests
182163

183-
install-hub-agent-helm:
184-
kind export kubeconfig --name $(HUB_KIND_CLUSTER_NAME)
185-
helm install hub-agent ./charts/hub-agent/ \
186-
--set image.pullPolicy=Never \
187-
--set image.repository=$(REGISTRY)/$(HUB_AGENT_IMAGE_NAME) \
188-
--set image.tag=$(HUB_AGENT_IMAGE_VERSION) \
189-
--set logVerbosity=5 \
190-
--set namespace=fleet-system \
191-
--set enableWebhook=true \
192-
--set webhookServiceName=fleetwebhook \
193-
--set webhookClientConnectionType=service \
194-
--set enableV1Alpha1APIs=true \
195-
--set enableV1Beta1APIs=false \
196-
--set enableClusterInventoryAPI=true \
197-
--set logFileMaxSize=1000000
198-
199-
.PHONY: e2e-v1alpha1-hub-kubeconfig-secret
200-
e2e-v1alpha1-hub-kubeconfig-secret:
201-
kind export kubeconfig --name $(HUB_KIND_CLUSTER_NAME)
202-
kubectl apply -f test/e2e/v1alpha1/hub-agent-sa-secret.yaml
203-
TOKEN=$$(kubectl get secret hub-kubeconfig-secret -n fleet-system -o jsonpath='{.data.token}' | base64 -d) ;\
204-
kind export kubeconfig --name $(MEMBER_KIND_CLUSTER_NAME) ;\
205-
kubectl delete secret hub-kubeconfig-secret --ignore-not-found ;\
206-
kubectl create secret generic hub-kubeconfig-secret --from-literal=token=$$TOKEN
207-
208-
install-member-agent-helm: install-hub-agent-helm e2e-v1alpha1-hub-kubeconfig-secret
209-
kind export kubeconfig --name $(HUB_KIND_CLUSTER_NAME)
210-
## Get kind cluster IP that docker uses internally so we can talk to the other cluster. the port is the default one.
211-
HUB_SERVER_URL="https://$$(docker inspect $(HUB_KIND_CLUSTER_NAME)-control-plane --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'):6443" ;\
212-
kind export kubeconfig --name $(MEMBER_KIND_CLUSTER_NAME) ;\
213-
helm install member-agent ./charts/member-agent/ \
214-
--set config.hubURL=$$HUB_SERVER_URL \
215-
--set image.repository=$(REGISTRY)/$(MEMBER_AGENT_IMAGE_NAME) \
216-
--set image.tag=$(MEMBER_AGENT_IMAGE_VERSION) \
217-
--set refreshtoken.repository=$(REGISTRY)/$(REFRESH_TOKEN_IMAGE_NAME) \
218-
--set refreshtoken.tag=$(REFRESH_TOKEN_IMAGE_VERSION) \
219-
--set image.pullPolicy=Never --set refreshtoken.pullPolicy=Never \
220-
--set config.memberClusterName="kind-$(MEMBER_KIND_CLUSTER_NAME)" \
221-
--set logVerbosity=5 \
222-
--set namespace=fleet-system
223-
# to make sure member-agent reads the token file.
224-
kubectl delete pod --all -n fleet-system
225-
226-
build-e2e-v1alpha1:
227-
go test -c ./test/e2e/v1alpha1
228-
229-
run-e2e-v1alpha1: build-e2e-v1alpha1
230-
KUBECONFIG=$(KUBECONFIG) HUB_SERVER_URL="https://$$(docker inspect $(HUB_KIND_CLUSTER_NAME)-control-plane --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'):6443" ./v1alpha1.test -test.v -ginkgo.v
231-
232-
.PHONY: create-kind-cluster
233-
create-kind-cluster: create-hub-kind-cluster create-member-kind-cluster install-helm
234-
235-
.PHONY: install-helm
236-
install-helm: load-hub-docker-image load-member-docker-image install-member-agent-helm
237-
238-
.PHONY: e2e-tests-v1alpha1
239-
e2e-tests-v1alpha1: create-kind-cluster run-e2e-v1alpha1
240-
241164
# E2E test label filter (can be overridden)
242165
LABEL_FILTER ?= !custom
243166

@@ -376,30 +299,6 @@ clean-bin: ## Remove all generated binaries
376299
rm -rf $(TOOLS_BIN_DIR)
377300
rm -rf ./bin
378301

379-
# Note that these targets are only used for E2E tests of the v1alpha1 API.
380-
381-
.PHONY: uninstall-helm
382-
uninstall-helm: clean-testing-resources
383-
kind export kubeconfig --name $(HUB_KIND_CLUSTER_NAME)
384-
helm uninstall hub-agent
385-
386-
kind export kubeconfig --name $(MEMBER_KIND_CLUSTER_NAME)
387-
helm uninstall member-agent
388-
389-
.PHONY: clean-testing-resources
390-
clean-testing-resources:
391-
kind export kubeconfig --name $(HUB_KIND_CLUSTER_NAME)
392-
kubectl delete ns fleet-member-kind-member-testing --ignore-not-found
393-
kubectl delete memberclusters.fleet.azure.com kind-$(MEMBER_KIND_CLUSTER_NAME) --ignore-not-found
394-
395-
kind export kubeconfig --name $(MEMBER_KIND_CLUSTER_NAME)
396-
kubectl delete ns fleet-member-kind-member-testing --ignore-not-found
397-
398-
.PHONY: clean-e2e-tests-v1alpha1
399-
clean-e2e-tests-v1alpha1:
400-
kind delete cluster --name $(HUB_KIND_CLUSTER_NAME)
401-
kind delete cluster --name $(MEMBER_KIND_CLUSTER_NAME)
402-
403302
.PHONY: clean-e2e-tests
404303
clean-e2e-tests:
405304
cd ./test/e2e && chmod +x ./stop.sh && ./stop.sh $(MEMBER_CLUSTER_COUNT)

cmd/hubagent/workload/setup.go

Lines changed: 16 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,9 @@ import (
2929
"k8s.io/klog/v2"
3030
clusterinventory "sigs.k8s.io/cluster-inventory-api/apis/v1alpha1"
3131
ctrl "sigs.k8s.io/controller-runtime"
32-
workv1alpha1 "sigs.k8s.io/work-api/pkg/apis/v1alpha1"
3332

3433
clusterv1beta1 "github.com/kubefleet-dev/kubefleet/apis/cluster/v1beta1"
3534
placementv1beta1 "github.com/kubefleet-dev/kubefleet/apis/placement/v1beta1"
36-
fleetv1alpha1 "github.com/kubefleet-dev/kubefleet/apis/v1alpha1"
3735
"github.com/kubefleet-dev/kubefleet/cmd/hubagent/options"
3836
"github.com/kubefleet-dev/kubefleet/pkg/controllers/bindingwatcher"
3937
"github.com/kubefleet-dev/kubefleet/pkg/controllers/clusterinventory/clusterprofile"
@@ -65,26 +63,18 @@ import (
6563
)
6664

6765
const (
68-
crpControllerName = "cluster-resource-placement-controller"
69-
crpControllerV1Alpha1Name = crpControllerName + "-v1alpha1"
70-
crpControllerV1Beta1Name = crpControllerName + "-v1beta1"
71-
rpControllerName = "resource-placement-controller"
72-
placementControllerName = "placement-controller"
66+
crpControllerName = "cluster-resource-placement-controller"
67+
crpControllerV1Beta1Name = crpControllerName + "-v1beta1"
68+
rpControllerName = "resource-placement-controller"
69+
placementControllerName = "placement-controller"
7370

7471
resourceChangeControllerName = "resource-change-controller"
75-
mcPlacementControllerName = "memberCluster-placement-controller"
7672

77-
schedulerQueueName = "scheduler-queue"
73+
schedulerQueueName = "scheduler-queue"
74+
mcPlacementControllerName = "memberCluster-placement-controller"
7875
)
7976

8077
var (
81-
v1Alpha1RequiredGVKs = []schema.GroupVersionKind{
82-
fleetv1alpha1.GroupVersion.WithKind(fleetv1alpha1.MemberClusterKind),
83-
fleetv1alpha1.GroupVersion.WithKind(fleetv1alpha1.InternalMemberClusterKind),
84-
fleetv1alpha1.GroupVersion.WithKind(fleetv1alpha1.ClusterResourcePlacementKind),
85-
workv1alpha1.SchemeGroupVersion.WithKind(workv1alpha1.WorkKind),
86-
}
87-
8878
v1Beta1RequiredGVKs = []schema.GroupVersionKind{
8979
clusterv1beta1.GroupVersion.WithKind(clusterv1beta1.MemberClusterKind),
9080
clusterv1beta1.GroupVersion.WithKind(clusterv1beta1.InternalMemberClusterKind),
@@ -183,23 +173,13 @@ func SetupControllers(ctx context.Context, wg *sync.WaitGroup, mgr ctrl.Manager,
183173
}
184174

185175
rateLimiter := options.DefaultControllerRateLimiter(opts.RateLimiterOpts)
186-
var clusterResourcePlacementControllerV1Alpha1 controller.Controller
187176
var clusterResourcePlacementControllerV1Beta1 controller.Controller
188177
var resourcePlacementController controller.Controller
189178
var memberClusterPlacementController controller.Controller
190179
if opts.EnableV1Alpha1APIs {
191-
for _, gvk := range v1Alpha1RequiredGVKs {
192-
if err = utils.CheckCRDInstalled(discoverClient, gvk); err != nil {
193-
klog.ErrorS(err, "unable to find the required CRD", "GVK", gvk)
194-
return err
195-
}
196-
}
197-
klog.Info("Setting up clusterResourcePlacement v1alpha1 controller")
198-
clusterResourcePlacementControllerV1Alpha1 = controller.NewController(crpControllerV1Alpha1Name, controller.NamespaceKeyFunc, pc.ReconcileV1Alpha1, rateLimiter)
199180
klog.Info("Setting up member cluster change controller")
200181
mcp := &memberclusterplacement.Reconciler{
201-
InformerManager: dynamicInformerManager,
202-
PlacementController: clusterResourcePlacementControllerV1Alpha1,
182+
InformerManager: dynamicInformerManager,
203183
}
204184
memberClusterPlacementController = controller.NewController(mcPlacementControllerName, controller.NamespaceKeyFunc, mcp.Reconcile, rateLimiter)
205185
}
@@ -520,7 +500,6 @@ func SetupControllers(ctx context.Context, wg *sync.WaitGroup, mgr ctrl.Manager,
520500
Recorder: mgr.GetEventRecorderFor(resourceChangeControllerName),
521501
RestMapper: mgr.GetRESTMapper(),
522502
InformerManager: dynamicInformerManager,
523-
PlacementControllerV1Alpha1: clusterResourcePlacementControllerV1Alpha1,
524503
PlacementControllerV1Beta1: clusterResourcePlacementControllerV1Beta1,
525504
ResourcePlacementController: resourcePlacementController,
526505
}
@@ -530,16 +509,15 @@ func SetupControllers(ctx context.Context, wg *sync.WaitGroup, mgr ctrl.Manager,
530509
resourceChangeDetector := &resourcewatcher.ChangeDetector{
531510
DiscoveryClient: discoverClient,
532511
RESTMapper: mgr.GetRESTMapper(),
533-
ClusterResourcePlacementControllerV1Alpha1: clusterResourcePlacementControllerV1Alpha1,
534-
ClusterResourcePlacementControllerV1Beta1: clusterResourcePlacementControllerV1Beta1,
535-
ResourcePlacementController: resourcePlacementController,
536-
ResourceChangeController: resourceChangeController,
537-
MemberClusterPlacementController: memberClusterPlacementController,
538-
InformerManager: dynamicInformerManager,
539-
ResourceConfig: resourceConfig,
540-
SkippedNamespaces: skippedNamespaces,
541-
ConcurrentPlacementWorker: int(math.Ceil(float64(opts.MaxConcurrentClusterPlacement) / 10)),
542-
ConcurrentResourceChangeWorker: opts.ConcurrentResourceChangeSyncs,
512+
ClusterResourcePlacementControllerV1Beta1: clusterResourcePlacementControllerV1Beta1,
513+
ResourcePlacementController: resourcePlacementController,
514+
ResourceChangeController: resourceChangeController,
515+
MemberClusterPlacementController: memberClusterPlacementController,
516+
InformerManager: dynamicInformerManager,
517+
ResourceConfig: resourceConfig,
518+
SkippedNamespaces: skippedNamespaces,
519+
ConcurrentPlacementWorker: int(math.Ceil(float64(opts.MaxConcurrentClusterPlacement) / 10)),
520+
ConcurrentResourceChangeWorker: opts.ConcurrentResourceChangeSyncs,
543521
}
544522

545523
if err := mgr.Add(resourceChangeDetector); err != nil {

0 commit comments

Comments
 (0)