| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2019-04-23 | |||
| 17:12:07 | artom | efried, damn, you sing as well | |
| 17:12:40 | artom | Oh, right, the thing I'm actually paid to do | |
| 17:13:14 | efried | aspiers: So the RequestSpec is how you find out if your magic key=val is in the flavor and/or image. | |
| 17:13:20 | efried | Tthe jury is still out as to what happens next. | |
| 17:13:49 | aspiers | artom: here's some fun with regexes for you https://adamspiers.org/computing/perl_signatures.html | |
| 17:14:03 | efried | mriedem and I were discussing that about 1h15m ago ^^ | |
| 17:14:21 | aspiers | efried: and that would automatically work for both extra specs and image properties? | |
| 17:14:35 | aspiers | efried: thanks, scrolling up 75m | |
| 17:14:39 | efried | aspiers: well, it would work for both if you implemented both. | |
| 17:14:51 | efried | you have access to both because they're in the RequestSpec. | |
| 17:14:54 | artom | aspiers, yeah, no :P | |
| 17:15:44 | efried | aspiers: I knew a guy who copy/pasted one of those obfuscated perl regex commands into his interpreter. It was one of those //ee things, and translated to something like rm -rf / | |
| 17:15:55 | aspiers | efried: OK. I guess this will start making a lot more sense as I start reading that code and hacking on it | |
| 17:16:19 | aspiers | efried: Ouch, that's a more sinister case of the "curl ... | sudo bash" syndrome | |
| 17:16:33 | aspiers | although I promise that all of those .sigs are totally innocent and safe to run | |
| 17:17:01 | aspiers | Well the top one still works, at least | |
| 17:17:36 | efried | aspiers: Detecting the property from the request spec is going to be the easy part. The thing mriedem and I were talking about stemmed from his patch here https://review.opendev.org/#/c/645316/ which does a very similar thing to what you're wanting to do in terms of adding stuff that'll make its way into the placement request. | |
| 17:18:59 | efried | tl;dr: one way to do it would be to stuff the placement-ese translation of your request - so like a resource request for 1 MEM_ENC_CONTEXT - into the actual RequestSpec.flavor.extra_specs, and make sure that that change to the flavor does *not* get persisted. | |
| 17:20:22 | efried | However, longer term, we're going to want to do such things by stuffing them into RequestSpec.requested_resources: https://github.com/openstack/nova/blob/master/nova/objects/request_spec.py#L93-L100 | |
| 17:20:55 | efried | but as hinted by that TODO, we're only using that for bandwidth resources at the moment. | |
| 17:21:04 | aspiers | ok | |
| 17:22:10 | aspiers | I guess this can all be done as one of the later work items in the spec, right? Since it's more about improving the UX than actually enabling SEV | |
| 17:22:38 | efried | aspiers: Well, you don't need to talk about anywhere near this level of detail in the spec | |
| 17:23:23 | efried | I'm just showing you that it's definitely doable to support the same generic property (encrypt_my_memory=true) in the flavor and image props | |
| 17:23:34 | efried | and get it translated to placement-ese by "nova". | |
| 17:23:48 | efried | So the UX is encrypt_my_memory=true, done. | |
| 17:23:52 | aspiers | efried: but without that detail how will I pip generic-resource-pools.rst to the post for the largest spec ever? ;) | |
| 17:24:17 | efried | Add a seqdiag | |
| 17:24:22 | aspiers | but seriously, yup - it was always a goal of the spec to allow booting SEV via image properties | |
| 17:24:26 | aspiers | ohhhhh nice idea | |
| 17:24:54 | efried | http://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/reshape-provider-tree.html | |
| 17:25:55 | efried | that seqdiag is only ~38L source :( | |
| 17:26:18 | aspiers | :D | |
| 17:26:37 | efried | oh, I've got a better idea | |
| 17:26:54 | efried | ascii diagrams of nested provider trees | |
| 17:26:59 | efried | those take up some good vertical space. | |
| 17:27:13 | jaypipes | I'm sure those make cdent shiver. | |
| 17:27:34 | aspiers | I was thinking more in terms of the file size | |
| 17:28:01 | aspiers | I'm about 400 bytes behind the leader ;-) | |
| 17:28:09 | efried | oh, you're going byte size? | |
| 17:28:15 | efried | I thought you were going #lines | |
| 17:29:11 | aspiers | well the ranking is the same regardless | |
| 17:29:29 | efried | one of my earlier specs, don't remember which one, dansmith literally -1'd it because it was too long. I distinctly remember trimming it by 10% to earn his +2. | |
| 17:29:40 | aspiers | haha | |
| 17:29:50 | mriedem | gmann: if i'm defining a new ci job which extends tempest-multinode-full-py3 and modify the devstack_localrc vars from that job, does it merge the vars or do i need to do a full replace with what i want? | |
| 17:29:51 | dansmith | pretty sure that's exactly how that went down, no embellishment at all | |
| 17:30:21 | aspiers | I never intended SEV to be so long, just kept getting feedback on new angles | |
| 17:31:45 | efried | aspiers: I think it was this one: https://review.opendev.org/#/c/510244/ | |
| 17:33:07 | efried | hah, yup http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2017-10-17.log.html#t2017-10-17T15:21:53 <== dansmith | |
| 17:41:18 | aspiers | efried: just looked at https://review.opendev.org/#/c/645316/2/nova/compute/api.py - IIUC I could just add an invocation of a new _modify_request_spec_for_encrypted_memory() to _provision_instances() which would apply the translation to the flavor extra specs or image properties? | |
| 17:41:41 | mriedem | heh n-obj is still enabled by default in devstack | |
| 17:41:42 | mriedem | derp | |
| 17:43:05 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: Revert "Wait for network-vif-plugged on resize revert" https://review.opendev.org/639396 | |
| 17:43:05 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: Run revert resize tests in nova-live-migration https://review.opendev.org/653498 | |
| 17:43:06 | openstackgerrit | Artom Lifshitz proposed openstack/nova master: Revert resize: wait for external events in compute manager https://review.opendev.org/644881 | |
| 17:43:22 | efried | aspiers: more or less. I think this would be better positioned as a method in request_filter.py personally, but that's details. The thing that you'll be needing that isn't applicable in --^ is how you determine whether to add the thing. | |
| 17:43:26 | aspiers | efried: so the new method would frob either reqspec.flavor.extra_specs or reqspec.image? | |
| 17:43:34 | efried | yes | |
| 17:44:06 | aspiers | ahah OK, request_filter.py looks pretty trivial to extend | |
| 17:44:07 | efried | aspiers: But that code path has access to the reqspec too, so whatevs. | |
| 17:44:14 | aspiers | right | |
| 17:44:17 | efried | yes, in fact I should -1 mriedem's patch for that. | |
| 17:44:35 | aspiers | I was going to ask, why didn't https://review.opendev.org/#/c/645316/2/nova/compute/api.py extend request_filter.py :) | |
| 17:45:10 | efried | well, I was going to say it's because the logic of how he's determining whether to add the filter comes from someplace that's not easy to get at from request_filter.py | |
| 17:45:36 | mriedem | efried: that is the rason | |
| 17:45:37 | mriedem | *reason | |
| 17:45:47 | aspiers | ahah, right | |
| 17:45:57 | mriedem | the multiattach info is on the bdm, and even then only after it's connected | |
| 17:46:01 | aspiers | but in my case all I need is the request_spec | |
| 17:46:04 | efried | yup | |
| 17:46:16 | mriedem | so during server create, the request filter would have to loop the bdms looking for the volume_id, then query cinder to get the volume multiattach flag | |
| 17:46:22 | mriedem | which is pretty shitty for performance during scheduling | |
| 17:46:33 | efried | and since this is all about performance during scheduling... | |
| 17:46:39 | aspiers | Ok awesome, this is starting to make a lot of sense | |
| 17:46:42 | mriedem | right | |
| 17:46:53 | aspiers | efried: tweaking the spec now | |
| 17:46:55 | mriedem | well, it's about performance and not picking a compute that doesn't support multiattach | |
| 17:47:05 | efried | aspiers: Hold on a tick, I'm answering your other concern too. | |
| 17:47:15 | aspiers | efried: ok | |
| 17:47:19 | mriedem | if we stored a multiattach attribute on the bdm object and stored something about those in the request spec it'd be a different story | |
| 17:47:22 | mriedem | but that's a lot of ifs | |
| 17:51:35 | tssurya | gibi: if I bump the version on the instance_payload do I need to manually also bump the versions on all payloads inheriting from the instance_payload ? | |
| 17:53:56 | efried | aspiers: responded. And hanging out if you have questions. | |
| 17:54:01 | aspiers | efried: thanks! | |
| 17:54:45 | openstackgerrit | Matt Riedemann proposed openstack/nova master: WIP: Add nova-multi-cell job https://review.opendev.org/655222 | |
| 17:54:46 | mriedem | dansmith: let's cross our fingers and toes ^ | |
| 17:54:57 | dansmith | hoo boy | |
| 17:55:08 | efried | aspiers: Also note that jaypipes responded. | |
| 17:55:27 | aspiers | yep, already saw that | |
| 17:55:57 | efried | jaypipes: Are you okay with "unlimited" being expressed as MAXINT inventory? | |
| 17:58:23 | efried | or, heh, an allocation_ratio of 1E9999 :P | |
| 17:59:25 | jaypipes | efried: there is no such thing as an unlimited inventory. it there was, it would be a trait, because it isn't quantitative/consumable. | |
| 17:59:30 | aspiers | efried: "It'll be up to the driver to determine what that inventory should look like and what it's based on, knowing that the request will always be for 1 unit." - my point was that maybe we *don't* know that | |
| 18:00:11 | aspiers | efried: e.g. picking a stupid example, what if MKTME counted it per vcpu rather than per host? | |
| 18:00:52 | jaypipes | efried: obviously, there's nothing *stopping* anyone from putting MAX_INT in there :) | |
| 18:00:52 | efried | jaypipes: rightright, this is a case where there's always a limit, but sometimes we don't know exactly what it is, so we need to let it be imposed by the host (not by placement). But we still need an inventory, so the driver can in that case specify an inventory that's "arbitrarily large". | |
| 18:01:02 | jaypipes | efried: just saying it doesn't really make sense to me :) | |
| 18:01:48 | aspiers | efried: but in the future I'm guessing AMD machines *may* remove that limit | |
| 18:02:00 | aspiers | at least it's not something we can immediately rule out | |
| 18:02:24 | efried | aspiers: Then the driver would use an inventory of actual_limit/num_vcpus or something clever | |