| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-04-06 | |||
| 10:10:50 | bauzas | stephenfin: I'm just afraid that we could merge something that would opt-in | |
| 10:10:59 | bauzas | close to RC1 | |
| 10:11:09 | bauzas | stephenfin: but we can go like it is now | |
| 10:11:20 | bauzas | at least if we have ways to address issues easilty | |
| 10:11:42 | bauzas | because reviewing all the key and value regexes for every filter isn't an easy thing | |
| 10:11:47 | bauzas | but I don't want to hold this one | |
| 10:12:22 | bauzas | so, my take is : if we mess things up, we all assume that we're about to provide bugfixes that will touch the API behaviour and should be backportable | |
| 10:12:31 | bauzas | if we all agree on this, I'm thumbs up | |
| 10:12:36 | bauzas | gibi: stephenfin: johnthetubaguy: ^ | |
| 10:12:55 | bauzas | or we go permissive *by default* | |
| 10:13:05 | johnthetubaguy | hang on... I am missing something | |
| 10:13:06 | bauzas | (which is not the default case IIUC) | |
| 10:13:22 | johnthetubaguy | don't we currently do zero validation by default right now? | |
| 10:13:33 | gibi | bauzas: fixing bugs in the extra_spec validation will not need a new microversion in my view. | |
| 10:13:40 | johnthetubaguy | including after the proposed validation | |
| 10:13:58 | bauzas | gibi: me too, but I'm just saying that we will change the API behaviour silently | |
| 10:14:05 | johnthetubaguy | hang about | |
| 10:14:07 | bauzas | so we all need to accept it | |
| 10:14:10 | stephenfin | johnthetubaguy: no, after https://review.opendev.org/#/c/704643/ it's enabled by default | |
| 10:14:11 | johnthetubaguy | this totally requires a microversion | |
| 10:14:16 | gibi | bauzas: we fix bugs in the API behavior. Which was allowed before as well | |
| 10:14:24 | stephenfin | whoops | |
| 10:14:24 | bauzas | johnthetubaguy: this is enabled later in another change | |
| 10:14:27 | stephenfin | https://review.opendev.org/#/c/708436/ | |
| 10:14:33 | bauzas | 2.86 | |
| 10:14:33 | stephenfin | johnthetubaguy: got that ^ | |
| 10:14:59 | stephenfin | johnthetubaguy: It's a noop with the first patch. The microversion change to turn it on is a separate change | |
| 10:15:05 | bauzas | tbc, I'm okay with approving https://review.opendev.org/#/c/704643/ provided stephenfin (or me) just changes the commit msg | |
| 10:15:28 | johnthetubaguy | stephenfin: yeah, i.e. its added in a microversion | |
| 10:15:32 | bauzas | but I'm not okay with https://review.opendev.org/#/c/708436/ until we basically agree on the stuff I said | |
| 10:15:51 | johnthetubaguy | so... if you do an old microversion, there is no change | |
| 10:15:51 | bauzas | but as gibi said, bugfixes are accepted, so maybe I'm overthinking | |
| 10:16:00 | bauzas | correct | |
| 10:16:06 | gibi | correct | |
| 10:16:12 | johnthetubaguy | nope, bug fixes than change the API would be really bad right? | |
| 10:16:22 | johnthetubaguy | I am really confused here | |
| 10:16:32 | johnthetubaguy | code looks OK to me, but not agreed with the discussion here | |
| 10:16:36 | gibi | johnthetubaguy: if we broke the API we have to fix them with a bugfix. I don't see how that is a bad thing. | |
| 10:17:04 | johnthetubaguy | gibi: nope, we just keep a broken microversion, we did exactly that in the past, see the limits APIs | |
| 10:17:23 | johnthetubaguy | well, it depends on the bug... | |
| 10:17:26 | stephenfin | we're saying that additions to and bug fixes for the _registry_ of extra specs are okay and wouldn't need a microversion | |
| 10:17:32 | gibi | I'm sure that in other cases we said "client should not have to opt in to get a fix" | |
| 10:17:33 | stephenfin | not the API itself | |
| 10:17:41 | bauzas | okay, see, that's why I wanted some discussion about this | |
| 10:17:48 | johnthetubaguy | hmm... | |
| 10:17:50 | bauzas | ... or we set it to permissive by default | |
| 10:18:12 | johnthetubaguy | permissive by default seems pointless to me, needs to get on by default in a new microversion | |
| 10:18:14 | bauzas | and then we have a later change for turning it by default that would require approvals separately | |
| 10:18:15 | stephenfin | that has to be okay, because operators are currently allowed to specify their own extra specs for use in e.g. custom scheduler filters | |
| 10:18:37 | gibi | I think the differentiator was always like "Was the bug in the API was clearly a bad behavior?" | |
| 10:18:51 | bauzas | johnthetubaguy: I agree, the microversion bump would have to be on the 'turn on by default' | |
| 10:18:52 | stephenfin | if we were to say new extra spec == new microversion, we'd have to take that away from operators | |
| 10:18:57 | johnthetubaguy | it was, "does it impact security" I think | |
| 10:19:17 | johnthetubaguy | stephenfin: we would have to give them a namespace like CUSTOM: | |
| 10:19:34 | johnthetubaguy | so to use the new API microversion, they need to update their flavors | |
| 10:19:45 | stephenfin | if we were doing this from scratch, yes | |
| 10:19:57 | stephenfin | but there are custom extra specs in the wild now, so that ship has sailed | |
| 10:20:05 | johnthetubaguy | well, not quite | |
| 10:20:17 | johnthetubaguy | they would still work with older microversions right? | |
| 10:20:27 | bauzas | I don't want to rediscuss the spec https://specs.openstack.org/openstack/nova-specs/specs/ussuri/approved/flavor-extra-spec-validators.html | |
| 10:20:27 | johnthetubaguy | to move forward, they need a migration path | |
| 10:21:02 | johnthetubaguy | well... I guess we should be comparing this to image properties | |
| 10:21:06 | bauzas | I'm just okay with the plan, but from an implementation point of view, I feel that has necessarly to be discussed | |
| 10:21:47 | stephenfin | yeah, they could use the older microversions | |
| 10:22:50 | stephenfin | compared to image metadata properties, I think we're mostly in the same place now | |
| 10:23:22 | stephenfin | you can add a new image metadata property or modify an existing one (add a new value to an enum) | |
| 10:23:51 | johnthetubaguy | so I am stuggling to understand everyone's position in text form | |
| 10:25:08 | stephenfin | for example, setting the 'hw_pci_numa_affinity_policy' property would be rejected by a Train cloud but not an Ussuri cloud, regardless of microversion | |
| 10:25:20 | stephenfin | (since it was only added this cycle) | |
| 10:26:55 | johnthetubaguy | but to be rejected, they would need to be calling the new microversion right? | |
| 10:26:58 | bauzas | johnthetubaguy: stephenfin: the consensus I think is that https://review.opendev.org/#/c/704643/ is a nobrainer | |
| 10:27:01 | gibi | my position: I assume that the defined key-values are good (reviewed a good chunk of it), if we break something then we will fix it in a bugfix, I don't see other ways to prevent a break. custom extra_specs can be used with old microversion, and custom validator can be added to use the new microversion | |
| 10:27:36 | bauzas | but https://review.opendev.org/#/c/708436/ is debatable until we reach an agreement | |
| 10:27:57 | johnthetubaguy | I think we agree with the patch, but are unsure on future changes? | |
| 10:28:16 | stephenfin | johnthetubaguy: my position is that tying extra spec registry modifications to microversions is a lot of work and gives us almost nothing in return w.r.t. API interop | |
| 10:28:27 | bauzas | johnthetubaguy: I'm okay with https://review.opendev.org/#/c/704643/ because it's just a non-enabled framework | |
| 10:29:09 | bauzas | but we need to draw a line | |
| 10:29:32 | bauzas | we said in the spec that a microvesion would signal the fact that we enforce now | |
| 10:29:38 | bauzas | and I'm still OK with this | |
| 10:29:56 | stephenfin | because A) many extra specs are virt driver specific and therefore do different things on different clouds, B) flavor extra specs are admin-only by default, C) we've provided an escape lever for people that don't want this, and D) this is how image metadata props also work | |
| 10:30:10 | johnthetubaguy | bauzas: because that is what the current patches do right? | |
| 10:30:49 | johnthetubaguy | stephenfin: no, they mean the same thing on every cloud, just not all clouds have them available, at least that is the design | |
| 10:31:04 | bauzas | johnthetubaguy: correct, my only concern is the potential issues we could raise or any potential new keys we would want to provide | |
| 10:31:22 | johnthetubaguy | plus the wild west of custom scheduler stuff, which we need to keep | |
| 10:31:23 | bauzas | and that wasn't addressed in the spec AFAIK | |
| 10:31:39 | johnthetubaguy | bauzas: yeah, agreed with that worry | |
| 10:32:42 | bauzas | there are actually 2 different things in my mind | |
| 10:32:52 | bauzas | A/ a forgotten key | |
| 10:33:00 | bauzas | B/ a new key in a future release | |
| 10:33:36 | bauzas | A/ sounds a bug, and I personnally agree with gibi on the fact we should just accept to backport a bugfix aiming to fix such things | |
| 10:33:56 | bauzas | B/ is still undesigned in my mind | |
| 10:34:34 | bauzas | because 'Cloud OVH' could unsupport 'myfancynewkey' while 'Cloud Vexxhost' would | |
| 10:34:46 | gibi | bauzas: we might now better what to do with B as when we have the situation to add an new in tree key | |
| 10:35:05 | stephenfin | kick that decision to Victoria? :) | |
| 10:35:07 | bauzas | compared to now where both support it (well, actually, just accepting it silently) | |
| 10:35:18 | gibi | bauzas: those OVH and Vexxhost keys won't be in tree keys | |
| 10:35:36 | gibi | so they need to implement custom validators | |
| 10:35:45 | gibi | I guess | |
| 10:36:02 | bauzas | gibi: if this key is written to be used in a Victoria change, and if OVH lags with a Ussuri cloud compared to Vexxhost, then you'll see a change | |
| 10:36:33 | stephenfin | only the cloud operators themselves will see it though | |