Skip to content

Commit 94a69a9

Browse files
committed
Added rs test
1 parent e463d61 commit 94a69a9

File tree

2 files changed

+60
-14
lines changed

2 files changed

+60
-14
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,6 @@ def configure_cloud_qa(
287287
if "opsManager" in self["spec"]:
288288
del self["spec"]["opsManager"]
289289

290-
ensure_nested_objects(self, ["spec", "cloudManager", "configMapRef"])
291-
292290
if src_project_config_map_name is None and "cloudManager" in self["spec"]:
293291
src_project_config_map_name = self["spec"]["cloudManager"]["configMapRef"]["name"]
294292

@@ -302,6 +300,7 @@ def configure_cloud_qa(
302300
raise e
303301

304302
new_project_config_map_name = f"{self.name}-project-config"
303+
ensure_nested_objects(self, ["spec", "cloudManager", "configMapRef"])
305304
self["spec"]["cloudManager"]["configMapRef"]["name"] = new_project_config_map_name
306305

307306
src_cm.update({"projectName": f"{self.namespace}-{project_name}"})

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

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,24 @@
1-
from typing import Dict, Optional
1+
from typing import Dict
22

33
import pytest
4-
from kubeobject import CustomObject
5-
from kubernetes import client
6-
from kubetester import create_or_update_configmap, read_configmap
7-
from kubetester.certs import create_sharded_cluster_certs
8-
from kubetester.kubetester import ensure_nested_objects
4+
from kubetester import read_configmap, try_load
5+
from kubetester.certs import create_mongodb_tls_certs, create_sharded_cluster_certs
96
from kubetester.kubetester import fixture as yaml_fixture
107
from kubetester.mongodb import MongoDB
11-
from kubetester.mongotester import ShardedClusterTester
12-
from kubetester.operator import Operator
8+
from kubetester.mongotester import ReplicaSetTester, ShardedClusterTester
139
from kubetester.phase import Phase
1410
from tests import test_logger
1511
from tests.conftest import (
1612
LEGACY_OPERATOR_NAME,
1713
OPERATOR_NAME,
18-
get_central_cluster_client,
1914
get_default_operator,
2015
install_legacy_deployment_state_meko,
2116
log_deployments_info,
2217
)
2318
from tests.upgrades import downscale_operator_deployment
2419

2520
MDB_RESOURCE = "sh001-base"
21+
MDB_RS_RESOURCE = "rs"
2622
CERT_PREFIX = "prefix"
2723

2824
logger = test_logger.get_test_logger(__name__)
@@ -41,6 +37,8 @@
4137
If the sharded cluster resource correctly reconciles after upgrade/downgrade and scaling steps, we assume it works
4238
correctly.
4339
"""
40+
41+
4442
# TODO CLOUDP-318100: this test should eventually be updated and not pinned to 1.27 anymore
4543

4644

@@ -68,7 +66,7 @@ def server_certs(issuer: str, namespace: str) -> str:
6866
)
6967

7068

71-
@pytest.fixture(scope="module")
69+
@pytest.fixture(scope="function")
7270
def sharded_cluster(
7371
issuer_ca_configmap: str,
7472
namespace: str,
@@ -81,14 +79,44 @@ def sharded_cluster(
8179
name=MDB_RESOURCE,
8280
).configure(om=None, project_name=MDB_RESOURCE)
8381

82+
if try_load(resource):
83+
return resource
84+
8485
resource.set_version(custom_mdb_version)
8586
resource["spec"]["mongodsPerShardCount"] = 2
8687
resource["spec"]["configServerCount"] = 2
8788
resource["spec"]["mongosCount"] = 1
8889
resource["spec"]["persistent"] = True
8990
resource.configure_custom_tls(issuer_ca_configmap, CERT_PREFIX)
9091

91-
return resource.update()
92+
return resource
93+
94+
95+
@pytest.fixture(scope="module")
96+
def replica_set_certs(issuer: str, namespace: str):
97+
return create_mongodb_tls_certs(issuer, namespace, MDB_RS_RESOURCE, f"prefix-{MDB_RS_RESOURCE}-cert")
98+
99+
100+
@pytest.fixture(scope="module")
101+
def replica_set(
102+
issuer_ca_configmap: str,
103+
namespace: str,
104+
replica_set_certs: str,
105+
custom_mdb_version: str,
106+
):
107+
resource = MongoDB.from_yaml(
108+
yaml_fixture("replica-set-basic.yaml"),
109+
namespace=namespace,
110+
name=MDB_RS_RESOURCE,
111+
).configure(om=None, project_name=f"{MDB_RS_RESOURCE}")
112+
113+
if try_load(resource):
114+
return resource
115+
116+
resource.set_version(custom_mdb_version)
117+
resource.configure_custom_tls(issuer_ca_configmap, CERT_PREFIX)
118+
119+
return resource
92120

93121

94122
@pytest.mark.e2e_sharded_cluster_operator_upgrade_v1_27_to_mck
@@ -102,16 +130,23 @@ def test_install_legacy_deployment_state_meko(
102130
install_legacy_deployment_state_meko(namespace, managed_security_context, operator_installation_config)
103131

104132
def test_create_sharded_cluster(self, sharded_cluster: MongoDB):
133+
sharded_cluster.update()
105134
sharded_cluster.assert_reaches_phase(phase=Phase.Running, timeout=350)
106135

107136
def test_scale_up_sharded_cluster(self, sharded_cluster: MongoDB):
108-
sharded_cluster.load()
109137
sharded_cluster["spec"]["mongodsPerShardCount"] = 3
110138
sharded_cluster["spec"]["configServerCount"] = 3
111139
sharded_cluster.update()
112140
sharded_cluster.assert_reaches_phase(phase=Phase.Running, timeout=300)
113141

114142

143+
@pytest.mark.e2e_sharded_cluster_operator_upgrade_v1_27_to_mck
144+
class TestReplicaSetDeployment:
145+
def test_create_replica_set(self, replica_set: MongoDB):
146+
replica_set.update()
147+
replica_set.assert_reaches_phase(phase=Phase.Running, timeout=350)
148+
149+
115150
@pytest.mark.e2e_sharded_cluster_operator_upgrade_v1_27_to_mck
116151
class TestOperatorUpgrade:
117152

@@ -138,6 +173,12 @@ def test_sharded_cluster_reconciled(self, sharded_cluster: MongoDB, namespace: s
138173
def test_assert_connectivity(self, ca_path: str):
139174
ShardedClusterTester(MDB_RESOURCE, 1, ssl=True, ca_path=ca_path).assert_connectivity()
140175

176+
def test_replica_set_reconciled(self, replica_set: MongoDB):
177+
replica_set.assert_reaches_phase(phase=Phase.Running, timeout=850, ignore_errors=True)
178+
179+
def test_assert_connectivity_replica_set(self, ca_path: str):
180+
ReplicaSetTester(MDB_RS_RESOURCE, 3, ssl=True, ca_path=ca_path).assert_connectivity()
181+
141182
def test_scale_down_sharded_cluster(self, sharded_cluster: MongoDB, namespace: str):
142183
sharded_cluster.load()
143184
# Scale down both by 1
@@ -169,6 +210,12 @@ def test_sharded_cluster_reconciled(self, sharded_cluster: MongoDB):
169210
def test_assert_connectivity(self, ca_path: str):
170211
ShardedClusterTester(MDB_RESOURCE, 1, ssl=True, ca_path=ca_path).assert_connectivity()
171212

213+
def test_replica_set_reconciled(self, replica_set: MongoDB):
214+
replica_set.assert_reaches_phase(phase=Phase.Running, timeout=850, ignore_errors=True)
215+
216+
def test_assert_connectivity_replica_set(self, ca_path: str):
217+
ReplicaSetTester(MDB_RS_RESOURCE, 3, ssl=True, ca_path=ca_path).assert_connectivity()
218+
172219
def test_scale_up_sharded_cluster(self, sharded_cluster: MongoDB):
173220
sharded_cluster.load()
174221
sharded_cluster["spec"]["mongodsPerShardCount"] = 3

0 commit comments

Comments
 (0)