Skip to content

Commit 5ee79b4

Browse files
committed
Allow for more than one deployment per test under cloud-qa
1 parent 35c3435 commit 5ee79b4

File tree

2 files changed

+45
-2
lines changed

2 files changed

+45
-2
lines changed

docker/mongodb-kubernetes-tests/kubetester/mongodb.py

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,18 @@ def __repr__(self):
250250

251251
def configure(
252252
self,
253-
om: MongoDBOpsManager,
253+
om: Optional[MongoDBOpsManager],
254+
project_name: str,
255+
api_client: Optional[client.ApiClient] = None,
256+
) -> MongoDB:
257+
if om is not None:
258+
return self.configure_ops_manager(om, project_name, api_client=api_client)
259+
else:
260+
return self.configure_cloud_qa(project_name, api_client=api_client)
261+
262+
def configure_ops_manager(
263+
self,
264+
om: Optional[MongoDBOpsManager],
254265
project_name: str,
255266
api_client: Optional[client.ApiClient] = None,
256267
) -> MongoDB:
@@ -267,6 +278,37 @@ def configure(
267278
self["spec"]["credentials"] = om.api_key_secret(self.namespace, api_client=api_client)
268279
return self
269280

281+
def configure_cloud_qa(
282+
self,
283+
project_name,
284+
src_project_config_map_name: str = None,
285+
api_client: Optional[client.ApiClient] = None,
286+
) -> MongoDB:
287+
if "opsManager" in self["spec"]:
288+
del self["spec"]["opsManager"]
289+
290+
ensure_nested_objects(self, ["spec", "cloudManager", "configMapRef"])
291+
292+
if src_project_config_map_name is None and "cloudManager" in self["spec"]:
293+
src_project_config_map_name = self["spec"]["cloudManager"]["configMapRef"]["name"]
294+
295+
try:
296+
src_cm = read_configmap(self.namespace, src_project_config_map_name, api_client=api_client)
297+
except client.ApiException as e:
298+
if e.status == 404:
299+
logger.debug("project config map is not specified, trying my-project as the source")
300+
src_cm = read_configmap(self.namespace, "my-project", api_client=api_client)
301+
else:
302+
raise e
303+
304+
new_project_config_map_name = f"{self.name}-project-config"
305+
self["spec"]["cloudManager"]["configMapRef"]["name"] = new_project_config_map_name
306+
307+
src_cm.update({"projectName": f"{self.namespace}-{project_name}"})
308+
create_or_update_configmap(self.namespace, new_project_config_map_name, src_cm, api_client=api_client)
309+
310+
return self
311+
270312
def configure_backup(self, mode: str = "enabled") -> MongoDB:
271313
ensure_nested_objects(self, ["spec", "backup"])
272314
self["spec"]["backup"]["mode"] = mode

docker/mongodb-kubernetes-tests/tests/upgrades/sharded_cluster_operator_upgrade_v1_27_to_mck.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ def sharded_cluster(
7979
yaml_fixture("sharded-cluster.yaml"),
8080
namespace=namespace,
8181
name=MDB_RESOURCE,
82-
)
82+
).configure(om=None, project_name=MDB_RESOURCE)
83+
8384
resource.set_version(custom_mdb_version)
8485
resource["spec"]["mongodsPerShardCount"] = 2
8586
resource["spec"]["configServerCount"] = 2

0 commit comments

Comments
 (0)