From dc8e70a0b1358e8a73e1c02bcd31776eaed6d35a Mon Sep 17 00:00:00 2001 From: Vaibhav Baraskar <> Date: Thu, 17 Sep 2026 13:18:21 +0530 Subject: [PATCH] [patch] add --mongodb-provider support in dev mode (community | mck | rotate) --- python/src/mas/cli/install/app.py | 7 +++++++ python/src/mas/cli/install/argBuilder.py | 3 +++ python/src/mas/cli/install/argParser.py | 7 +++++++ python/src/mas/cli/install/settings/mongodbSettings.py | 7 +++++++ python/src/mas/cli/install/summarizer.py | 3 +++ 5 files changed, 27 insertions(+) diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index cbec2ba2ed1..d7871797665 100644 --- a/python/src/mas/cli/install/app.py +++ b/python/src/mas/cli/install/app.py @@ -2440,6 +2440,13 @@ def nonInteractiveMode(self) -> None: self.setParam(key, value) self.setParam("sls_mongodb_cfg_file", f"/workspace/configs/mongo-{value}.yml") + elif key == "mongodb_provider": + if value: + if self.devMode: + self.setParam(key, value) + else: + raise ValueError("Mongo provider cannot be used in non-dev mode") + # SLS elif key == "license_file": if value is not None and value != "": diff --git a/python/src/mas/cli/install/argBuilder.py b/python/src/mas/cli/install/argBuilder.py index 387eaf73ff9..a4f71c2d42a 100644 --- a/python/src/mas/cli/install/argBuilder.py +++ b/python/src/mas/cli/install/argBuilder.py @@ -244,6 +244,9 @@ def buildCommand(self) -> str: if self.getParam("mongodb_namespace") != "": command += f" --mongodb-namespace \"{self.getParam('mongodb_namespace')}\"{newline}" + if self.devMode and self.getParam("mongodb_provider") != "": + command += f" --mongodb-provider \"{self.getParam('mongodb_provider')}\"{newline}" + # OCP Configuration # ----------------------------------------------------------------------------- if self.getParam("ocp_ingress_tls_secret_name") != "": diff --git a/python/src/mas/cli/install/argParser.py b/python/src/mas/cli/install/argParser.py index 7ac4e0477f1..86d80d584c0 100644 --- a/python/src/mas/cli/install/argParser.py +++ b/python/src/mas/cli/install/argParser.py @@ -526,6 +526,13 @@ def isValidFile(parser: argparse.ArgumentParser, arg: str) -> str: help="Namespace for MongoDB Community Operator", ) +mongoArgGroup.add_argument( + "--mongodb-provider", + required=False, + choices=["community", "mck", "rotate"], + help="Mongo provider to use (community or mck or rotate). Only valid with --dev-mode", +) + # OCP Configuration # ----------------------------------------------------------------------------- ocpArgGroup = installArgParser.add_argument_group( diff --git a/python/src/mas/cli/install/settings/mongodbSettings.py b/python/src/mas/cli/install/settings/mongodbSettings.py index 716e5eb690f..7b909e22267 100644 --- a/python/src/mas/cli/install/settings/mongodbSettings.py +++ b/python/src/mas/cli/install/settings/mongodbSettings.py @@ -61,6 +61,13 @@ def configMongoDb(self) -> None: ] ) + if self.devMode: + mongodb_provider = self.getParam("mongodb_provider") if self.getParam("mongodb_provider") else "community" + valid_providers = ["community", "mck", "rotate"] + if mongodb_provider not in valid_providers: + raise ValueError(f"Invalid mongodb_provider: {mongodb_provider}. Allowed: {valid_providers}") + self.setParam("mongodb_provider", mongodb_provider) + if (self.architecture != "s390x" and self.architecture != "ppc64le") and self.yesOrNo( "Create MongoDb cluster using MongoDb Community Edition Operator" ): diff --git a/python/src/mas/cli/install/summarizer.py b/python/src/mas/cli/install/summarizer.py index bb630221bc7..801a42e929b 100644 --- a/python/src/mas/cli/install/summarizer.py +++ b/python/src/mas/cli/install/summarizer.py @@ -587,6 +587,9 @@ def mongoSummary(self) -> None: if self.getParam("mongodb_action") == "install": self.printSummary("Type", "MongoCE Operator") self.printParamSummary("Install Namespace", "mongodb_namespace") + mongodb_provider = self.getParam("mongodb_provider") + if mongodb_provider: + self.printParamSummary("MongoDB Provider", "mongodb_provider") elif self.getParam("mongodb_action") == "byo": self.printSummary("Type", "BYO (mongodb-system.yaml)") else: