diff --git a/cmd/manager/main.go b/cmd/manager/main.go index f3edfc760..b775c7f95 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -27,6 +27,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/webhook" "github.com/percona/percona-server-mongodb-operator/pkg/apis" + psmdbv1 "github.com/percona/percona-server-mongodb-operator/pkg/apis/psmdb/v1" "github.com/percona/percona-server-mongodb-operator/pkg/controller" "github.com/percona/percona-server-mongodb-operator/pkg/k8s" "github.com/percona/percona-server-mongodb-operator/pkg/mcs" @@ -103,6 +104,23 @@ func main() { }), } + options.Controller.GroupKindConcurrency = map[string]int{ + "PerconaServerMongoDB." + psmdbv1.SchemeGroupVersion.Group: 1, + "PerconaServerMongoDBBackup." + psmdbv1.SchemeGroupVersion.Group: 1, + "PerconaServerMongoDBRestore." + psmdbv1.SchemeGroupVersion.Group: 1, + } + + if s := os.Getenv("MAX_CONCURRENT_RECONCILES"); s != "" { + if i, err := strconv.Atoi(s); err == nil && i > 0 { + options.Controller.GroupKindConcurrency["PerconaServerMongoDB."+psmdbv1.SchemeGroupVersion.Group] = i + options.Controller.GroupKindConcurrency["PerconaServerMongoDBBackup."+psmdbv1.SchemeGroupVersion.Group] = i + options.Controller.GroupKindConcurrency["PerconaServerMongoDBRestore."+psmdbv1.SchemeGroupVersion.Group] = i + } else { + setupLog.Error(err, "MAX_CONCURRENT_RECONCILES must be a positive number") + os.Exit(1) + } + } + // Add support for MultiNamespace set in WATCH_NAMESPACE if len(namespace) > 0 { namespaces := make(map[string]cache.Config) diff --git a/deploy/bundle.yaml b/deploy/bundle.yaml index b4eb345a8..b2b9036c7 100644 --- a/deploy/bundle.yaml +++ b/deploy/bundle.yaml @@ -19844,3 +19844,5 @@ spec: value: 5s - name: DISABLE_TELEMETRY value: "false" + - name: MAX_CONCURRENT_RECONCILES + value: "1" diff --git a/deploy/cw-bundle.yaml b/deploy/cw-bundle.yaml index d9e3938eb..8cb9ce653 100644 --- a/deploy/cw-bundle.yaml +++ b/deploy/cw-bundle.yaml @@ -19863,3 +19863,5 @@ spec: value: 5s - name: DISABLE_TELEMETRY value: "false" + - name: MAX_CONCURRENT_RECONCILES + value: "1" diff --git a/deploy/cw-operator.yaml b/deploy/cw-operator.yaml index b8ec3d38e..c45485a1f 100644 --- a/deploy/cw-operator.yaml +++ b/deploy/cw-operator.yaml @@ -46,3 +46,5 @@ spec: value: 5s - name: DISABLE_TELEMETRY value: "false" + - name: MAX_CONCURRENT_RECONCILES + value: "1" diff --git a/deploy/operator.yaml b/deploy/operator.yaml index 90d4d04a5..f73f9fbd1 100644 --- a/deploy/operator.yaml +++ b/deploy/operator.yaml @@ -48,3 +48,5 @@ spec: value: 5s - name: DISABLE_TELEMETRY value: "false" + - name: MAX_CONCURRENT_RECONCILES + value: "1"