public boolean compatibleWith(NodeResources requested) {
        if ( ! equal(this.vcpu, requested.vcpu)) return false;
        if ( ! equal(this.memoryGiB, requested.memoryGiB)) return false;
        if (this.storageType == StorageType.local || requested.storageType == StorageType.local) {
            if ( ! equal(this.diskGb, requested.diskGb)) return false;
        }
        else {
            if (this.diskGb < requested.diskGb) return false;
        }
        if ( ! this.gpuResources.equals(requested.gpuResources)) return false;
        if ( ! this.diskSpeed.compatibleWith(requested.diskSpeed)) return false;
        if ( ! this.storageType.compatibleWith(requested.storageType)) return false;
        if ( ! this.architecture.compatibleWith(requested.architecture)) return false;

        return true;
    }
Returns true if all the resources of this are the same as or compatible with the requested resources:
- Equal numbers only where request implies it (i.e not for disk if storage is any/remote, and not for bandwidth
  where we don't enforce constraints),
- Compatible non-numbers.
config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java