Earlier  
Posted Nick Remark
#openstack-nova - 2020-04-06
14:32:40 dansmith and rather the only thing we're versioning is the *behavior* of optionally validating them
14:34:10 openstackgerrit Lee Yarwood proposed openstack/nova master: virt: Provide block_device_info during rescue https://review.opendev.org/700811
14:34:11 openstackgerrit Lee Yarwood proposed openstack/nova master: libvirt: Add support for stable device rescue https://review.opendev.org/700812
14:34:11 openstackgerrit Lee Yarwood proposed openstack/nova master: compute: Report COMPUTE_RESCUE_BFV and check during rescue https://review.opendev.org/701429
14:34:12 openstackgerrit Lee Yarwood proposed openstack/nova master: api: Introduce microverion 2.86 allowing boot from volume rescue https://review.opendev.org/701430
14:34:12 openstackgerrit Lee Yarwood proposed openstack/nova master: compute: Extract _get_bdm_image_metadata into nova.utils https://review.opendev.org/705212
14:34:13 openstackgerrit Lee Yarwood proposed openstack/nova master: libvirt: Support boot from volume stable device instance rescue https://review.opendev.org/701431
14:34:15 johnthetubaguy hmm, I guess I worry *what* validation is actually being done, i.e. what is the supported list of that given Nova endpoint
14:34:43 dansmith johnthetubaguy: meaning you say validation=true and you don't know if the endpoint is new enough to validate numa_nodes or something?
14:35:30 bauzas johnthetubaguy: dansmith: stephenfin: sean-k-mooney: gibi: honestly, can we just enable the feature by being permissive now (and not having a microversion now) and discuss about those concerns in a later change ?
14:35:30 dansmith because if so, the easy way is to make validation=(yes|no|strict), and if you ask for strict validation while passing a key it doesn't support, then it fails and tells you
14:36:02 dansmith bauzas: not sure how we would do that
14:36:03 stephenfin bauzas: It's not permissive at the moment though, it's a no-op
14:36:24 johnthetubaguy its strict by default in the new microversion right?
14:36:29 stephenfin yes
14:36:35 bauzas dansmith: I personnally feel we only need a microversion once we default to be strict
14:36:53 dansmith bauzas: we need a microversion as soon as we add a parameter, AFAIK
14:36:54 bauzas my counter-proposal is to enable this feature but be opt-in
14:37:14 johnthetubaguy dansmith: hmm, I guess, although I thought we were against that approach before. I am more worried about the user listing the extra specs and trying to understand them
14:37:36 bauzas dansmith: yeah, if you mean a extraspec key, I don't disagree
14:37:49 dansmith johnthetubaguy: to be honest, the importance of this feature is pretty low to me
14:37:57 johnthetubaguy the strict/permissive/disabled thing sure needs a microversion to be added
14:38:13 dansmith we have no param right now, so we need a microversion regardless right?
14:38:22 johnthetubaguy dansmith: +1
14:38:23 dansmith and why as the yes/no/strict thing rejected before?
14:38:28 dansmith *was
14:38:40 bauzas okay, nevermind my counter-proposal, you're right
14:38:46 bauzas a microversion has to be added anyways
14:38:49 stephenfin it's not been rejected: that's what we have at the moment
14:38:53 johnthetubaguy it might have been silently ignored actually...
14:39:07 bauzas but I just feel we need to be permissive as default until we come up with a solid consensus on what we agree
14:39:18 sean-k-mooney johnthetubaguy: that would be an implemation detail of the route lib we are using if it was ignored
14:39:20 stephenfin johnthetubaguy: yeah, no query arg validation on that end point at the moment
14:39:23 sean-k-mooney its still an invalid query
14:39:26 johnthetubaguy (just because that API didn't have any query params before)
14:39:32 bauzas I tried to capture the problems and the proposals in https://review.opendev.org/#/c/708436/16//COMMIT_MSG
14:39:49 dansmith bauzas: I would prefer we default to non-strict validation if that's what you mean
14:39:57 bauzas correct
14:40:20 bauzas 2.86 would enable the feature
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

Earlier   Later