| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2022-09-20 | |||
| 16:37:08 | bauzas | last topic | |
| 16:37:13 | bauzas | #topic Open discussion | |
| 16:37:22 | bauzas | Add support for setting min/max unit for the VCPU and MEMORY_MB resource-providers in placement to values other than 1/all. Can configuration-options be OK for this, or are other approaches prefferred? See suggested use of configuration-options at https://review.opendev.org/c/openstack/nova/+/857595 | |
| 16:37:41 | bauzas | unfortunately, the write hasn't written his nick | |
| 16:37:44 | bauzas | but we can guess | |
| 16:37:47 | obre | Its me :) | |
| 16:38:20 | gibi | obre: o/ | |
| 16:38:31 | bauzas | obre: yeah I was looking for your nick | |
| 16:38:32 | obre | The use-case is basicly to allow restricting some compute-nodes to not get VM's using too many of its VCPU's. | |
| 16:38:52 | obre | To better spread out load. | |
| 16:39:06 | obre | I tested that changing these values give the desired outcome. | |
| 16:39:11 | gibi | so I quickly dicussed with obre before and suggested extending provider.yaml but that might be a bigger work than what obre's use case needs | |
| 16:39:36 | bauzas | I'm not fan of adding yet another knob to this | |
| 16:39:51 | bauzas | so, yeah, provider.yaml or accepting that inventories can change from a client perspective | |
| 16:40:05 | obre | It is a similar knob to the one we have setting over-provisioning of resources. | |
| 16:40:23 | bauzas | obre: sure, but we designed placement for avoiding such knobs :) | |
| 16:40:49 | sean-k-mooney | so we really shoudl not allow this to be configurable | |
| 16:40:58 | gibi | bauzas: I'm not sure but I assume that today nova would periodically overwirte max_unit in placement for inventories its own | |
| 16:41:09 | bauzas | gibi: correct | |
| 16:41:10 | obre | I can confirm that assumption :) | |
| 16:41:17 | gibi | obre: thanks :) | |
| 16:41:38 | obre | So that logic needs to change then; in addition to allowing setting other inventorys than CUSTOM_* | |
| 16:41:43 | sean-k-mooney | so the usecase here is to limit the max size of a flavor | |
| 16:41:47 | bauzas | gibi: that's why I was saying that if operators want this to be tunable thru API calls, some efforts have to be done | |
| 16:41:48 | sean-k-mooney | that can land on a host | |
| 16:41:52 | obre | Either max or min. | |
| 16:42:11 | sean-k-mooney | so we can do that today | |
| 16:42:18 | sean-k-mooney | using provider.yaml | |
| 16:42:21 | sean-k-mooney | to set those values no | |
| 16:42:21 | obre | No? | |
| 16:42:22 | bauzas | correct ^ | |
| 16:42:38 | bauzas | we have a configurable | |
| 16:42:41 | bauzas | not an API call | |
| 16:42:41 | gibi | I think we cannot set those value on standard resources | |
| 16:42:51 | obre | You are only allowed to set CUSTOM_*. Setting VCPUs for instance would make nova-compute refuse to start. | |
| 16:42:56 | sean-k-mooney | gibi: i would be ok with lifting that restriction | |
| 16:43:00 | bauzas | hah, my bad then | |
| 16:43:05 | sean-k-mooney | but not adding a new config to nova for this | |
| 16:43:07 | bauzas | sean-k-mooney: yeah, me too | |
| 16:43:10 | bauzas | and yeah | |
| 16:43:32 | bauzas | if operators want to play with nova inventories, I'm OK with this | |
| 16:43:39 | gibi | sean-k-mooney: yepp, that was my suggestion to obre too, lift the provider.yamls restriction | |
| 16:43:43 | bauzas | placement was designed for such usecases | |
| 16:43:48 | obre | But then you would like to lift that restriction, and then have nova-compute check its inventories before setting the default-values if none exists? | |
| 16:44:34 | sean-k-mooney | yes nova compute | |
| 16:44:46 | sean-k-mooney | would instead of hardcoding its min/max/step values | |
| 16:44:51 | gibi | yepp | |
| 16:44:51 | obre | Basicly similar to how we do allocation_ratios; just without the config-file option. | |
| 16:44:52 | sean-k-mooney | get tehm form provider.yaml | |
| 16:45:26 | obre | Im not entirly sure I am able to figure all this out by myself; but Ill give it a try; and see if I can manage to write such a patch :) | |
| 16:45:59 | gibi | obre: feel free to ping me here with questions. I can try to look at the code and help | |
| 16:46:43 | obre | gibi: Thanks! | |
| 16:46:46 | obre | gibi: I probably will. | |
| 16:46:48 | gibi | I'm sure we have some unit / functional test coveragae on provider.yaml to play with | |
| 16:47:07 | sean-k-mooney | we will need to modify the schma | |
| 16:47:23 | bauzas | looks like we have an agreement and further steps to | |
| 16:47:37 | sean-k-mooney | and introduce a new adjective(exisitng) https://specs.openstack.org/openstack/nova-specs/specs/ussuri/approved/provider-config-file.html#provider-config-file-schema | |
| 16:47:43 | bauzas | obre: the next step for you I guess is to write a blueprint | |
| 16:48:01 | sean-k-mooney | and then lift the resticion on the resouce_class startign with CUSTOM_ | |
| 16:48:07 | sean-k-mooney | so this would likely need a spec | |
| 16:48:15 | bauzas | I was debating it | |
| 16:48:16 | sean-k-mooney | to spell it out clearly | |
| 16:48:39 | sean-k-mooney | it will need a new schema_version at a minium | |
| 16:49:00 | gibi | I agree to have a small spec if we need to figure out a new schema | |
| 16:49:02 | sean-k-mooney | i think there is enough of a change required that a spec would be helpful for documentation if nothing elses | |
| 16:49:09 | bauzas | #agreed sounds a valid usecase that requires a blueprint and a spec to be filled in order to address how to properly manage inventories override by placement.yaml file | |
| 16:49:33 | bauzas | obre: do you feel comfortable with this process ? do you need help ? | |
| 16:49:50 | bauzas | or is that whole think old greek to you ? | |
| 16:49:55 | bauzas | thing* | |
| 16:50:03 | obre | bauzas: Ill probably need a bit of help yes. | |
| 16:50:11 | bauzas | obre: you got my nick | |
| 16:50:20 | obre | bauzas: Im not really a developer; more a sysadmin :P | |
| 16:50:22 | bauzas | obre: ping me tomorrow and I'll point you some docs and examples | |
| 16:50:32 | obre | bauzas: Whats your timezone? | |
| 16:50:41 | bauzas | obre: well, specs are formal textfiles, so you shouldn't be afraid :) | |
| 16:50:50 | bauzas | obre: CEST | |
| 16:51:06 | bauzas | that matches then | |
| 16:51:09 | obre | So then the workdays probably sync up :P | |
| 16:51:20 | bauzas | I'm more than happy to help you | |
| 16:51:26 | obre | bauzas: Great! | |
| 16:51:41 | bauzas | our processes can look a bit scary but those are just design documents | |
| 16:52:11 | obre | Ill sorta understand why we need the formal process; Its just that I would have preffered an easier solution for _my_ problems :P | |
| 16:52:11 | bauzas | basically, the idea is just to identify all potential design concerns (upgrades or others) before they come up at review time | |
| 16:52:18 | obre | But its fine :P | |
| 16:52:32 | gibi | :) | |
| 16:52:34 | bauzas | obre: you're litterally at the very beginning of the cycle :) | |
| 16:52:45 | bauzas | so, you wouldn't hear 'sorry, too late' | |
| 16:53:08 | bauzas | the point is, you have gibi and me for helping you out | |
| 16:53:14 | obre | \o/ | |
| 16:53:16 | sean-k-mooney | obre: one thing to think about is do you want this to be config driven. api driven or both | |
| 16:53:25 | sean-k-mooney | we will need to document tha tin the spec | |
| 16:53:29 | bauzas | sean-k-mooney: I tought we said config-driven | |
| 16:53:33 | bauzas | as provider.yaml | |
| 16:53:46 | sean-k-mooney | yes but provide.yaml can say -1 | |
| 16:53:51 | sean-k-mooney | which means this is api contoled | |
| 16:53:57 | sean-k-mooney | or something like that if we care about that usecase | |
| 16:54:02 | bauzas | making it api-driven means we accept our inventories to be changed thru osc-placement | |
| 16:54:09 | sean-k-mooney | so im assuming config driven is enough | |
| 16:54:12 | obre | I think it makes sense to be as close to the way we do CUSTOM_* today as possible? | |
| 16:54:16 | sean-k-mooney | and if so the that simple | |