| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-04-06 | |||
| 14:40:27 | bauzas | by being permissive | |
| 14:40:45 | johnthetubaguy | dansmith: OK, yeah, that would consistent with not needing a microversion for new extra specs, but lets admins opt into avoid a typo | |
| 14:41:14 | johnthetubaguy | honestly, my preference is to make these a real part of the API, and controlled in microversions, as I find the whole thing a mess to use right now | |
| 14:41:19 | sean-k-mooney | johnthetubaguy: extra specs are generaly backend speicic too so are not portabl in genreal | |
| 14:41:52 | dansmith | johnthetubaguy: but extra_specs are open-ended anyway, so it seems odd to me to have some set of them, not even namespaced, be hard-version-controlled | |
| 14:41:55 | bauzas | sean-k-mooney: and I hate this | |
| 14:41:57 | sean-k-mooney | e.g. they need knoladge of the way the cloud was configured (filters, virtdriver, versions) | |
| 14:42:15 | bauzas | sean-k-mooney: in particular the libvirt knobs we introduced | |
| 14:42:24 | dansmith | sean-k-mooney: that's why I don't really want this validation in the first place | |
| 14:42:26 | bauzas | those are utterly specifics | |
| 14:42:32 | sean-k-mooney | bauzas: sure but without normallising extra_spcs wich is a differnet topic we cant fix that | |
| 14:42:40 | bauzas | hence being permissive | |
| 14:42:47 | sean-k-mooney | bauzas: no the libvirt ones are no worse the the powervm or vmware ones | |
| 14:42:54 | openstackgerrit | Ghanshyam Mann proposed openstack/nova master: Add new default roles in tenant tenant usage policies https://review.opendev.org/717587 | |
| 14:43:07 | sean-k-mooney | bauzas: many of the other virt diriver stated using the libvirt ones after we standarised them | |
| 14:43:29 | johnthetubaguy | dansmith: I guess I like what we did with traits, and wanted that for scheduler hints and extra specs, granted its hard to do retrospectively | |
| 14:43:34 | bauzas | (12:17:50) bauzas: ... or we set it to permissive by default | |
| 14:43:57 | bauzas | tbc, there are two alternatives | |
| 14:44:07 | bauzas | option A : let the operators opt-in | |
| 14:44:15 | sean-k-mooney | johnthetubaguy: schduler hints are seperate | |
| 14:44:18 | bauzas | option B : microversion everything | |
| 14:44:18 | johnthetubaguy | sean-k-mooney: that was because we asked them to, so our API is an abstraction that is useful, rather than a bag of virt driver flags | |
| 14:44:20 | dansmith | johnthetubaguy: yeah, doesn't seem like we can do that now without a large migration of everyone's custom specs, or our system ones | |
| 14:44:43 | sean-k-mooney | johnthetubaguy: yep and i would like if we could add back abstrations | |
| 14:44:53 | sean-k-mooney | johnthetubaguy: i noted as much in early verion of the validation patch | |
| 14:45:04 | sean-k-mooney | johnthetubaguy: its why we have we should move x and other comment in the code | |
| 14:45:46 | johnthetubaguy | dansmith: yeah, I would sadly agree that doing that is likely a waste of our valuable time at this point, FWIW, I find the documentation and structure useful on its own, it helped with image props. | |
| 14:45:47 | sean-k-mooney | ya the migration of the instance embeded flavor would be a pain although we could do it if neded | |
| 14:46:21 | dansmith | johnthetubaguy: agree, it's not worth it at this point | |
| 14:46:23 | sean-k-mooney | johnthetubaguy: well part of stephens work is to imporve the docs | |
| 14:46:34 | johnthetubaguy | so my proposal earlier was to alias in the new microversion, so you add a prefix for all non-system ones, but its a pain | |
| 14:46:54 | dansmith | so, crazy idea | |
| 14:47:45 | dansmith | what if we add a new namespace prefix that itself implies that the spec is validated.. something like system:numa_nodes, which would require validation, but otherwise be the same as numa_nodes, at least for the foreseeable future? | |
| 14:48:20 | sean-k-mooney | dansmith: i would prefer to define custom: | |
| 14:48:21 | dansmith | that would give us something we could eventually warn people about, deprecate the non-system numa_nodes in the future and then eventually land on anything not in system: becomes the "wild west of custom stuff" | |
| 14:48:23 | sean-k-mooney | to opt out | |
| 14:48:26 | sean-k-mooney | rather then opt in | |
| 14:48:40 | sean-k-mooney | and just validate all other namespaced extra specs | |
| 14:48:40 | bauzas | sorry, need to drop, urgent kitchen issue | |
| 14:48:45 | dansmith | sean-k-mooney: well, the problem is right now the entire non-namespaced space is custom | |
| 14:48:46 | bauzas | (kids at home, lovely) | |
| 14:49:00 | sean-k-mooney | dansmith: actully not quite | |
| 14:49:06 | sean-k-mooney | we messed up one key | |
| 14:49:09 | sean-k-mooney | but more or less | |
| 14:49:27 | frickler | I'm seeing nova-api lockup when running under apache2 mod-wsgi-py3 on stein with >1 thread enabled, is this a known issue? traceback looks like this and the server stops responding after answering some few requests correctly http://paste.openstack.org/show/PhzU6ZXQnkfrDjyAAAoe/ | |
| 14:49:27 | dansmith | sean-k-mooney: like bauzas says, I think that throwing the switch to opt-out right now is not great | |
| 14:49:59 | sean-k-mooney | ya whcih is why the valdiation parma was added | |
| 14:50:04 | sean-k-mooney | or old micorverions | |
| 14:50:10 | dansmith | right, | |
| 14:50:26 | dansmith | but as johnthetubaguy has said, it's hard for people to know what is being checked or not | |
| 14:50:47 | sean-k-mooney | yes that is true | |
| 14:51:03 | johnthetubaguy | a list of validated namespaces is a nice way forward | |
| 14:51:04 | sean-k-mooney | we also will have different behavior between osc and nova client | |
| 14:51:18 | johnthetubaguy | ideally the ones we already use would all fit into that list | |
| 14:51:27 | sean-k-mooney | johnthetubaguy: currently that would be everyting nova knows about in tree | |
| 14:51:29 | stephenfin | I can do permissive for now, then add an API to list all recognized extra specs in a future version with a new microversion. At that point, we could also switch to strict | |
| 14:51:43 | stephenfin | Would that do the trick? | |
| 14:51:47 | johnthetubaguy | the others are just not validated... we land at permissive for everything | |
| 14:51:53 | dansmith | sean-k-mooney: actually, it'd be everything we know how to validate | |
| 14:52:11 | johnthetubaguy | stephenfin: what dansmith is suggesting is a bit nicer, and the reverse of my CUSTOM namespace proposal | |
| 14:52:18 | sean-k-mooney | dansmith: stephenfin added validation for everyting i think | |
| 14:52:35 | sean-k-mooney | dansmith: but yes you are technically correct | |
| 14:52:50 | johnthetubaguy | basically be strict for all the in tree namesapces we use today, permissive for everything else | |
| 14:52:51 | stephenfin | johnthetubaguy: right, but who's going to do that work? | |
| 14:53:10 | sean-k-mooney | i had envisioned that after this if you adde an extra specs you would add a validator or extend the existing ones | |
| 14:53:28 | dansmith | sean-k-mooney: it would be easier to enforce that in code with a namespace | |
| 14:54:21 | sean-k-mooney | yes i just dont want operator to have to updated there exiting instance | |
| 14:54:37 | dansmith | well, they won't for the time being | |
| 14:55:00 | dansmith | we still honor the non-namespaced version, unvalidated for the foreseeable future | |
| 14:55:02 | stephenfin | johnthetubaguy: ah, wait, you mean be strict for e.g. 'hw:' namespaced extra specs, but not 'foo:' ? | |
| 14:55:07 | johnthetubaguy | so possible way forward, maybe... we drop the strict and disabled mode, we merge with permissive as the default, but we redefine the API as what dansmith said (i.e. only a microversion to add a new supported namesapce) | |
| 14:55:10 | sean-k-mooney | the other downside to a new name spaces if if we only have one the we have to put everyhtin into it | |
| 14:55:11 | johnthetubaguy | stephenfin: yeah | |
| 14:55:49 | johnthetubaguy | while its not what your code currently does... its actually an API definition / docs change. | |
| 14:55:49 | dansmith | johnthetubaguy: what does permissive mean? just log errors? | |
| 14:55:57 | sean-k-mooney | dansmith: yep | |
| 14:56:02 | stephenfin | nope | |
| 14:56:04 | johnthetubaguy | dansmith: it means only validate known keys, | |
| 14:56:05 | dansmith | sean-k-mooney: I was expecting we'd namespace everything, so things would become system:hw:thing | |
| 14:56:20 | stephenfin | permissive means 'hw:numa_nodes=asdassdf' is rejected, but 'sdfsdfsd:sdfsdf' isn't | |
| 14:56:21 | sean-k-mooney | stephenfin: it logs unknone keys | |
| 14:56:31 | sean-k-mooney | or did you not do that in the end | |
| 14:56:33 | stephenfin | and rejects them with a 4xx error | |
| 14:56:40 | stephenfin | oh,sorry | |
| 14:56:43 | johnthetubaguy | I didn't see a log in the code, thankfully | |
| 14:56:43 | dansmith | that's not permissive | |
| 14:56:45 | stephenfin | logs the unknown keys, yes | |
| 14:56:49 | stephenfin | or does it | |
| 14:57:01 | stephenfin | I'm not sure if I bothered included a log | |
| 14:57:04 | stephenfin | *including | |
| 14:57:10 | bauzas | you didn't | |
| 14:57:15 | stephenfin | ETOOMUCHNOISE | |
| 14:57:19 | sean-k-mooney | dansmith: strict rejects unkown keys with an error | |
| 14:57:34 | sean-k-mooney | permisive allows them and validates the values of keys it know about | |
| 14:57:40 | bauzas | honestly, that's why I want to move on | |
| 14:57:42 | sean-k-mooney | and disabled is a noop | |
| 14:57:42 | dansmith | sean-k-mooney: unknown keys in namespaces like hw: I assume? | |
| 14:57:51 | bauzas | we need to enable something and then discuss on a separate change | |
| 14:57:58 | stephenfin | any unknown keys | |
| 14:58:07 | stephenfin | e.g. hw:cpu_policyyy | |