Skip to content

Commit 6e0501f

Browse files
weng271190436Wei Weng
andauthored
chore: 2 - remove v1alpha1 work (#303)
* remove CRP and MC validation Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * remove v1alpha1 work Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * change Makefile Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * return error if v1alpha1 API is enabled Signed-off-by: Wei Weng <Wei.Weng@microsoft.com> * apply suggestion 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 3510abe commit 6e0501f

27 files changed

+12
-4701
lines changed

Makefile

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -140,17 +140,13 @@ vet: ## Run go vet against code.
140140
test: manifests generate fmt vet local-unit-test integration-test## Run tests.
141141

142142
##
143-
## workaround to bypass the pkg/controllers/workv1alpha1 tests failure
144-
## rollout controller tests need a bit longer to complete, so we increase the timeout
145-
##
146-
# Set up the timeout parameters as some of the test lengths have exceeded the default 10 minute mark.
143+
# Set up the timeout parameters as some of the tests (rollout controller) lengths have exceeded the default 10 minute mark.
147144
# TO-DO (chenyu1): enable parallelization for single package integration tests.
148145
.PHONY: local-unit-test
149146
local-unit-test: $(ENVTEST) ## Run tests.
150147
export CGO_ENABLED=1 && \
151148
export KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) -p path)" && \
152-
go test ./pkg/controllers/workv1alpha1 -race -coverprofile=ut-coverage.xml -covermode=atomic -v && \
153-
go test `go list ./pkg/... ./cmd/... | grep -v pkg/controllers/workv1alpha1` -race -coverpkg=./... -coverprofile=ut-coverage.xml -covermode=atomic -v -timeout=20m
149+
go test `go list ./pkg/... ./cmd/...` -race -coverpkg=./... -coverprofile=ut-coverage.xml -covermode=atomic -v -timeout=20m
154150

155151
.PHONY: integration-test
156152
integration-test: $(ENVTEST) ## Run tests.

