Esempio n. 1
0
def teardown(builder: ChartBuilder):
    builder.uninstall_chart()
    while True:
        if not kubectl_name_dict("configmap"):
            break
    info("Terminating...")
    info("airflow uninstalled")
def test_services_present(airflow_options, service: AirflowService):
    service_name = service.metadata.name
    if service_name in {"flower-svc", "redis-svc"}:
        skip_if_not_celery(airflow_options)

    service_info = kubectl_name_dict("service")
    assert service_info[service_name]["TYPE"] == "NodePort"

    def get_port(service: str):
        return service_info[service]["PORT(S)"][:4]

    assert get_port(service_name) == str(service.spec.ports[0].port)
Esempio n. 3
0
def build_chart(airflow_options, sql_options, redis_options,
                monitoring_options, cloud_options):
    add_host(airflow_options, force=True)
    build_airflow_image()
    builder = get_chart_builder(airflow_options, sql_options, redis_options,
                                monitoring_options, cloud_options)
    if kubectl_name_dict("persistentvolume"):
        # Stateful Sets do not automatically clean up their pvc templates so this
        # must be done manually
        info(check_output("kubectl delete pvc -n airflow --all".split(" ")))
    while True:
        if not filter_out_pvc(kubectl_name_dict("persistentvolume")):
            break
    with AvionixAirflowChartInstallationContext(
            builder,
            expected_status={"1/1", "3/3"},
            status_field="READY",
            uninstall_func=lambda: teardown(builder),
    ):
        while True:
            if deployments_are_ready():
                break
        yield
def test_namespaces_present(airflow_options):
    assert airflow_options.namespace in kubectl_name_dict("namespace")
    if airflow_options.in_kube_mode:
        assert airflow_options.pods_namespace in kubectl_name_dict("namespace")
def test_volumes_present(label):
    volume_info = filter_out_pvc(kubectl_name_dict("persistentvolume"))
    for volume in volume_info:
        volume_specific_info = volume_info[volume]
        assert volume_specific_info["CAPACITY"] == "50Mi"
        assert volume_specific_info["ACCESS MODES"] == "RWX"
def test_deployments_present(deployment, label, airflow_options):
    if deployment == label.redis_deployment_name:
        skip_if_not_celery(airflow_options)
    deployment_info = kubectl_name_dict("deployment")
    assert deployment in deployment_info
    assert deployment_info[deployment]["READY"] == "1/1"
Esempio n. 7
0
def deployments_are_ready():
    deployments = kubectl_name_dict("deployment")
    for deployment in deployments:
        if deployments[deployment]["READY"] != "1/1":
            return False
    return True