Earlier  
Posted Nick Remark
#openstack-nova - 2020-04-06
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
14:58:13 stephenfin which is why I wanted strict
14:58:30 dansmith but people can use their own custom keys for scheduler behavior yeah? so we can't reject *everything*
14:58:35 bauzas stephenfin: it can still be a recommended choice
14:58:37 johnthetubaguy yeah, I think if we are strict for all known namespaces, it would be much better
14:58:43 bauzas stephenfin: but this would only be a doc thing
14:59:00 bauzas johnthetubaguy: we had this discussion 3 years ago
14:59:19 johnthetubaguy bauzas: we probably did, I might have been wrong then too
14:59:20 stephenfin dansmith: yes, and I've documented how they can add their own validators for whatever extra specs they want
14:59:27 bauzas johnthetubaguy: and we said we had to be accepting *any* key because we can't assume whether it's a typo or a custom key
14:59:28 dansmith wait,

Earlier   Later