| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-03-26 | |||
| 17:57:13 | mriedem | sean-k-mooney: these are nova upgrade docs... | |
| 17:57:17 | dansmith | sean-k-mooney: those are nova upgrade notes | |
| 17:57:18 | dansmith | heh | |
| 17:57:21 | efried | dansmith: Or write a post-filter. Yeah. | |
| 17:57:31 | sean-k-mooney | hehe ok fair point :) | |
| 17:57:45 | dansmith | efried: we can't do that, AFAIK | |
| 17:57:53 | mriedem | dansmith: i thought we did fail if a flavor has required traits in it but 1.17 isn't available? | |
| 17:57:55 | dansmith | efried: filters don't have access to the actual a-c I don't think | |
| 17:58:12 | dansmith | mriedem: we do, but they are arguing that it should fall back to 1.14 | |
| 17:58:21 | efried | dansmith: I'm not talking about a Filter. Talking about code in the report client that manually does the trait filtering. | |
| 17:58:23 | dansmith | and I'm saying I don't know what we do in that case, because 1.14 isn't enough | |
| 17:58:25 | mriedem | i disagree, | |
| 17:58:37 | mriedem | if the flavor has required traits, the admin is saying, 'i require traits for this flavor so make it happen or fail' | |
| 17:58:56 | dansmith | mriedem: agreed, and same for my aggregate requirement | |
| 17:58:59 | dansmith | there's no point in falling back | |
| 17:59:26 | efried | dansmith: Except that putting a trait in a flavor is a new thing the admin would do. | |
| 17:59:30 | mriedem | https://docs.openstack.org/nova/latest/user/flavors.html has something about required traits but doesn't say we fail explicitly if 1.17 isn't available | |
| 17:59:36 | dansmith | efried: so? | |
| 17:59:46 | efried | dansmith: But AZ filtering is something we're trying to make compatible with existing setups... no? | |
| 18:00:18 | dansmith | efried: but we can't test for membership from the client side | |
| 18:00:32 | dansmith | efried: at least not providing the same semantics the user is expecting | |
| 18:00:45 | dansmith | we can approximate it by looking in nova's notion of the aggregate, but it's not the same | |
| 18:01:15 | efried | dansmith: Sure, why not? That method has received the list of aggregate UUIDs. We can glean RP UUIDs by looking at placement. We just do the filtering on the client side rather than at the placement server. | |
| 18:01:25 | efried | I mean, it's likely to be horribly inefficient. | |
| 18:01:27 | dansmith | mriedem: that text implies NoValidHost if we can't find RPs with the traits requested, which is even less obvious about why it's failing | |
| 18:01:51 | efried | mriedem: TBC, I think we agree it was a miss that this issue wasn't considered one way or another in that traits review. We're kind of post-morteming what we *should* have done there. | |
| 18:02:12 | dansmith | well, fwiw, I had been assuming what our docs say, which is placement goes first | |
| 18:02:17 | efried | s/glean RP UUIDs/glean aggregate UUIDs for those RPs/ | |
| 18:02:38 | cdent | Is there a reason we can't assume placement goes first? | |
| 18:03:05 | cdent | I mean can we decide today that's how it is going to be? | |
| 18:03:21 | mriedem | efried: eh? if placement 1.17 isn't available for required traits in a flavor, i think we should fail | |
| 18:03:21 | dansmith | or acknowledge that we already did? :) | |
| 18:03:52 | cdent | dansmith: well, sure, yeah | |
| 18:04:18 | efried | mriedem: That seems like a reasonable decision to me. I wasn't necessarily advocating for anything else, just pointing out that there are other options. | |
| 18:04:28 | dansmith | efried: BS you were too :) | |
| 18:04:28 | efried | ableit sucky ones. | |
| 18:04:48 | efried | dansmith: Well I certainly was advocating for that in the case of your patch. | |
| 18:04:49 | dansmith | <efried>Whoah. Yes, we do, every time. | |
| 18:04:52 | dansmith | ^ | |
| 18:04:56 | dansmith | heh, okay | |
| 18:05:12 | efried | dansmith: Yeah, that was before I realized we had screwed the pug on the traits one. | |
| 18:05:33 | mriedem | for the traits one, the pug needed to get laid imo | |
| 18:05:44 | mriedem | not every case is a fallback situation | |
| 18:05:53 | dansmith | right | |
| 18:05:59 | efried | I (now) agree with that. | |
| 18:06:53 | efried | But dansmith I'm still needing to be told that it won't represent a regression if we go the failure path in the agg filtering case. | |
| 18:07:22 | efried | Like, does an existing flavor in an existing cloud quit working because we made this path fail (if they don't have recent placement)? | |
| 18:07:32 | dansmith | az is per user request | |
| 18:07:41 | dansmith | nothing to do with flavor | |
| 18:07:43 | dansmith | in this case | |
| 18:07:57 | efried | same thing as far as I'm concerned. Clouds have scripts. Or orchestrators, or whatever. That expect it to work a certain way. | |
| 18:08:31 | efried | If we put a real stake in the ground about upgrading placement first, it's moot. We can rip out the existing 406 code, never have to implement it again going forward. | |
| 18:08:32 | dansmith | okay I'm not sure what you're looking for here | |
| 18:08:53 | dansmith | efried: as mriedem said, I'm not opposed to all failback code | |
| 18:09:05 | dansmith | by any means, but this one has no legit alternate path imho | |
| 18:09:06 | efried | I would love to see us say placement must always be upgraded first. I just wasn't aware that was even a possibility. | |
| 18:09:18 | dansmith | for example, | |
| 18:09:37 | dansmith | the compute code paths may be able to tolerate older or newer placement because they're mostly just massaging data into the right format, | |
| 18:09:48 | dansmith | and we changed POST (or GET) once already and meh they can handle it | |
| 18:09:58 | dansmith | but this is more than just format and it's something the scheduler is hard depending on | |
| 18:10:27 | dansmith | so, I can use 1.17 if no aggregates are required, and only request 1.21 if they are, if you think that's better, but I don't think falling back to 1.17 is a thing for this | |
| 18:10:38 | dansmith | so we'll tolerate older placement if we don't need it, | |
| 18:10:50 | dansmith | although that just means the operator says "half these requests work, wtf?" | |
| 18:11:06 | dansmith | and, I think if we're going to do any of that, we need a real grenade test where the service is left unupgraded | |
| 18:11:10 | dansmith | otherwise we have nfi if it works or not | |
| 18:11:23 | jaypipes | -1 just because efried just said "screwed the pug" | |
| 18:11:36 | efried | I was wondering when you would catch up with that. | |
| 18:12:45 | efried | dansmith: My concern is this: will there be some script "out there" that says "do this AZ thing" that works on Queens, and then when they upgrade to Rocky, that same script will no longer work IF they're downlevel placement. | |
| 18:13:10 | dansmith | efried: yeah and I don't see that as a problem | |
| 18:13:13 | efried | And if the answer is yes, are we accepting that and our response would be "go upgrade placement" | |
| 18:13:16 | dansmith | efried: if the rule is placement goes first | |
| 18:13:38 | dansmith | efried: any idea how much will break if you upgrade nova-compute and nothing else? | |
| 18:13:57 | efried | dansmith: Then w00t and let's update the docs (mandatory) and let's rip out all the fallback code (optional) and let's forget anyone ever mentioned a grenade test. | |
| 18:14:19 | efried | dansmith: And in this case, use 1.21 and be done. | |
| 18:14:38 | efried | dansmith: Although actually it'll be 1.2x whenever the list-of-tuples business is approved and written. | |
| 18:14:49 | sean-k-mooney | efried: well if you boot a vm via horizon i think it forces you to specify an availablity zone so if nova has a hard dependcy on 1.21 for AZs to work that would break horizon booted vms if you did not upgrade placement | |
| 18:14:54 | dansmith | efried: see, I don't think that's the way to go.. using 1.21 means every time I need to bump the level for g-a-c, I have to go fix all the other code in that file which is perfectly fine with 1.1 | |
| 18:15:07 | dansmith | efried: that's the whole point of microversions, as I see it.. that you don't need to do that | |
| 18:15:19 | efried | dansmith: I'm talking about using 1.2x for just this method, not for the whole file. | |
| 18:15:20 | dansmith | efried: you opt into new features (and maintenance) on a per-call basis as you need it | |
| 18:15:26 | dansmith | efried: ack, okay | |
| 18:15:49 | jaypipes | right, exactly. | |
| 18:15:49 | efried | dansmith: But I *am* saying the fallback code elsewhere in the file (two places, I think) becomes dead and can be removed. | |
| 18:16:03 | dansmith | jaypipes: who are you agreeing with? | |
| 18:16:08 | jaypipes | dansmith: you. | |
| 18:16:16 | jaypipes | "you opt in ..." | |
| 18:16:18 | dansmith | jaypipes: okay I'm totes confused about where you sit on this then ;) | |
| 18:16:23 | efried | I was agreeing with that too. So everybody agrees. | |
| 18:16:58 | jaypipes | dansmith: I guess my butt hurts from the fence. | |
| 18:18:14 | jaypipes | dansmith: on the one hand I don't want to *always* force users to upgrade placement first when it's not necessary to. on the other hand, I see the futility of operators upgrading nova-scheduler first, placement second and having a time when some requests involving AZs suddenly start failing. | |
| 18:18:56 | jaypipes | dansmith: I was referring to sitting on the fence, there... | |
| 18:19:02 | jaypipes | in case that wasn't obvious ;) | |
| 18:19:08 | sean-k-mooney | jaypipes: well we would only be frocing them to upgrade placement first if they need a placement feature in nova | |
| 18:19:08 | dansmith | jaypipes: yeah, and I also don't think operators are at all complaining about having a clear order of services for upgrades | |
| 18:19:37 | jaypipes | dansmith: ok, then I'm cool with all of this, then. :) | |
| 18:19:46 | jaypipes | carry on. | |
| 18:19:47 | dansmith | aight | |
| 18:19:56 | jaypipes | sorry for being dense. | |
| 18:20:08 | sean-k-mooney | dansmith: well from an install tool poing of view ya most installers would perfer to always have a clear order of operations even if it wasnt strictly required. | |
| 18:20:31 | efried | jaypipes: Ugh, why is maxlength for a RP name 200? (As opposed to 255, like for trait and RC?) | |