def METHOD_NAME():
    """
    Resolve mpijob runtime according to the mpi-operator's supported crd-version.
    If specified on mlrun config set it likewise.
    If not specified, try resolving it according to the mpi-operator, otherwise set to default.
    Since this is a heavy operation (sending requests to k8s/API), and it's unlikely that the crd version
    will change in any context - cache it.
    :return: mpi operator's crd-version
    """
    global cached_mpijob_crd_version
    if not cached_mpijob_crd_version:
        # try to resolve the crd version with K8s API
        # backoff to use default if needed
        mpijob_crd_version = (
            _resolve_mpijob_crd_version_best_effort() or MPIJobCRDVersions.default()
        )
        if mpijob_crd_version not in MPIJobCRDVersions.all():
            raise ValueError(
                f"Unsupported mpijob crd version: {mpijob_crd_version}. "
                f"Supported versions: {MPIJobCRDVersions.all()}"
            )
        cached_mpijob_crd_version = mpijob_crd_version
    return cached_mpijob_crd_version