def test_orphaned_services_multi_rack(db_cluster):
    """ Issue https://github.com/scylladb/scylla-operator/issues/514 """
    new_nodes = []
    log.info("Add node to the rack 1")
    new_nodes.append(
        db_cluster.add_nodes(count=1,
                             dc_idx=0,
                             enable_auto_bootstrap=True,
                             rack=1))

    log.info("Add node to the rack 2")
    new_nodes.append(
        db_cluster.add_nodes(count=1,
                             dc_idx=0,
                             enable_auto_bootstrap=True,
                             rack=2))

    assert not get_orphaned_services(
        db_cluster
    ), "Orphaned services were found after grow cluster with new racks"

    log.info("Decommission of 2 nodes")
    for node in new_nodes:
        db_cluster.decommission(node[0])

    db_cluster.wait_for_pods_readiness(pods_to_wait=2,
                                       total_pods=len(db_cluster.nodes))
    assert not get_orphaned_services(
        db_cluster), "Orphaned services were found after decommission"
def test_orphaned_services_after_shrink_cluster(db_cluster):
    """ Issue https://github.com/scylladb/scylla-operator/issues/514 """
    log.info("Decommission of two node")
    db_cluster.decommission(db_cluster.nodes[-1])
    db_cluster.wait_for_pods_readiness(pods_to_wait=1,
                                       total_pods=len(db_cluster.nodes))

    assert not get_orphaned_services(
        db_cluster), "Orphaned services were found after decommission"

    db_cluster.decommission(db_cluster.nodes[-1])
    db_cluster.wait_for_pods_readiness(pods_to_wait=1,
                                       total_pods=len(db_cluster.nodes))

    assert not get_orphaned_services(
        db_cluster), "Orphaned services were found after decommission"
def test_orphaned_services_after_drain(db_cluster):
    """ Issue https://github.com/scylladb/scylla-operator/issues/514 """
    node_to_remove = random.choice(db_cluster.non_seed_nodes)
    node_to_remove_uid = node_to_remove.k8s_pod_uid
    log.info('TerminateNode %s (uid=%s)', node_to_remove, node_to_remove_uid)
    node_to_remove.drain_k8s_node()
    db_cluster.wait_for_pods_readiness(pods_to_wait=1,
                                       total_pods=len(db_cluster.nodes))
    assert not get_orphaned_services(
        db_cluster), "Orphaned services were found after drain"

    node_to_remove.mark_to_be_replaced()
    node_to_remove.wait_till_k8s_pod_get_uid(ignore_uid=node_to_remove_uid)
    node_to_remove.wait_for_pod_readiness()
    db_cluster.wait_for_pods_readiness(pods_to_wait=1,
                                       total_pods=len(db_cluster.nodes))
    assert not get_orphaned_services(
        db_cluster), "Orphaned services were found after replace"
Esempio n. 4
0
def test_orphaned_services_multi_rack(db_cluster):
    """ Issue https://github.com/scylladb/scylla-operator/issues/514 """
    log.info("Add node to the rack 1")
    new_node = db_cluster.add_nodes(count=1, dc_idx=0, enable_auto_bootstrap=True, rack=1)[0]

    log.info("Decommission newly added node from the rack 1")
    svc_name = new_node.name
    db_cluster.decommission(new_node)
    db_cluster.wait_for_pods_readiness(pods_to_wait=1, total_pods=len(db_cluster.nodes))

    log.info("Wait for deletion of the '%s' svc for just deleted pod", svc_name)
    wait_for_resource_absence(
        db_cluster=db_cluster, resource_type="svc", resource_name=svc_name, step=2, timeout=60)
    assert not get_orphaned_services(db_cluster), "Orphaned services were found after decommission"