[openstack-dev] [placement] The "intended purpose" of traits
jaypipes at gmail.com
Sat Sep 29 15:40:44 UTC 2018
On 09/28/2018 04:36 PM, Eric Fried wrote:
> So here it is. Two of the top influencers in placement, one saying we
> shouldn't overload traits, the other saying we shouldn't add a primitive
> that would obviate the need for that. Historically, this kind of
> disagreement seems to result in an impasse: neither thing happens and
> those who would benefit are forced to find a workaround or punt.
> Frankly, I don't particularly care which way we go; I just want to be
> able to do the things.
I don't think that's a fair statement. You absolutely *do* care which
way we go. You want to encode multiple bits of information into a trait
string -- such as "PCI_ADDRESS_01_AB_23_CD" -- and leave it up to the
caller to have to understand that this trait string has multiple bits of
information encoded in it (the fact that it's a PCI device and that the
PCI device is at 01_AB_23_CD).
You don't see a problem encoding these variants inside a string. Chris
I *do* see a problem with it, based on my experience in Nova where this
kind of thing leads to ugly, unmaintainable, and incomprehensible code
as I have pointed to in previous responses.
Furthermore, your point isn't that "you just want to be able to do the
things". Your point (and the point of others, from Cyborg and Ironic) is
that you want to be able to use placement to pass various bits of
information to an instance, and placement wasn't designed for that
purpose. Nova was.
So, instead of working out a solution with the Nova team for passing
configuration data about an instance, the proposed solution is instead
to hack/encode multiple bits of information into a trait string. This
proposed solution is seen as a way around having to work out a more
appropriate solution that has Nova pass that configuration data (as is
appropriate, since nova is the project that manages instances) to the
virt driver or generic device manager (i.e. Cyborg) before the instance
I'm working on a spec that will describe a way for the user to instruct
Nova to pass configuration data to the virt driver (or device manager)
before instance spawn. This will have nothing to do with placement or
traits, since this configuration data is not modeling scheduling and
I hope to have that spec done by Monday so we can discuss on the spec.
More information about the OpenStack-dev