|
9 | 9 | from kubernetes import client |
10 | 10 | from kubetester import try_load |
11 | 11 | from kubetester.custom_podspec import assert_volume_mounts_are_equal |
| 12 | +from kubetester.kubetester import assert_container_count_with_static |
12 | 13 | from kubetester.kubetester import fixture as yaml_fixture |
13 | 14 | from kubetester.kubetester import is_default_architecture_static |
14 | 15 | from kubetester.opsmanager import MongoDBOpsManager |
@@ -79,19 +80,26 @@ def test_backup_1_pod_becomes_ready(self, ops_manager: MongoDBOpsManager): |
79 | 80 |
|
80 | 81 | def test_appdb_pod_template_containers(self, ops_manager: MongoDBOpsManager): |
81 | 82 | appdb_sts = ops_manager.read_appdb_statefulset() |
82 | | - assert len(appdb_sts.spec.template.spec.containers) == 4 |
| 83 | + assert_container_count_with_static(len(appdb_sts.spec.template.spec.containers), 4) |
83 | 84 |
|
84 | 85 | assert appdb_sts.spec.template.spec.service_account_name == APPDB_SA_NAME |
85 | 86 |
|
86 | | - appdb_agent_container = appdb_sts.spec.template.spec.containers[2] |
87 | | - assert appdb_agent_container.name == "mongodb-agent" |
88 | | - assert appdb_agent_container.resources.limits["cpu"] == "750m" |
89 | | - assert appdb_agent_container.resources.limits["memory"] == "850M" |
90 | | - |
91 | | - assert appdb_sts.spec.template.spec.containers[0].name == "appdb-sidecar" |
92 | | - assert appdb_sts.spec.template.spec.containers[0].image == "busybox" |
93 | | - assert appdb_sts.spec.template.spec.containers[0].command == ["sleep"] |
94 | | - assert appdb_sts.spec.template.spec.containers[0].args == ["infinity"] |
| 87 | + found_agent_container = False |
| 88 | + found_sidecar_container = False |
| 89 | + for container in appdb_sts.spec.template.spec.containers: |
| 90 | + if container.name == "mongodb-agent": |
| 91 | + found_agent_container = True |
| 92 | + appdb_agent_container = container |
| 93 | + assert appdb_agent_container.resources.limits["cpu"] == "750m" |
| 94 | + assert appdb_agent_container.resources.limits["memory"] == "850M" |
| 95 | + elif container.name == "appdb-sidecar": |
| 96 | + found_sidecar_container = True |
| 97 | + assert container.image == "busybox" |
| 98 | + assert container.command == ["sleep"] |
| 99 | + assert container.args == ["infinity"] |
| 100 | + |
| 101 | + assert found_agent_container, "mongodb-agent container not found" |
| 102 | + assert found_sidecar_container, "appdb-sidecar container not found" |
95 | 103 |
|
96 | 104 | def test_appdb_persistence(self, ops_manager: MongoDBOpsManager, namespace: str): |
97 | 105 | # appdb pod volume claim template |
@@ -362,16 +370,15 @@ def test_backup_1_pod_becomes_ready(self, ops_manager: MongoDBOpsManager): |
362 | 370 |
|
363 | 371 | def test_appdb_pod_template(self, ops_manager: MongoDBOpsManager): |
364 | 372 | appdb_sts = ops_manager.read_appdb_statefulset() |
365 | | - assert len(appdb_sts.spec.template.spec.containers) == 4 |
366 | | - |
367 | | - appdb_mongod_container = appdb_sts.spec.template.spec.containers[1] |
368 | | - assert appdb_mongod_container.name == "mongod" |
| 373 | + assert_container_count_with_static(len(appdb_sts.spec.template.spec.containers), 4) |
369 | 374 |
|
370 | | - appdb_agent_container = appdb_sts.spec.template.spec.containers[2] |
371 | | - assert appdb_agent_container.name == "mongodb-agent" |
| 375 | + # Find each container by name instead of position |
| 376 | + containers_by_name = {c.name: c for c in appdb_sts.spec.template.spec.containers} |
372 | 377 |
|
373 | | - appdb_agent_monitoring_container = appdb_sts.spec.template.spec.containers[3] |
374 | | - assert appdb_agent_monitoring_container.name == "mongodb-agent-monitoring" |
| 378 | + # Check that all required containers exist |
| 379 | + assert "mongod" in containers_by_name, "mongod container not found" |
| 380 | + assert "mongodb-agent" in containers_by_name, "mongodb-agent container not found" |
| 381 | + assert "mongodb-agent-monitoring" in containers_by_name, "mongodb-agent-monitoring container not found" |
375 | 382 |
|
376 | 383 | assert appdb_sts.spec.template.metadata.annotations == {"annotation1": "val"} |
377 | 384 |
|
|
0 commit comments