Skip to content

Commit 57e8730

Browse files
m1kolafealebenpae
authored andcommitted
CLOUDP-302068: Simplify abstraction over controller setup (#4124)
Current abstraction makes it hard to parametrise the controllers. Parametrisation is important when it comes to merging the enterprise and community operators where we would need to reduce reliance on environment arguments deep in the call stack to be able to run controllers of both operators in the same manager.
1 parent e1bf4ff commit 57e8730

File tree

10 files changed

+76
-203
lines changed

10 files changed

+76
-203
lines changed

api/v1/mdb/mongodb_types.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package mdb
22

33
import (
4-
"context"
54
"encoding/json"
65
"fmt"
76
"sort"
@@ -11,16 +10,13 @@ import (
1110
"github.com/pkg/errors"
1211
"k8s.io/apimachinery/pkg/labels"
1312
"sigs.k8s.io/controller-runtime/pkg/client"
14-
"sigs.k8s.io/controller-runtime/pkg/cluster"
15-
"sigs.k8s.io/controller-runtime/pkg/manager"
1613

1714
"github.com/mongodb/mongodb-kubernetes-operator/pkg/automationconfig"
1815
"github.com/mongodb/mongodb-kubernetes-operator/pkg/kube/annotations"
1916

2017
mdbcv1 "github.com/mongodb/mongodb-kubernetes-operator/api/v1"
2118
corev1 "k8s.io/api/core/v1"
2219
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23-
ctrl "sigs.k8s.io/controller-runtime"
2420

2521
v1 "github.com/10gen/ops-manager-kubernetes/api/v1"
2622
"github.com/10gen/ops-manager-kubernetes/api/v1/status"
@@ -148,10 +144,6 @@ func (m *MongoDB) GetMinimumMajorVersion() uint64 {
148144
return m.Spec.MinimumMajorVersion()
149145
}
150146

151-
func (m *MongoDB) AddValidationToManager(ctx context.Context, mgr manager.Manager, memberClustersMap map[string]cluster.Cluster) error {
152-
return ctrl.NewWebhookManagedBy(mgr).For(m).Complete()
153-
}
154-
155147
func (m *MongoDB) GetBackupSpec() *Backup {
156148
return m.Spec.Backup
157149
}
@@ -1204,10 +1196,6 @@ func (m *MongoDB) AddWarningIfNotExists(warning status.Warning) {
12041196
m.Status.Warnings = status.Warnings(m.Status.Warnings).AddIfNotExists(warning)
12051197
}
12061198

1207-
func (m *MongoDB) GetPlural() string {
1208-
return "mongodb"
1209-
}
1210-
12111199
func (m *MongoDB) GetStatus(...status.Option) interface{} {
12121200
return m.Status
12131201
}

api/v1/mdbmulti/mongodb_multi_types.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
package mdbmulti
22

33
import (
4-
"context"
54
"encoding/json"
65
"fmt"
76
"strings"
87

98
"github.com/blang/semver"
109
"sigs.k8s.io/controller-runtime/pkg/client"
11-
"sigs.k8s.io/controller-runtime/pkg/cluster"
12-
"sigs.k8s.io/controller-runtime/pkg/manager"
1310

1411
"github.com/mongodb/mongodb-kubernetes-operator/pkg/automationconfig"
1512

1613
mdbc "github.com/mongodb/mongodb-kubernetes-operator/api/v1"
1714
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
18-
ctrl "sigs.k8s.io/controller-runtime"
1915

2016
v1 "github.com/10gen/ops-manager-kubernetes/api/v1"
2117
mdbv1 "github.com/10gen/ops-manager-kubernetes/api/v1/mdb"
@@ -60,10 +56,6 @@ type MongoDBMultiCluster struct {
6056
Spec MongoDBMultiSpec `json:"spec"`
6157
}
6258

63-
func (m *MongoDBMultiCluster) AddValidationToManager(ctx context.Context, mgr manager.Manager, clt map[string]cluster.Cluster) error {
64-
return ctrl.NewWebhookManagedBy(mgr).For(m).Complete()
65-
}
66-
6759
func (m *MongoDBMultiCluster) GetProjectConfigMapNamespace() string {
6860
return m.Namespace
6961
}
@@ -235,10 +227,6 @@ func (m *MongoDBMultiSpec) GetAgentConfig() mdbv1.AgentConfig {
235227
return m.Agent
236228
}
237229

238-
func (m *MongoDBMultiCluster) GetPlural() string {
239-
return "mongodbmulticluster"
240-
}
241-
242230
func (m *MongoDBMultiCluster) GetStatus(...status.Option) interface{} {
243231
return m.Status
244232
}

api/v1/om/opsmanager_types.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
"k8s.io/apimachinery/pkg/runtime/schema"
1212
"k8s.io/apimachinery/pkg/types"
1313
"sigs.k8s.io/controller-runtime/pkg/client"
14-
"sigs.k8s.io/controller-runtime/pkg/cluster"
15-
"sigs.k8s.io/controller-runtime/pkg/manager"
1614

1715
"github.com/mongodb/mongodb-kubernetes-operator/pkg/kube/annotations"
1816

@@ -21,7 +19,6 @@ import (
2119
appsv1 "k8s.io/api/apps/v1"
2220
corev1 "k8s.io/api/core/v1"
2321
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24-
ctrl "sigs.k8s.io/controller-runtime"
2522

2623
v1 "github.com/10gen/ops-manager-kubernetes/api/v1"
2724
mdbv1 "github.com/10gen/ops-manager-kubernetes/api/v1/mdb"
@@ -66,10 +63,6 @@ type MongoDBOpsManager struct {
6663
Status MongoDBOpsManagerStatus `json:"status"`
6764
}
6865

69-
func (om *MongoDBOpsManager) AddValidationToManager(ctx context.Context, mgr manager.Manager, _ map[string]cluster.Cluster) error {
70-
return ctrl.NewWebhookManagedBy(mgr).For(om).Complete()
71-
}
72-
7366
func (om *MongoDBOpsManager) GetAppDBProjectConfig(ctx context.Context, secretClient secrets.SecretClient, client kubernetesClient.Client) (mdbv1.ProjectConfig, error) {
7467
var operatorVaultSecretPath string
7568
if secretClient.VaultClient != nil {
@@ -776,10 +769,6 @@ func (om *MongoDBOpsManager) AddBackupWarningIfNotExists(warning status.Warning)
776769
om.Status.BackupStatus.Warnings = status.Warnings(om.Status.BackupStatus.Warnings).AddIfNotExists(warning)
777770
}
778771

779-
func (om *MongoDBOpsManager) GetPlural() string {
780-
return "opsmanagers"
781-
}
782-
783772
func (om *MongoDBOpsManager) GetStatus(options ...status.Option) interface{} {
784773
if part, exists := status.GetOption(options, status.OMPartOption{}); exists {
785774
switch part.Value().(status.Part) {

api/v1/user/mongodbuser_types.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,6 @@ func (u *MongoDBUser) SetWarnings(warnings []status.Warning, _ ...status.Option)
191191
u.Status.Warnings = warnings
192192
}
193193

194-
func (u MongoDBUser) GetPlural() string {
195-
return "mongodbusers"
196-
}
197-
198194
func (u *MongoDBUser) GetStatus(...status.Option) interface{} {
199195
return u.Status
200196
}

controllers/controller.go

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

controllers/controller_test.go

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

controllers/operator/mongodbreplicaset_controller.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"k8s.io/apimachinery/pkg/api/errors"
1010
"k8s.io/apimachinery/pkg/runtime"
1111
"sigs.k8s.io/controller-runtime/pkg/client"
12-
"sigs.k8s.io/controller-runtime/pkg/cluster"
1312
"sigs.k8s.io/controller-runtime/pkg/controller"
1413
"sigs.k8s.io/controller-runtime/pkg/event"
1514
"sigs.k8s.io/controller-runtime/pkg/handler"
@@ -331,7 +330,7 @@ func (r *ReconcileMongoDbReplicaSet) reconcileHostnameOverrideConfigMap(ctx cont
331330

332331
// AddReplicaSetController creates a new MongoDbReplicaset Controller and adds it to the Manager. The Manager will set fields on the Controller
333332
// and Start it when the Manager is Started.
334-
func AddReplicaSetController(ctx context.Context, mgr manager.Manager, _ map[string]cluster.Cluster) error {
333+
func AddReplicaSetController(ctx context.Context, mgr manager.Manager) error {
335334
// Create a new controller
336335
reconciler := newReplicaSetReconciler(ctx, mgr.GetClient(), om.NewOpsManagerConnection)
337336
c, err := controller.New(util.MongoDbReplicaSetController, mgr, controller.Options{Reconciler: reconciler, MaxConcurrentReconciles: env.ReadIntOrDefault(util.MaxConcurrentReconcilesEnv, 1)})

controllers/operator/mongodbstandalone_controller.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"k8s.io/apimachinery/pkg/api/errors"
1010
"k8s.io/apimachinery/pkg/runtime"
1111
"sigs.k8s.io/controller-runtime/pkg/client"
12-
"sigs.k8s.io/controller-runtime/pkg/cluster"
1312
"sigs.k8s.io/controller-runtime/pkg/controller"
1413
"sigs.k8s.io/controller-runtime/pkg/event"
1514
"sigs.k8s.io/controller-runtime/pkg/handler"
@@ -48,7 +47,7 @@ import (
4847

4948
// AddStandaloneController creates a new MongoDbStandalone Controller and adds it to the Manager. The Manager will set fields on the Controller
5049
// and Start it when the Manager is Started.
51-
func AddStandaloneController(ctx context.Context, mgr manager.Manager, memberClustersMap map[string]cluster.Cluster) error {
50+
func AddStandaloneController(ctx context.Context, mgr manager.Manager) error {
5251
// Create a new controller
5352
reconciler := newStandaloneReconciler(ctx, mgr.GetClient(), om.NewOpsManagerConnection)
5453
c, err := controller.New(util.MongoDbStandaloneController, mgr, controller.Options{Reconciler: reconciler, MaxConcurrentReconciles: env.ReadIntOrDefault(util.MaxConcurrentReconcilesEnv, 1)})

0 commit comments

Comments
 (0)