diff --git a/python/src/mas/cli/install/app.py b/python/src/mas/cli/install/app.py index cbec2ba2ed..d787179766 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 387eaf73ff..a4f71c2d42 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 7ac4e0477f..86d80d584c 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 716e5eb690..7b909e2226 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 bb630221bc..801a42e929 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: