| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-09-24 | |||
| 14:01:13 | mriedem | i got him to change it to 255 to allow name | |
| 14:01:16 | dansmith | ah | |
| 14:01:31 | mriedem | anyway, i asked the question on https://review.openstack.org/#/c/604687/ | |
| 14:01:33 | dansmith | and that's their name restriction? | |
| 14:01:42 | mriedem | yes | |
| 14:01:44 | dansmith | that _is_ the downside of proxy apis I suppose, but .. :) | |
| 14:01:45 | dansmith | okay | |
| 14:02:11 | dansmith | surely we're not merging that until the rest of the patches are stacked on top right? | |
| 14:02:21 | mriedem | yes he split this out b/c i asked him to | |
| 14:02:30 | mriedem | and i asked him to rebase the rest back on top | |
| 14:02:36 | dansmith | okay cool | |
| 14:07:15 | mriedem | the other thing is if nova-api is going to validate that the requested volume type exists, we'll need to know if it's an id or a name, which kind of sucks | |
| 14:07:49 | mriedem | we can do is_uuid_like for that, but ... | |
| 14:09:12 | s10 | mriedem: can I ask to add volume_name in https://review.openstack.org/#/c/604687/ or it would be too much? | |
| 14:10:20 | mriedem | s10: and eventually description and az and hints and metadata... | |
| 14:15:29 | mriedem | s10: if people are going to want to also pass volume name for the next several years, i'd rather us just add that now in the same microversion, | |
| 14:15:33 | mriedem | dansmith: ^ what do you think? | |
| 14:15:53 | mriedem | this is the definition of the slippery slope with these proxy apis | |
| 14:16:13 | dansmith | I think I said name+volume already right? | |
| 14:16:17 | dansmith | did I miss other discussion? | |
| 14:16:47 | dansmith | oh | |
| 14:16:49 | dansmith | volume name? | |
| 14:16:50 | mriedem | name + volume_type? | |
| 14:16:56 | mriedem | yes, he's asking that we also proxy a volume name, | |
| 14:17:11 | dansmith | ffs | |
| 14:17:13 | mriedem | today nova-compute doesn't give name/description to any volumes it creates | |
| 14:17:32 | mriedem | ftersin had a patch to at least name the volumes that nova created | |
| 14:17:32 | s10 | mriedem: that's what we are doing :( we have our patch for volume name since 2014 and volume type since 2015. I will be happy to drop it and make our OpenStack more close to the upstream... | |
| 14:18:09 | openstackgerrit | Stephen Finucane proposed openstack/python-novaclient master: docs: Add redirects https://review.openstack.org/604796 | |
| 14:18:10 | dansmith | and we have to handle the multi-create case where they can't be the same name yeah? | |
| 14:18:35 | mriedem | depends on what cinder allows, checking the cinder db model | |
| 14:18:38 | dansmith | presumably that means we have to have all the handling for races even against volumes we didn't reate | |
| 14:19:08 | dansmith | I guess duplicate names may be allowed as long as we refer to them by uuid | |
| 14:19:17 | dansmith | but still... | |
| 14:19:21 | mriedem | yeah i don't see any unique constraint on volume names in the cinder db | |
| 14:19:34 | dansmith | we're five minutes into this and already inches are being given | |
| 14:19:37 | mriedem | nova has that weird config to restrict server names by project or global | |
| 14:19:57 | mriedem | i suppose that's more for fqdns | |
| 14:23:30 | dansmith | well, I dunno | |
| 14:23:46 | dansmith | tbh, taking name or setting it is not something I've heard asked before | |
| 14:24:03 | dansmith | I would tend to think that if we have no real restrictions we could name it after the instance without another param | |
| 14:24:06 | dansmith | but | |
| 14:25:23 | openstackgerrit | Sylvain Bauza proposed openstack/nova master: WIP: libvirt: implement reshaper for vgpu https://review.openstack.org/599208 | |
| 14:26:01 | mriedem | https://review.openstack.org/#/c/213433/ | |
| 14:26:09 | mriedem | ^ ftersin's old patch to name the volumes that nova creates | |
| 14:26:27 | dansmith | yeah, you said that, but... what about the volume/ | |
| 14:26:38 | dansmith | meaning, lots of people ask for volume_type, but was that the only one ask for name | |
| 14:26:39 | dansmith | ? | |
| 14:27:09 | mriedem | idk | |
| 14:27:23 | mriedem | i wouldn't be surprised if others would come out of the woodwork asking for proxying the name later | |
| 14:28:14 | dansmith | where does it end? | |
| 14:29:13 | mriedem | that's what i said above | |
| 14:29:19 | dansmith | I know | |
| 15:02:05 | efried | jaypipes: "efried: I specifically left out the "identification of the provider before you need it" because the clients of such a descriptor file would undoubtedly have different ideas of how to map local identifiers to RP identifiers." | |
| 15:02:44 | efried | jaypipes: If we're talking about RPs representing devices, yeah, which is what those last two specs are trying to define. | |
| 15:03:09 | efried | jaypipes: And those specs are attempting to account for the differences in hypervisors etc. | |
| 15:03:25 | efried | jaypipes: But what about e.g. NUMA node RPs? | |
| 15:03:41 | jaypipes | efried: yes. that is why I didn't put multiple providers in a single provider descriptor file and left it up to the caller to determine whether they use something like a directory with descriptor files named for the provider UUID or the provider's "local name" (NUMA0, compute_node, some PCI address, whatever...) | |
| 15:04:38 | jaypipes | efried: each hypervisor (or thing like Cyborg) is going to have its own way of identifying local devices. | |
| 15:04:54 | efried | I guess the same thing applies: as long as we've specified/documented how those RPs are going to be named, presumably the consumer can figure out what the names are going to be beforehand. | |
| 15:04:57 | jaypipes | efried: and therefore each hypervisor needs to "own" the mapping of its local device name to the resource provider UUID | |
| 15:05:13 | efried | well, yeah, but not everything is a device. | |
| 15:05:13 | jaypipes | efried: yes, exactly my point. | |
| 15:05:37 | bauzas | mmmm | |
| 15:05:49 | jaypipes | efried: if libvirt wants to call its root compute node provider "compute_node_{hostname}" cool. but Xen might call it, e.g. "dom0_{hostname}" | |
| 15:06:01 | bauzas | so the problem is to know which is which, right? | |
| 15:06:01 | jaypipes | efried: my point being we don't want to hard-code the names of things. | |
| 15:06:25 | efried | cdent's concern was that we don't want to require the consumer to go get a report from placement in order to figure out what's named what and then populate the file. His point was that that would be a PITA for deployment tools like ansible. | |
| 15:06:54 | efried | jaypipes: Oh, certainly don't want to hardcode the name of anything - couldn't if we wanted to. | |
| 15:07:40 | efried | but I guess we *do* need to make sure that the names are generated in a deterministic fashion that an operator can reproduce. | |
| 15:07:49 | jaypipes | efried: well, that's essentially what cdent's gripe involves: hard-coding the name of the compute node resource provider so tools like ansible can have a stable way of calling things like `openstack provider-inventory $HOSTNAME` | |
| 15:08:13 | efried | We've got to have a starting point. | |
| 15:08:26 | efried | and we've already established that part, I thought. | |
| 15:08:34 | jaypipes | efried: what part? | |
| 15:08:56 | efried | The root compute RP's UUID (the host UUID) and name (the node UUID) - right? | |
| 15:09:13 | efried | in non-ironic those are the same | |
| 15:09:15 | jaypipes | efried: yes, that ship is sailed. | |
| 15:09:22 | efried | okay, and I don't think that's a bad thing. | |
| 15:09:29 | jaypipes | efried: even for ironic. | |
| 15:09:36 | jaypipes | it's just the compute_nodes.uuid value that is used. | |
| 15:09:59 | efried | um, I thought for ironic the node UUID was different because multiple nodes managed by one host. | |
| 15:09:59 | jaypipes | efried: hold up, that's not true. | |
| 15:10:02 | efried | yeah | |
| 15:10:06 | efried | anyway, beside the point | |
| 15:10:11 | jaypipes | efried: we use compute_nodes.hypervisor_hostname | |
| 15:10:13 | jaypipes | as the RP name. | |
| 15:10:13 | efried | point is that we've already established a rule | |
| 15:10:59 | jaypipes | https://github.com/openstack/nova/blob/master/nova/scheduler/client/report.py#L1417 | |
| 15:11:52 | jaypipes | efried: ^ | |
| 15:12:19 | efried | yeah, but didn't we decide hypervisor_hostname was actually the node UUID in the ironic case? | |
| 15:12:24 | jaypipes | efried: so we already use hypervisor_hostname as RP name. | |
| 15:12:32 | mriedem | efried: yes it is | |
| 15:12:35 | jaypipes | efried: oh, I see what you mean. | |
| 15:12:39 | jaypipes | efried: yes, that is true. | |
| 15:12:47 | jaypipes | it's the Ironic node UUID. | |
| 15:13:22 | efried | right, okay, so I was wrong before that the RP UUID and name were the same for non-ironic; the name is actually the hypervisor hostname which is like text. | |
| 15:13:39 | efried | anyway, point is, we've got an established rule for both the name and the UUID of the root RP. | |
| 15:13:56 | efried | And in Denver we talked about using the parent RP's UUID as part of the child RP's name, to ensure name uniqueness | |
| 15:14:09 | efried | So that's one part of the naming rules | |
| 15:14:59 | efried | For each type of child RP as long as we make the remainder of the naming convention deterministic *and document it*, that should allow consumers to figure out how to identify them for purposes of their inventory file. | |