On 8/21/2018 4:28 AM, Chris Dent wrote:
Since we're airing things out (which I think is a good thing, at
least in the long run), I'll add to this.

I think that's a pretty good example of where I did express some
resistance, especially since were it to come up again, I still would
express some (see below). But let's place that resistance in some
context.

In the epic irc discussion you mentioned that one fear is that I
might want to change the handling of microversions [2] because I'm
somewhat famously ambivalent about them. That's correct, I am.
However, I would hope that the fact that placement has one of the
easier and more flexible microversions systems around (written by
me) and I went to the trouble to extract it to a library [3] and I'm
the author of the latest revision on how to microversion [4] is
powerful evidence that once consensus is reached I will do my utmost
to make things align with our shared plans and goals.

Regarding microversions I was mostly thinking of the various times I've been asked in the placement channel if something warrants a microversion or if we can just bug fix it in, like microversion 1.26. I then generally feel like I need to be defensive when I say, "yes it's a behavior change in the API so it should." That makes me question how stringent others would be about upholding interoperability concerns if I weren't around. Maybe I'm admittedly too stringent and opt to be conservative at times, but I do make exceptions, e.g.:

https://review.openstack.org/#/c/583907/

Suffice it to say I realize "does this need a microversion?" is not always an easy question to answer, and I appreciate that you, jaypipes and efried at least ask me for my input on the matter. I have obviously failed to appreciate that.


So, with the notion of allocation or consumer types (both have been
discussed): If we start from the position that I've been with
placement from very early on and am cognizant of its several goals
and at the same time also aware of its limited "human resources" it
seems normal and appropriate to me that at least some members of the
group responsible for making it must make sure that we work to
choose the right things (of several choices) to do, in part by by
rigorously questioning additional features when existing planned
features are not yet done. In this case we might ask: is it right to
focus on incompletely thought out consumer type management for the
eventual support of quota handling (and other introspection) when we
haven't yet satisfied what has been described by some downstream
people (eglynn is example, to be specific) as job 1: getting shared
disk working correctly (which we still haven't managed across the
combined picture of nova and placement)?

If the question is, should nova be talking about solving one problem while there are still more unsolved problems? Ideally we should not, but that's not the nature of probably anything in openstack, at least in a project as big as nova. If it were, the compute API would be 100% compatible with volume-backed instances, and shelve wouldn't be such a dumpster fire. :) But we don't live in an ideal situation with infinite time and resources nor the luxury of forethought at all times so we must move forward with *something* lest we get nothing done.


 From my perspective questioning additional features, so that they
are well proven, is simply part of the job and we all should be
doing it. If we are never hitting questions and disagreements we are
almost certainly running blind and our results will be less good.

I totally agree, and realize there can be an echo chamber within nova which can be less than productive. As I noted earlier, I'm not sure the entire consumer types for counting qoutas solution is fully thought out at this point, so questioning it is appropriate until that's happened.


Once we've hashed things out, I'll help make what we've chosen
happen. The evidence of this is everywhere. Consider this: I've
known (at least subconsciously) about the big reveal in yesterday's
IRC discussion for a long time, but I keep working to make nova,
placement and OpenStack better. Day in, day out, in the face of what
is perhaps the biggest insult to my professional integrity that I've
ever experienced. If this were a different time some portion of "we"
would need to do pistols at dawn, but that's dumb. I just want to
get on with making stuff. The right stuff. Please don't question my
commitment, but do question my designs and plans and help me make
them the best they can be.

Elephant alert, to keep this healthy full exposure rolling: The kind
of questioning and "proving" described above happens all the time in
Nova with specs and other proposals that are presented. We ask
proposers to demonstrate that their ideas are necessary and sound,
and if they are not _or_ we don't have time, we say "no" or "later".
This is good and correct and part of the job and helps make nova the
best it can be given the many constraints it experiences. As far as
I can tell the main differences between me asking questions about
proposed placement features when they are presented by nova cores
and the more general nova-spec situation is who is being subjected
to the questions and by whom.

Yup, again I agree with you. I've had more than one reply written in this thread where after re-reading it, realized I was being hypocritical and deleted my reply (I'm amazed I've had the restraint at times to re-read my replies before sending, I'm usually putting my foot in my mouth). For example, nova wants consumer types in placement and there was pushback on that as convoluting an otherwise minimal consumers API. At the same time, nova is actively rejecting people every release that want to pass volume type through the compute API during boot from volume. Our reason being, "you can already achieve this by calling cinder, and our API is already terribly complex, so let's not add fuel to the fire." So I realize it goes both ways and I'm trying to keep that in mind when replying on this thread.

At this point, I think we're at:

1. Should placement be extracted into it's own git repo in Stein while nova still has known major issues which will have dependencies on placement changes, mainly modeling affinity?

2. If we extract, does it go under compute governance or a new project with a new PTL.

As I've said, I personally believe that unless we have concrete plans for the big items in #1, we shouldn't hold up the extraction. We said in Dublin we wouldn't extract to a new git repo in Rocky but we'd work up to that point so we could do it in Stein, so this shouldn't surprise anyone. The actual code extraction and re-packaging and all that is going to be the biggest technical issue with all of this, and will likely take all of stein to complete it after all the bugs are shaken out.

For #2, I think for now, in the interim, while we deal with the technical headache of the code extraction itself, it's best to leave the new repo under compute governance so the existing team is intact and we don't conflate the people issue with the technical issue at the same time. Get the hard technical part done first, and then we can move it out of compute governance. Once it's in its own git repo, we can change the core team as needed but I think it should be initialized with existing nova-core.

I'm only speaking for myself here. Others on the nova core team have their own thoughts (Dan, Jay and Mel have all mentioned theirs). The rest of the core team probably doesn't even care either way. Except Vek. Vek cares *deeply*.

--

Thanks,

Matt

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to