66import kubernetes .client
77import pytest
88from kubetester import create_or_update_secret , find_fixture , try_load
9- from kubetester .kubetester import KubernetesTester
9+ from kubetester .kubetester import KubernetesTester , ensure_ent_version
1010from kubetester .kubetester import fixture as yaml_fixture
1111from kubetester .mongodb import MongoDB
1212from kubetester .mongodb_multi import MongoDBMulti
@@ -70,13 +70,18 @@ def get_replica_set(ops_manager, namespace: str, idx: int) -> MongoDB:
7070 return resource
7171
7272
73- def get_mdbmc (ops_manager , namespace : str , idx : int ) -> MongoDBMulti :
73+ def get_mdbmc (
74+ ops_manager , namespace : str , idx : int
75+ ) -> MongoDBMulti :
7476 name = f"mdb-{ idx } -mc"
7577 resource = MongoDBMulti .from_yaml (
7678 yaml_fixture ("mongodb-multi-cluster.yaml" ),
7779 namespace = namespace ,
7880 name = name ,
7981 ).configure (ops_manager , name , api_client = get_central_cluster_client ())
82+ resource .set_version (ensure_ent_version (get_custom_mdb_version ()))
83+ resource .api = kubernetes .client .CustomObjectsApi (get_central_cluster_client ())
84+ resource ["spec" ]["clusterSpecList" ] = cluster_spec_list (get_member_cluster_names (), [1 , 1 , 1 ])
8085
8186 try_load (resource )
8287 return resource
@@ -89,6 +94,8 @@ def get_sharded(ops_manager, namespace: str, idx: int) -> MongoDB:
8994 namespace = namespace ,
9095 name = name ,
9196 ).configure (ops_manager , name , api_client = get_central_cluster_client ())
97+ resource .set_version (get_custom_mdb_version ())
98+
9299 try_load (resource )
93100 return resource
94101
@@ -172,14 +179,13 @@ def test_create_mdb(ops_manager: MongoDBOpsManager, namespace: str):
172179
173180
174181@pytest .mark .e2e_om_reconcile_race_with_telemetry
175- def test_create_mdbmc (ops_manager : MongoDBOpsManager , namespace : str ):
182+ def test_create_mdbmc (
183+ ops_manager : MongoDBOpsManager , namespace : str
184+ ):
176185 for resource in get_all_mdbmc (ops_manager , namespace ):
177- resource .set_version (get_custom_mdb_version ())
178- resource ["spec" ]["clusterSpecList" ] = cluster_spec_list (get_member_cluster_names (), [1 , 1 , 1 ])
179186 resource .update ()
180-
181- for r in get_all_rs (ops_manager , namespace ):
182- r .assert_reaches_phase (Phase .Running )
187+ for r in get_all_mdbmc (ops_manager , namespace ):
188+ r .assert_reaches_phase (Phase .Running , timeout = 1600 )
183189
184190
185191@pytest .mark .e2e_om_reconcile_race_with_telemetry
@@ -188,7 +194,7 @@ def test_create_sharded(ops_manager: MongoDBOpsManager, namespace: str):
188194 resource .set_version (get_custom_mdb_version ())
189195 resource .update ()
190196
191- for r in get_all_rs (ops_manager , namespace ):
197+ for r in get_all_sharded (ops_manager , namespace ):
192198 r .assert_reaches_phase (Phase .Running )
193199
194200
@@ -198,7 +204,7 @@ def test_create_standalone(ops_manager: MongoDBOpsManager, namespace: str):
198204 resource .set_version (get_custom_mdb_version ())
199205 resource .update ()
200206
201- for r in get_all_rs (ops_manager , namespace ):
207+ for r in get_all_standalone (ops_manager , namespace ):
202208 r .assert_reaches_phase (Phase .Running )
203209
204210
@@ -216,6 +222,8 @@ def test_create_users(ops_manager: MongoDBOpsManager, namespace: str):
216222 resource .update ()
217223
218224 for r in get_all_rs (ops_manager , namespace ):
225+ for resource in get_all_users (ops_manager , namespace , mdb ):
226+ resource .assert_reaches_phase (Phase .Updated , timeout = 400 )
219227 r .assert_reaches_phase (Phase .Running )
220228
221229
@@ -232,13 +240,23 @@ def test_pod_logs_race(multi_cluster_operator: Operator):
232240
233241
234242@pytest .mark .e2e_om_reconcile_race_with_telemetry
235- def test_restart_operator_pod (ops_manager : MongoDBOpsManager , namespace : str , multi_cluster_operator : Operator ):
243+ def test_restart_operator_pod (
244+ ops_manager : MongoDBOpsManager ,
245+ namespace : str ,
246+ multi_cluster_operator : Operator
247+ ):
236248 # this enforces a requeue of all existing resources, increasing the chances of races to happen
237249 multi_cluster_operator .restart_operator_deployment ()
238250 multi_cluster_operator .assert_is_running ()
239251 time .sleep (5 )
240252 for r in get_all_rs (ops_manager , namespace ):
241253 r .assert_reaches_phase (Phase .Running )
254+ for r in get_all_mdbmc (ops_manager , namespace ):
255+ r .assert_reaches_phase (Phase .Running )
256+ for r in get_all_sharded (ops_manager , namespace ):
257+ r .assert_reaches_phase (Phase .Running )
258+ for r in get_all_standalone (ops_manager , namespace ):
259+ r .assert_reaches_phase (Phase .Running )
242260
243261
244262@pytest .mark .e2e_om_reconcile_race_with_telemetry
0 commit comments