Well, I'd say it is not strictly speaking 'must be used for neutron', rather 'may be used'. I may have x machines suitable for neutron but some of them may end up being used for something else.
The OpenStack example with neutron is an easy one, but I might come up with a different set of tags which may make it less apparent.
---
It could be done analogous to the Linux routing (which picks the most specific route): pick the most specific set of tags and get machines for it first.
Well, I'd say it is not strictly speaking 'must be used for neutron', rather 'may be used'. I may have x machines suitable for neutron but some of them may end up being used for something else.
The OpenStack example with neutron is an easy one, but I might come up with a different set of tags which may make it less apparent.
---
It could be done analogous to the Linux routing (which picks the most specific route): pick the most specific set of tags and get machines for it first.