| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2024-08-08 | |||
| 16:45:10 | sean-k-mooney | as a operator you might be able to use static vendro data or dynamic vendor data ot do it | |
| 16:45:38 | sean-k-mooney | dansmith: the cloud init docs document something we do not support | |
| 16:45:41 | sean-k-mooney | https://cloudinit.readthedocs.io/en/latest/reference/datasources/openstack.html#vendor-data | |
| 16:45:55 | sean-k-mooney | there was a whole discussion about that a few mounts back | |
| 16:45:56 | dansmith | johnsom: no way to do it per-flavor that I know of | |
| 16:46:03 | sean-k-mooney | i provide a way to hack that | |
| 16:46:07 | sean-k-mooney | to make it work | |
| 16:46:22 | sean-k-mooney | but we do not offically supprot passing cloud init cloud config vai vendor data today | |
| 16:46:30 | johnsom | Bummer, flavor would have been perfect in this case | |
| 16:46:40 | sean-k-mooney | https://github.com/canonical/cloud-init/issues/5221 | |
| 16:46:49 | sean-k-mooney | johnsom: nova should not do networking | |
| 16:46:57 | sean-k-mooney | or software configuration in guests | |
| 16:47:03 | sean-k-mooney | which is why you cant do this in the falvor | |
| 16:47:12 | johnsom | Agree, but I think it should be able to configure cloud-init metadata | |
| 16:47:44 | sean-k-mooney | that woudl be a new feature and im not sure users woudl agree | |
| 16:47:58 | dansmith | sean-k-mooney: I'm not sure why you say we don't support it via vendordata, but if you've got a link I'd be glad to read it | |
| 16:48:20 | johnsom | Agree, it sounds like it would be a new feature. Bummer | |
| 16:48:38 | sean-k-mooney | dansmith: tldr we require the vendor data to be in a format that is diffent form what cloud in it requries | |
| 16:48:57 | sean-k-mooney | dansmith: the require a key at the top level of the resonce to be "cloud-init" | |
| 16:49:16 | sean-k-mooney | the top level key we requried is the vendor data provider | |
| 16:49:43 | sean-k-mooney | dansmith: i explain it here https://github.com/canonical/cloud-init/issues/5221 | |
| 16:50:05 | dansmith | cool, I'll check it out | |
| 16:50:12 | dansmith | should be fine to use via userdata though, AFAIK | |
| 16:50:53 | sean-k-mooney | yep usere data will work for a user just no offical way to make it work at the operator level | |
| 16:51:03 | johnsom | This seems like a common edge use case, to configure instances via cloud-init for local services like NTP or to point instances to specific endpoints. | |
| 16:51:07 | sean-k-mooney | however when i was explinging this they had already started https://review.opendev.org/c/openstack/nova-specs/+/917109 | |
| 16:51:40 | sean-k-mooney | johnsom: so the neutron subnet allwos you to configure dns server via dhcp options | |
| 16:51:48 | sean-k-mooney | i dont see why it could not supprot ntp | |
| 16:52:03 | dansmith | because dns is widely accepted and sort of necessary :) | |
| 16:52:14 | sean-k-mooney | well they aslo supprot static routes | |
| 16:52:39 | dansmith | yeah, not everyone accepts those via dhcp either | |
| 16:52:44 | sean-k-mooney | im just saying there are other dhcp options and neutron could have a facility to allow you to specify them for the network | |
| 16:52:58 | sean-k-mooney | sure just providing another way to do the same usecase | |
| 16:53:11 | johnsom | Another quick (?) question, is there a way to set the hw_vif_model setting other than a property on the image? Like at instance creation time? | |
| 16:53:12 | dansmith | this seems well in scope for a cloud-init thing to me | |
| 16:53:16 | sean-k-mooney | i was thinkign of the pxe boot usecase peopel had in the past | |
| 16:53:37 | sean-k-mooney | https://docs.openstack.org/api-ref/network/v2/index.html#id315 | |
| 16:53:46 | johnsom | Yeah, the problem with the DHCP options isn't necessarily neutron, but the distributions not enabling them | |
| 16:54:14 | sean-k-mooney | johnsom: the problem with the flavor is the image might not have cloud-init | |
| 16:54:40 | johnsom | hw_vif_model question is around using the igb driver for SR-IOV testing in nodepool | |
| 16:55:02 | sean-k-mooney | so it was on my list of things to enable and i just have not got ot it | |
| 16:55:06 | sean-k-mooney | but i too want ot add that | |
| 16:55:09 | johnsom | Well, in our world they have cloud-init | |
| 16:55:36 | sean-k-mooney | our being? its not alwasy there for openstack workloads in general | |
| 16:56:12 | sean-k-mooney | think workload like core os or talos linux | |
| 16:56:23 | sean-k-mooney | or windows if they dont have the cloud base init fork | |
| 16:56:26 | johnsom | our being Octavia amphora images. | |
| 16:56:31 | sean-k-mooney | ah | |
| 16:56:52 | sean-k-mooney | well for octavia since your creating the instnaces you can simply pass user-data with your cloud config settings | |
| 16:57:31 | sean-k-mooney | johnsom: if you think nova should supprot this vai vendor data you should read and comment on https://review.opendev.org/c/openstack/nova-specs/+/917109/6/specs/2024.2/approved/dynamicjson-vendordata-cloud-config.rst | |
| 16:58:39 | sean-k-mooney | i feel like i put that on the ptg adjenda for the last one | |
| 16:58:47 | sean-k-mooney | but i dont recall if we had time to disucss it | |
| 16:59:01 | johnsom | That is less than ideal in this customer use case. They as the operator wants to configure it in a way they can point at different endpoints based on the flavor used. | |
| 16:59:49 | johnsom | But, yes, looking at the spirit of dynamic vendor data, it could be a solution (assuming it works at some point). | |
| 17:00:09 | johnsom | I think the current answer is, cannot be done. | |
| 17:00:22 | sean-k-mooney | it can by abusing the json standard | |
| 17:00:27 | johnsom | lol | |
| 17:00:41 | dansmith | yep, seems like the perfect way to handle this, any sort of per-site compute cloud-init stuff being a dynamic vendordata thing that coughs up a blob of config | |
| 17:00:56 | johnsom | +1 | |
| 17:00:59 | sean-k-mooney | i help the person that was tryign to get this working make it work by telling them how to do that | |
| 17:01:27 | sean-k-mooney | the reason for the spec was if we wanted to acutly do this we woudl need to commit to officaly supproting tha tuse case, adding tests and not breaking it | |
| 17:02:13 | sean-k-mooney | johnsom: this is how to do it today with nova without code changes https://review.opendev.org/c/openstack/nova-specs/+/917109/6/specs/2024.2/approved/dynamicjson-vendordata-cloud-config.rst | |
| 17:02:24 | johnsom | Though, it would be nice if the flavor ID was passed to the dynamic vendor data service too. | |
| 17:02:51 | sean-k-mooney | we pass some infor to the vender data like the instance uuid | |
| 17:03:00 | sean-k-mooney | im not sure what we pass exactly | |
| 17:03:10 | johnsom | https://docs.openstack.org/nova/latest/admin/vendordata.html#dynamicjson | |
| 17:03:17 | sean-k-mooney | but we pass the instance uuid so you can make desions per instance if you want too | |
| 17:03:21 | dansmith | image but not flavor | |
| 17:03:30 | dansmith | flavor should be in there too I would think | |
| 17:03:40 | sean-k-mooney | ah yes its in the docs | |
| 17:03:41 | johnsom | I guess that service can just make another GET call | |
| 17:03:58 | sean-k-mooney | so this is all old code form rackspace era | |
| 17:04:03 | sean-k-mooney | that has kind of bitrotted | |
| 17:04:11 | johnsom | Sigh | |
| 17:04:12 | sean-k-mooney | so it supprots what they needed at the time | |
| 17:04:32 | sean-k-mooney | but again if peropel want to enhance this we could | |
| 17:04:52 | sean-k-mooney | just need a spec to desicbe it and people to do the work | |
| 17:05:28 | johnsom | Well, we are pretty far out of "officially supported" at this point, the immediate answer is going to be "create custom images". | |
| 17:05:29 | dansmith | pretty sure dynamic vendor data is way after rax | |
| 17:06:06 | sean-k-mooney | dansmith: i think it was done by michael still | |
| 17:06:12 | dansmith | it was, but in 2017 | |
| 17:06:28 | sean-k-mooney | oh i didn mean as part of the inital code dump | |
| 17:06:41 | sean-k-mooney | i ment it was implemed by them for the requirement they had | |
| 17:06:59 | dansmith | I know :) | |
| 17:07:44 | sean-k-mooney | johnsom: so right now we also dont provide the flavor extra specs adn addign those would be problematic unless we passed them in the post body | |
| 17:08:02 | sean-k-mooney | so im not really sure how you imagine this being encoded in the flavor | |
| 17:08:41 | sean-k-mooney | or where you hoping that could be done via custom integrations fo some kind by the opertor using custom extra specs | |
| 17:10:59 | johnsom | I just knew cloud-init had the module and wondered if it could be used via nova. I didn't have a design in mind. Just making sure I wasn't missing some way to do it. | |
| 17:11:34 | sean-k-mooney | other then what we have discussed the only othe way would be perhaps with a custom network template | |
| 17:11:59 | sean-k-mooney | https://docs.openstack.org/nova/latest/configuration/config.html#DEFAULT.injected_network_template | |
| 17:12:22 | elinux | anyone online yet ? | |
| 17:12:29 | sean-k-mooney | which is https://github.com/openstack/nova/blob/master/nova/virt/interfaces.template | |
| 17:13:03 | elinux | sean-k-mooney: i need a small help regarding scheduler. can you help me please | |
| 17:13:03 | sean-k-mooney | johnsom: if you can do it via /etc/network/interfaces you can do it as an admin via that | |
| 17:13:21 | sean-k-mooney | elinux: perhaps | |
| 17:13:40 | sean-k-mooney | elinux: what problem are you having | |
| 17:19:41 | elinux | sean-k-mooney: I am writing a custom filter for scheduler, so in the process have to access the req object's metadata value, which is not passed in the code by default to the scheduler filter test of host_passes. so I have passed it from build_request object at the function 'def schedule_and_build_instances' in conductor/manage.py file. I did this by simply doing 'request_specs[0].metadata=build_requests[0].instance.metadata' | |
| 17:20:27 | elinux | sean-k-mooney: but when it reached the scheduler manager.py thru the rabbitmq, the spec_obj is loosing the metadata object | |
| 17:20:57 | elinux | sean-k-mooney: so how to pass this value to spec_obj that it retains for checking it in the filter host_pass ? | |
| 17:21:29 | sean-k-mooney | you dont | |