cmd/hubagent/main.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import (
3737
"sigs.k8s.io/controller-runtime/pkg/manager"
3838
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
3939
ctrlwebhook "sigs.k8s.io/controller-runtime/pkg/webhook"
40-
workv1alpha1 "sigs.k8s.io/work-api/pkg/apis/v1alpha1"
4140

4241
fleetnetworkingv1alpha1 "go.goms.io/fleet-networking/api/v1alpha1"
4342

@@ -70,7 +69,6 @@ const (
7069

7170
func init() {
7271
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
73-
utilruntime.Must(workv1alpha1.AddToScheme(scheme))
7472
utilruntime.Must(placementv1beta1.AddToScheme(scheme))
7573
utilruntime.Must(clusterv1beta1.AddToScheme(scheme))
7674
utilruntime.Must(apiextensionsv1.AddToScheme(scheme))

cmd/hubagent/options/options.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ type Options struct {
8787
// RateLimiterOpts is the ratelimit parameters for the work queue
8888
RateLimiterOpts RateLimitOptions
8989
// EnableV1Alpha1APIs enables the agents to watch the v1alpha1 CRs.
90+
// TODO(weiweng): remove this field soon. Only kept for backward compatibility.
9091
EnableV1Alpha1APIs bool
9192
// EnableV1Beta1APIs enables the agents to watch the v1beta1 CRs.
9293
EnableV1Beta1APIs bool

cmd/memberagent/main.go

Lines changed: 7 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,11 @@ import (
4747
"sigs.k8s.io/controller-runtime/pkg/log/zap"
4848
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
4949
"sigs.k8s.io/controller-runtime/pkg/webhook"
50-
workv1alpha1 "sigs.k8s.io/work-api/pkg/apis/v1alpha1"
5150

5251
clusterv1beta1 "github.com/kubefleet-dev/kubefleet/apis/cluster/v1beta1"
5352
placementv1beta1 "github.com/kubefleet-dev/kubefleet/apis/placement/v1beta1"
5453
imcv1beta1 "github.com/kubefleet-dev/kubefleet/pkg/controllers/internalmembercluster/v1beta1"
5554
"github.com/kubefleet-dev/kubefleet/pkg/controllers/workapplier"
56-
workv1alpha1controller "github.com/kubefleet-dev/kubefleet/pkg/controllers/workv1alpha1"
5755
"github.com/kubefleet-dev/kubefleet/pkg/propertyprovider"
5856
"github.com/kubefleet-dev/kubefleet/pkg/propertyprovider/azure"
5957
"github.com/kubefleet-dev/kubefleet/pkg/utils"
@@ -77,9 +75,10 @@ var (
7775
metricsAddr = flag.String("metrics-bind-address", ":8090", "The address the metric endpoint binds to.")
7876
enableLeaderElection = flag.Bool("leader-elect", false,
7977
"Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
80-
leaderElectionNamespace = flag.String("leader-election-namespace", "kube-system", "The namespace in which the leader election resource will be created.")
81-
enableV1Alpha1APIs = flag.Bool("enable-v1alpha1-apis", true, "If set, the agents will watch for the v1alpha1 APIs.")
82-
enableV1Beta1APIs = flag.Bool("enable-v1beta1-apis", false, "If set, the agents will watch for the v1beta1 APIs.")
78+
leaderElectionNamespace = flag.String("leader-election-namespace", "kube-system", "The namespace in which the leader election resource will be created.")
79+
// TODO(weiweng): only keep enableV1Alpha1APIs for backward compatibility with helm charts. Remove soon.
80+
enableV1Alpha1APIs = flag.Bool("enable-v1alpha1-apis", false, "If set, the agents will watch for the v1alpha1 APIs. This is deprecated and will be removed soon.")
81+
enableV1Beta1APIs = flag.Bool("enable-v1beta1-apis", true, "If set, the agents will watch for the v1beta1 APIs.")
8382
propertyProvider = flag.String("property-provider", "none", "The property provider to use for the agent.")
8483
region = flag.String("region", "", "The region where the member cluster resides.")
8584
cloudConfigFile = flag.String("cloud-config", "/etc/kubernetes/provider/config.json", "The path to the cloud cloudconfig file.")
@@ -112,7 +111,6 @@ func init() {
112111
klog.InitFlags(nil)
113112

114113
utilruntime.Must(clientgoscheme.AddToScheme(scheme))
115-
utilruntime.Must(workv1alpha1.AddToScheme(scheme))
116114
utilruntime.Must(clusterv1beta1.AddToScheme(scheme))
117115
utilruntime.Must(placementv1beta1.AddToScheme(scheme))
118116
//+kubebuilder:scaffold:scheme
@@ -358,22 +356,9 @@ func Start(ctx context.Context, hubCfg, memberConfig *rest.Config, hubOpts, memb
358356
discoverClient := discovery.NewDiscoveryClientForConfigOrDie(memberConfig)
359357

360358
if *enableV1Alpha1APIs {
361-
gvk := workv1alpha1.SchemeGroupVersion.WithKind(workv1alpha1.AppliedWorkKind)
362-
if err = utils.CheckCRDInstalled(discoverClient, gvk); err != nil {
363-
klog.ErrorS(err, "unable to find the required CRD", "GVK", gvk)
364-
return err
365-
}
366-
// create the work controller, so we can pass it to the internal member cluster reconciler
367-
workController := workv1alpha1controller.NewApplyWorkReconciler(
368-
hubMgr.GetClient(),
369-
spokeDynamicClient,
370-
memberMgr.GetClient(),
371-
restMapper, hubMgr.GetEventRecorderFor("work_controller"), 5, targetNS)
372-
373-
if err = workController.SetupWithManager(hubMgr); err != nil {
374-
klog.ErrorS(err, "Failed to create v1alpha1 controller", "controller", "work")
375-
return err
376-
}
359+
// TODO(weiweng): keeping v1alpha1 APIs for backward compatibility with helm charts. Remove soon.
360+
klog.Error("v1alpha1 APIs are no longer supported. Please switch to v1beta1 APIs")
361+
return errors.New("v1alpha1 APIs are no longer supported. Please switch to v1beta1 APIs")
377362
}
378363

379364
if *enableV1Beta1APIs {

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ require (
88
github.com/Azure/karpenter-provider-azure v1.5.1
99
github.com/crossplane/crossplane-runtime v1.17.0
1010
github.com/evanphx/json-patch/v5 v5.9.11
11-
github.com/go-logr/logr v1.4.3
1211
github.com/google/go-cmp v0.7.0
1312
github.com/onsi/ginkgo/v2 v2.23.4
1413
github.com/onsi/gomega v1.37.0
@@ -38,7 +37,6 @@ require (
3837
sigs.k8s.io/cloud-provider-azure/pkg/azclient v0.5.20
3938
sigs.k8s.io/cluster-inventory-api v0.0.0-20240730014211-ef0154379848
4039
sigs.k8s.io/controller-runtime v0.20.4
41-
sigs.k8s.io/work-api v0.0.0-20220407021756-586d707fdb2c
4240
)
4341

4442
require (
@@ -65,6 +63,7 @@ require (
6563
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
6664
github.com/fsnotify/fsnotify v1.9.0 // indirect
6765
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
66+
github.com/go-logr/logr v1.4.3 // indirect
6867
github.com/go-logr/zapr v1.3.0 // indirect
6968
github.com/go-openapi/jsonpointer v0.21.0 // indirect
7069
github.com/go-openapi/jsonreference v0.21.0 // indirect

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z
7272
github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
7373
github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo=
7474
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
75-
github.com/Azure/k8s-work-api v0.5.0 h1:DVOBt68NFTEVVV+vzz82WdTm4lroXuMd9ktfrfb/kU0=
76-
github.com/Azure/k8s-work-api v0.5.0/go.mod h1:CQiDOlNvMeKvGVer80PtvbW9X1cXq7EID9aMXyxkqPU=
7775
github.com/Azure/karpenter-provider-azure v1.5.1 h1:CH92k7EgLyufVk16c4EsCTUJKrVBBgbWJg85sjbQAHE=
7876
github.com/Azure/karpenter-provider-azure v1.5.1/go.mod h1:Sc2rQ+qqzv9J1Wr9jTpTpzDYsy0MJoNfqPromvH87n8=
7977
github.com/Azure/msi-dataplane v0.4.3 h1:dWPWzY4b54tLIR9T1Q014Xxd/1DxOsMIp6EjRFAJlQY=

pkg/controllers/membercluster/v1beta1/membercluster_suite_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
"sigs.k8s.io/controller-runtime/pkg/envtest"
3232
"sigs.k8s.io/controller-runtime/pkg/manager"
3333
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
34-
workv1alpha1 "sigs.k8s.io/work-api/pkg/apis/v1alpha1"
3534

3635
clusterv1beta1 "github.com/kubefleet-dev/kubefleet/apis/cluster/v1beta1"
3736
placementv1beta1 "github.com/kubefleet-dev/kubefleet/apis/placement/v1beta1"
@@ -71,8 +70,6 @@ var _ = BeforeSuite(func() {
7170
Expect(err).NotTo(HaveOccurred())
7271
err = clusterv1beta1.AddToScheme(scheme.Scheme)
7372
Expect(err).NotTo(HaveOccurred())
74-
err = workv1alpha1.AddToScheme(scheme.Scheme)
75-
Expect(err).NotTo(HaveOccurred())
7673

7774
//+kubebuilder:scaffold:scheme
7875
By("construct the k8s client")

pkg/controllers/placement/resource_selector.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import (
3232
"k8s.io/apimachinery/pkg/types"
3333
"k8s.io/klog/v2"
3434
"sigs.k8s.io/controller-runtime/pkg/client"
35-
workv1alpha1 "sigs.k8s.io/work-api/pkg/apis/v1alpha1"
3635

3736
fleetv1beta1 "github.com/kubefleet-dev/kubefleet/apis/placement/v1beta1"
3837
"github.com/kubefleet-dev/kubefleet/pkg/utils"
@@ -497,17 +496,6 @@ func generateRawContent(object *unstructured.Unstructured) ([]byte, error) {
497496
return rawContent, nil
498497
}
499498

500-
// generateManifest creates a manifest from the unstructured obj.
501-
func generateManifest(object *unstructured.Unstructured) (*workv1alpha1.Manifest, error) {
502-
rawContent, err := generateRawContent(object)
503-
if err != nil {
504-
return nil, err
505-
}
506-
return &workv1alpha1.Manifest{
507-
RawExtension: runtime.RawExtension{Raw: rawContent},
508-
}, nil
509-
}
510-
511499
// generateResourceContent creates a resource content from the unstructured obj.
512500
func generateResourceContent(object *unstructured.Unstructured) (*fleetv1beta1.ResourceContent, error) {
513501
rawContent, err := generateRawContent(object)

0 commit comments

Comments
 (0)