def METHOD_NAME(
    host: str,
    port: int,
    timeout: float = 30,
    check_interval: int = 1,
    # set kwargs here to omit gRPC kwargs
    **kwargs: t.Any,
) -> None:
    start_time = time.time()
    status = None
    logger.debug("Waiting for host %s to be ready.", f"{host}:{port}")
    while time.time() - start_time < timeout:
        try:
            conn = HTTPConnection(host, port)
            conn.request("GET", "/readyz")
            status = conn.getresponse().status
            if status == 200:
                break
            else:
                time.sleep(check_interval)
        except (
            ConnectionError,
            urllib.error.URLError,
            socket.timeout,
            ConnectionRefusedError,
        ):
            logger.debug("Server is not ready. Retrying...")
            time.sleep(check_interval)
    # try to connect one more time and raise exception.
    try:
        conn = HTTPConnection(host, port)
        conn.request("GET", "/readyz")
        status = conn.getresponse().status
        if status != 200:
            raise TimeoutError(
                f"Timed out waiting {timeout} seconds for server at '{host}:{port}' to be ready."
            )
    except (
        ConnectionError,
        urllib.error.URLError,
        socket.timeout,
        ConnectionRefusedError,
        TimeoutError,
    ) as err:
        logger.error("Timed out while connecting to %s:%s:", host, port)
        logger.error(err)
        raise