42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
import logging
|
|
|
|
import pytest
|
|
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
def _check_status_messages(ops_test):
|
|
""" Validate that the status messages are correct. """
|
|
expected_messages = {
|
|
"kubernetes-master": "Kubernetes master running.",
|
|
"kubernetes-worker": "Kubernetes worker running.",
|
|
"kubeapi-load-balancer": "Loadbalancer ready.",
|
|
}
|
|
for app, message in expected_messages.items():
|
|
for unit in ops_test.model.applications[app].units:
|
|
assert unit.workload_status_message == message
|
|
|
|
|
|
@pytest.mark.abort_on_fail
|
|
async def test_build_and_deploy(ops_test):
|
|
bundle = ops_test.render_bundle(
|
|
"tests/data/bundle.yaml", k8s_lb_charm=await ops_test.build_charm(".")
|
|
)
|
|
await ops_test.model.deploy(bundle)
|
|
await ops_test.model.wait_for_idle(wait_for_active=True, timeout=60 * 60)
|
|
_check_status_messages(ops_test)
|
|
|
|
|
|
async def test_kube_api_endpoint(ops_test):
|
|
""" Validate that using the old MITM-style relation works"""
|
|
master = ops_test.model.applications["kubernetes-master"]
|
|
worker = ops_test.model.applications["kubernetes-worker"]
|
|
await master.remove_relation("loadbalancer-internal", "kubeapi-load-balancer")
|
|
await master.remove_relation("loadbalancer-external", "kubeapi-load-balancer")
|
|
await master.add_relation("kube-api-endpoint", "kubeapi-load-balancer")
|
|
await master.add_relation("loadbalancer", "kubeapi-load-balancer")
|
|
await worker.add_relation("kube-api-endpoint", "kubeapi-load-balancer")
|
|
await ops_test.model.wait_for_idle(wait_for_active=True, timeout=30 * 60)
|
|
_check_status_messages(ops_test)
|