Massimo-
To decide if an instance should go to a compute node with or without overcommitment is easy; e.g. it could be done with host aggregates + setting metadata to the relevant flavors/images.
You could also use custom traits.
But is it in some way possible to decide that a certain project has a quota of x VCPUs without overcommitment, and y VCPUs with overcommitments ?
I'm not sure whether this helps, but it's easy to detect the allocation ratio of a compute node's VCPU resource via placement with GET /resource_providers/$cn_uuid/inventories/VCPU [1]. But breaking down a VCPU quota into different "classes" of VCPU sounds... impossible to me. But since you said
In particular I would like to use some compute nodes without overcommitments
...perhaps it would help you to use PCPUs instead of VCPUs for these. We started reporting PCPUs in Train [2]. efried [1] https://docs.openstack.org/api-ref/placement/?expanded=show-resource-provide... [2] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/cpu-res...