12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- import json
- from materialize.cloudtest.app.materialize_application import MaterializeApplication
- # NOTE [btv] - Quick and dirty hack: assume s1 is always mz_system and
- # s2 is always mz_support.
- #
- # This will need to be done properly (i.e., by actually looking up
- # the cluster id->name mapping in SQL) if that assumption ever changes.
- def test_roles(mz: MaterializeApplication) -> None:
- mz.wait_replicas()
- pods = json.loads(mz.kubectl("get", "pods", "-o", "json"))
- names_roles = (
- (
- item["metadata"]["name"],
- item["metadata"]
- .get("labels", {})
- .get("cluster.environmentd.materialize.cloud/replica-role"),
- )
- for item in pods["items"]
- )
- n_replica_pods = 0
- for name, role in names_roles:
- if name.startswith("cluster-s1"):
- assert role == "system-critical"
- n_replica_pods += 1
- elif name.startswith("cluster-s2"):
- assert role == "system"
- n_replica_pods += 1
- elif name.startswith("cluster-u"):
- assert role == "user"
- n_replica_pods += 1
- assert n_replica_pods >= 3
|