Skip to content

Commit 11a5182

Browse files
authored
⚠️ remove cmamanagedby migration shim and drop addon-framework v0.9.3 support (#383)
Removes all compatibility code that allowed addons built with addon-framework <=v0.9.3 (using the deprecated WithInstallStrategy()) to coexist with the OCM addon-manager via the lifecycle: self annotation. - Delete pkg/addonmanager/controllers/cmamanagedby/ — the migration shim that cleared lifecycle: self annotations on ClusterManagementAddOns - Remove cmamanagedby controller instantiation from base_manager.go - Remove ManagedByAddonManager filter function and AddonManagementFilterFunc type from pkg/utils/helpers.go — the annotation check is no longer needed - Remove lifecycle: addon-manager annotation from integration test CMA setup — the annotation is now inert and has no effect Addon developers still using WithInstallStrategy() must migrate to declaring spec.installStrategy in their ClusterManagementAddOn CR. See open-cluster-management-io/ocm#1428 Closes open-cluster-management-io/ocm#355 Signed-off-by: Tesshu Flower <tflower@redhat.com>
1 parent a8d54fe commit 11a5182

6 files changed

Lines changed: 1 addition & 271 deletions

File tree

pkg/addonmanager/base_manager.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"open-cluster-management.io/addon-framework/pkg/addonmanager/controllers/agentdeploy"
2121
"open-cluster-management.io/addon-framework/pkg/addonmanager/controllers/certificate"
2222
"open-cluster-management.io/addon-framework/pkg/addonmanager/controllers/cmaconfig"
23-
"open-cluster-management.io/addon-framework/pkg/addonmanager/controllers/cmamanagedby"
2423
"open-cluster-management.io/addon-framework/pkg/addonmanager/controllers/registration"
2524
"open-cluster-management.io/addon-framework/pkg/agent"
2625
"open-cluster-management.io/addon-framework/pkg/utils"
@@ -163,16 +162,6 @@ func (a *BaseAddonManagerImpl) StartWithInformers(ctx context.Context,
163162
mcaFilterFunc,
164163
)
165164

166-
// This controller is used during migrating addons to be managed by addon-manager.
167-
// This should be removed when the migration is done.
168-
// The migration plan refer to https://github.com/open-cluster-management-io/ocm/issues/355.
169-
managementAddonController := cmamanagedby.NewCMAManagedByController(
170-
addonClient,
171-
addonInformers.Addon().V1beta1().ClusterManagementAddOns(),
172-
a.addonAgents,
173-
utils.FilterByAddonName(a.addonAgents),
174-
)
175-
176165
var addonConfigController, managementAddonConfigController factory.Controller
177166
if len(a.addonConfigs) != 0 {
178167
// ManagedClusterAddOn filter is intentionally disabled for the addon-config-controller.
@@ -225,7 +214,6 @@ func (a *BaseAddonManagerImpl) StartWithInformers(ctx context.Context,
225214

226215
go deployController.Run(ctx, 1)
227216
go registrationController.Run(ctx, 1)
228-
go managementAddonController.Run(ctx, 1)
229217

230218
if addonConfigController != nil {
231219
go addonConfigController.Run(ctx, 1)

pkg/addonmanager/controllers/cmamanagedby/controller.go

Lines changed: 0 additions & 96 deletions
This file was deleted.

pkg/addonmanager/controllers/cmamanagedby/controller_test.go

Lines changed: 0 additions & 135 deletions
This file was deleted.

pkg/utils/helpers.go

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ import (
1818
"k8s.io/apimachinery/pkg/runtime/schema"
1919
coreclientv1 "k8s.io/client-go/kubernetes/typed/core/v1"
2020

21-
addonapiv1alpha1 "open-cluster-management.io/api/addon/v1alpha1"
21+
"open-cluster-management.io/addon-framework/pkg/agent"
2222
addonapiv1beta1 "open-cluster-management.io/api/addon/v1beta1"
2323
clusterv1 "open-cluster-management.io/api/cluster/v1"
24-
25-
"open-cluster-management.io/addon-framework/pkg/agent"
2624
)
2725

2826
func MergeRelatedObjects(modified *bool, objs *[]addonapiv1beta1.ObjectReference, obj addonapiv1beta1.ObjectReference) {
@@ -249,24 +247,6 @@ func ownerRefMatched(existing, required metav1.OwnerReference) bool {
249247
return true
250248
}
251249

252-
// AddonManagementFilterFunc is to check if the addon should be managed by addon manager or self-managed
253-
type AddonManagementFilterFunc func(cma *addonapiv1beta1.ClusterManagementAddOn) bool
254-
255-
func ManagedByAddonManager(obj interface{}) bool {
256-
accessor, _ := meta.Accessor(obj)
257-
annotations := accessor.GetAnnotations()
258-
if len(annotations) == 0 {
259-
return true
260-
}
261-
262-
value, ok := annotations[addonapiv1alpha1.AddonLifecycleAnnotationKey]
263-
if !ok {
264-
return true
265-
}
266-
267-
return value == addonapiv1alpha1.AddonLifecycleAddonManagerAnnotationValue
268-
}
269-
270250
func FilterByAddonName(agentAddons map[string]agent.AgentAddon) func(obj interface{}) bool {
271251
return func(obj interface{}) bool {
272252
accessor, _ := meta.Accessor(obj)

test/integration/kube/assertion_test.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1515
"k8s.io/apimachinery/pkg/runtime/schema"
1616
"open-cluster-management.io/addon-framework/pkg/utils"
17-
addonapiv1alpha1 "open-cluster-management.io/api/addon/v1alpha1"
1817
addonapiv1beta1 "open-cluster-management.io/api/addon/v1beta1"
1918
)
2019

@@ -55,9 +54,6 @@ func createClusterManagementAddOn(name, defaultConfigNamespace, defaultConfigNam
5554
&addonapiv1beta1.ClusterManagementAddOn{
5655
ObjectMeta: metav1.ObjectMeta{
5756
Name: name,
58-
Annotations: map[string]string{
59-
addonapiv1alpha1.AddonLifecycleAnnotationKey: addonapiv1alpha1.AddonLifecycleAddonManagerAnnotationValue,
60-
},
6157
},
6258
Spec: addonapiv1beta1.ClusterManagementAddOnSpec{
6359
DefaultConfigs: []addonapiv1beta1.AddOnConfig{

test/integration/v1alpha1_kube/assertion_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ func createClusterManagementAddOn(name, defaultConfigNamespace, defaultConfigNam
5454
&addonapiv1alpha1.ClusterManagementAddOn{
5555
ObjectMeta: metav1.ObjectMeta{
5656
Name: name,
57-
Annotations: map[string]string{
58-
addonapiv1alpha1.AddonLifecycleAnnotationKey: addonapiv1alpha1.AddonLifecycleAddonManagerAnnotationValue,
59-
},
6057
},
6158
Spec: addonapiv1alpha1.ClusterManagementAddOnSpec{
6259
SupportedConfigs: []addonapiv1alpha1.ConfigMeta{

0 commit comments

Comments
 (0)