def METHOD_NAME(
    request,
    kube_apis,
    ingress_controller_prerequisites,
    ingress_controller_endpoint,
    ingress_controller,
    test_namespace,
) -> TLSSetup:
    print("------------------------- Deploy TLS setup -----------------------------------")
    test_data_path = f"{TEST_DATA}/tls"
    ingress_path = f"{test_data_path}/{request.param}/ingress.yaml"
    create_ingress_from_yaml(kube_apis.networking_v1, test_namespace, ingress_path)
    wait_before_test(1)
    ingress_host = get_first_ingress_host_from_yaml(ingress_path)
    secret_name = get_name_from_yaml(f"{test_data_path}/tls-secret.yaml")
    ensure_connection_to_public_endpoint(
        ingress_controller_endpoint.public_ip, ingress_controller_endpoint.port, ingress_controller_endpoint.port_ssl
    )
    def fin():
        if request.config.getoption("--skip-fixture-teardown") == "no":
            print("Clean up TLS setup")
            delete_items_from_yaml(kube_apis, ingress_path, test_namespace)
            if is_secret_present(kube_apis.v1, secret_name, test_namespace):
                delete_secret(kube_apis.v1, secret_name, test_namespace)
    request.addfinalizer(fin)
    return TLSSetup(
        ingress_host,
        secret_name,
        f"{test_data_path}/tls-secret.yaml",
        f"{test_data_path}/new-tls-secret.yaml",
        f"{test_data_path}/invalid-tls-secret.yaml",
    )