| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2018-12-05 | |||
| 21:44:56 | efried | the other guy was... | |
| 21:44:59 | efried | joe? | |
| 21:45:07 | mriedem | yes joe | |
| 21:45:17 | mriedem | http://www.gstatic.com/tv/thumb/persons/250022/250022_v9_ba.jpg | |
| 21:45:48 | mriedem | sean-k-mooney: b/c the compute/virt driver isn't supposed to overwrite externally set traits | |
| 21:46:01 | mriedem | and the api can set traits just like it mirrors aggregates | |
| 21:46:06 | sean-k-mooney | anyway if we say only the entity that created the RP may set the reserved value on the invetories im fine with that if we document it | |
| 21:46:58 | dansmith | I thought there was some other reason for doing the rpc cast on disable, but I can't remember what it was | |
| 21:47:46 | dansmith | maybe so ironic driver can do something? | |
| 21:47:52 | sean-k-mooney | on disableing a compute node. i think some dirver can take actions on disable and ironic might be one of them but i dont remember eiter | |
| 21:48:14 | efried | <do a right thing to disable the inventory> | |
| 21:48:14 | efried | if self.disabled: | |
| 21:48:14 | efried | we can ask each driver's upt to do | |
| 21:48:39 | dansmith | efried: we still have to do it as soon as the api is called though, | |
| 21:48:44 | dansmith | so waiting for the next periodic is not good enough | |
| 21:48:51 | efried | mm | |
| 21:49:08 | dansmith | oh yeah, so.. | |
| 21:49:11 | mriedem | right i could disable an entire cell, | |
| 21:49:11 | efried | do we have a ComputeDriver hook that we call on disable? | |
| 21:49:15 | dansmith | disable is on the service not the node, right? | |
| 21:49:23 | efried | or could/should we implement one? | |
| 21:49:25 | mriedem | er half a cell, and then live migrate stuff within the cell | |
| 21:49:27 | dansmith | so if you disable the thing running on ironic, the nodes will still be schedule-able | |
| 21:49:30 | mriedem | dansmith: yes on the service | |
| 21:49:53 | mriedem | efried: we don't have one for os-services disable no | |
| 21:49:55 | dansmith | so you have to do the service->nodes translation, and set the trait on all the nodes | |
| 21:50:04 | mriedem | we had one for os-hosts update status, but that was something else that only xen implemented | |
| 21:50:09 | dansmith | but if you rpc to the compute, it gets to do that itself | |
| 21:50:10 | mriedem | dansmith: yup | |
| 21:50:11 | efried | um, or we could make upt that thing - i.e. call it immediately on disable | |
| 21:50:40 | dansmith | mriedem: that also gets wonky if you disable a service and then they rebalance, but you have set the trait on some nodes that rebalanced out | |
| 21:50:42 | sean-k-mooney | mriedem: so the trait way woudl be add status_down trait and change placment query to include status_down forbien trait? | |
| 21:50:46 | dansmith | I guess they'll eventually un-disable, but.. ick | |
| 21:50:52 | dansmith | well, not actualy | |
| 21:51:00 | dansmith | because we just said virt has to leave those alone if the api set them | |
| 21:51:18 | mriedem | sean-k-mooney: essentially yes | |
| 21:51:28 | mriedem | if ComputeFilter is enabled or something | |
| 21:51:30 | dansmith | efried: right point being we don't have an rpc call for disable right now, but I think we probably should | |
| 21:51:35 | mriedem | or some new boolean that replaces ComputeFilter | |
| 21:51:57 | efried | oh, because the disabling is being prompted not by the compute itself. | |
| 21:52:03 | mriedem | correct | |
| 21:52:04 | dansmith | it's an api call | |
| 21:52:09 | dansmith | in most cases | |
| 21:52:12 | mriedem | https://developer.openstack.org/api-ref/compute/#compute-services-os-services | |
| 21:52:14 | dansmith | however, | |
| 21:52:16 | sean-k-mooney | well the trait could elminate the host before the filster so we dont need the computeFilter anymore | |
| 21:52:24 | mriedem | if the hypervisor dies the libvirt driver auto-disables it's own compute service | |
| 21:52:28 | dansmith | mriedem: computes can self-disable, so you'd also have to have them be able to set/clear the trait | |
| 21:52:38 | efried | this would be a great use case for sean-k-mooney's reverse-required traits :P | |
| 21:52:39 | mriedem | i smell spec | |
| 21:52:52 | dansmith | if you just let the compute always manage this in response to an rpc call, the ownership of it is a lot more clear I think | |
| 21:52:59 | efried | ++ | |
| 21:53:03 | mriedem | sure i'm fine with rpc call to compute to do the thing | |
| 21:53:18 | sean-k-mooney | efried: you mean the " you cant be schduled to this RP without asking for trait X" | |
| 21:53:23 | mriedem | btw this was the old thing from the os-hosts API https://github.com/openstack/nova/blob/master/nova/compute/api.py#L5026 | |
| 21:53:25 | efried | sean-k-mooney: yeah, that one. | |
| 21:53:57 | mriedem | we could maybe re-use that | |
| 21:54:38 | mriedem | that was only used by this before https://developer.openstack.org/api-ref/compute/#update-host-status | |
| 21:54:41 | mriedem | which is deprecated | |
| 21:55:14 | dansmith | I wonder if jaypipes is okay with a status_enabled or status_disabled trait on compute nodes | |
| 21:55:35 | sean-k-mooney | mriedem was that repalce by the mark host down thing that we added for opnfv | |
| 21:55:46 | mriedem | sean-k-mooney: on | |
| 21:55:47 | mriedem | *no | |
| 21:56:02 | dansmith | m-h-d is not just for opnfv | |
| 21:56:08 | mriedem | sean-k-mooney: https://specs.openstack.org/openstack/nova-specs/specs/pike/implemented/deprecate-os-hosts.html | |
| 21:56:29 | sean-k-mooney | dansmith: ya i know but they where the group i had the most conversation with | |
| 21:57:46 | sean-k-mooney | mriedem the more you know. we have/had a lot of duplicate/legacy apis | |
| 22:30:56 | cfriesen | just saw mriedem's mail on placement and disabled computes...rather than mucking around with inventory values why not just explicitly add a separate field that says whether a given RP is enabled or not? | |
| 22:33:52 | mriedem | field? | |
| 22:34:00 | mriedem | omg have you talked to jay or chris ever? | |
| 22:34:11 | mriedem | it's a trait at best | |
| 22:34:14 | mriedem | but jay might not even like that | |
| 22:34:18 | edleafe | cfriesen: because that feels like having placement mirror nova's design. IMO it would be cleaner to set reserved=total | |
| 22:34:19 | mriedem | since it's not a capability | |
| 22:35:03 | edleafe | mriedem: although it would be fun watching Jay foam at the mouth | |
| 22:35:22 | mriedem | yes i was hoping dan pinging him would summon the beast | |
| 22:35:31 | sean-k-mooney | well the cappablity is its abiltiy to provide resouces. | |
| 22:35:49 | sean-k-mooney | there is proably a general usecase there but ya likely not a new field | |
| 22:36:09 | mriedem | https://assets.rbl.ms/14621189/980x.jpg | |
| 22:37:04 | sean-k-mooney | for a second i tought it was a crock and wasl like aw its a lab | |
| 22:37:41 | cfriesen | edleafe: I don't like modifying "reserved" when nova hasn't really reserved anything, and I'm concerned that the math makes no sense if we set "reserved" equal to total but have already-allocated resources as well | |
| 22:38:05 | cfriesen | some sort of flag saying "don't consider this RP" makes more sense, I think | |
| 22:38:33 | sean-k-mooney | cfriesen: if it was a non nova specific one like avaiable then maybe | |
| 22:38:59 | cfriesen | oh, sure. I don't care about the actual name. :) | |
| 22:39:16 | edleafe | cfriesen: I don't like it at all; I just hate it much, much less than adding a nova-specific field | |
| 22:39:18 | sean-k-mooney | cfriesen: if you want jay and other to buy in to it you should :) | |
| 22:39:39 | edleafe | cfriesen: It should be a nova filter ideally | |
| 22:39:52 | mriedem | that's what the trait would do | |
| 22:39:55 | mriedem | provide filtering | |
| 22:39:57 | cfriesen | edleafe: it is already | |
| 22:40:18 | cfriesen | the problem is that if placement only returns disabled compute nodes then nova filters them all out and ends up with novalidhost | |
| 22:40:31 | sean-k-mooney | mriedem: yes and it would just be using required/forben traits which already exist so no placment change requried | |
| 22:40:45 | sean-k-mooney | we would be jsut establishing it as a patteren | |
| 22:41:35 | sean-k-mooney | the issue is that we are usign placement to store metadata.. again about the resouce which is kindo fo what a trait is but not entirely | |
| 22:41:46 | mriedem | if people don't think that lots of external services, like vcenter agents and such, are going to be dynamically adding/removing traits to coerce scheduling behavior in nova,... | |
| 22:42:05 | mriedem | how many people have already talked about adding basically encoding into traits for the lack of metadata | |
| 22:42:31 | edleafe | mriedem: "disabled" is a nova concept, not a placement one. If you don't want to use a scheduler filter on the nova side, then create a "disabled" agg, and add/remove compute nodes as needed, then use the upcoming negative member_of. | |
| 22:42:52 | sean-k-mooney | mriedem: i was talking to an onap person at one point and when i told them what placement was they ask if the could use traits to tag the compute nodes with there uuids so they could say where to boot... | |
| 22:43:20 | sean-k-mooney | edleafe: there are paralles in other service | |
| 22:43:26 | mriedem | edleafe: even using forbidden aggregates means nova needs to know to filter on that | |