| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2022-07-19 | |||
| 18:58:06 | johnsom | grin | |
| 18:58:10 | johnsom | You do.... | |
| 18:58:19 | sean-k-mooney | pluarl? | |
| 18:58:26 | dansmith | sean-k-mooney: johnsom is worth at least two | |
| 18:58:31 | sean-k-mooney | :) | |
| 18:58:32 | johnsom | lol | |
| 18:58:50 | dansmith | johnsom: that was a comment of your worth, not your waistline, btw ;P | |
| 18:58:53 | sean-k-mooney | i just tought designate was one of the more understaffed project | |
| 18:59:09 | sean-k-mooney | i think this vlaidation change was in neutron to be honest | |
| 18:59:22 | sean-k-mooney | between train and queens | |
| 18:59:29 | johnsom | There are two full time RH folks, and a couple more cores active. | |
| 18:59:45 | sean-k-mooney | oh ok glad that has improved | |
| 19:00:28 | johnsom | But, as dansmith said, the Designate buck stops with me at the moment, so if we need to fix something on the designate side, assign the bug to me. | |
| 19:02:22 | sean-k-mooney | https://github.com/openstack/neutron-lib/blob/f01b2e9025d33aeff3bf22ea2568bda036878819/neutron_lib/api/validators/dns.py#L59-L92= | |
| 19:02:33 | sean-k-mooney | so that apprently is what does the validation in neutron | |
| 19:03:32 | sean-k-mooney | well it starts here https://github.com/openstack/neutron-lib/blob/f01b2e9025d33aeff3bf22ea2568bda036878819/neutron_lib/api/validators/dns.py#L112= | |
| 19:03:46 | dansmith | I just had to: https://imgur.com/a/spREDAg | |
| 19:04:07 | johnsom | lol | |
| 19:04:24 | johnsom | At least it's a $100 | |
| 19:04:41 | dansmith | inflation, yo | |
| 19:05:34 | sean-k-mooney | https://github.com/openstack/neutron-lib/blob/f01b2e9025d33aeff3bf22ea2568bda036878819/neutron_lib/api/validators/dns.py#L50-L52= | |
| 19:05:44 | sean-k-mooney | that is what was rejecting the numeric tlds | |
| 19:06:32 | sean-k-mooney | and that has been in place since pike | |
| 19:06:51 | sean-k-mooney | so the psi issue was caused by turning on the dns extention | |
| 19:09:57 | sean-k-mooney | it was there in mitak too shich is when we started setting that field https://github.com/openstack/neutron/blob/4d8685da8050df79d9193f91cab572cfc6d67a47/neutron/extensions/dns.py#L130-L133= | |
| 19:10:28 | sean-k-mooney | dansmith: so we could go back to not normalising or do want we don downstream | |
| 19:10:54 | dansmith | sounds like we need to collab with the neutron buck-stop | |
| 19:11:02 | sean-k-mooney | downstream if the tld is numeric we normalise to remove . | |
| 19:11:15 | sean-k-mooney | btu otherwisse we allow the fqdn | |
| 19:11:18 | sean-k-mooney | in hostname | |
| 19:12:20 | sean-k-mooney | so downstream its targeted to just making that one edgecase pass since the change was never backported upstream | |
| 19:12:53 | sean-k-mooney | upstream form wallaby on we replace all '.' with _ or - i cant recall | |
| 19:16:22 | johnsom | The TLD rules are pretty simple, I think it is perfectly acceptable to error to the user. There are two length limitations and the basic regex neutron has. I assume the neutron raise comes to late for nova to communicate that to the user? | |
| 19:16:54 | sean-k-mooney | yes it haapens on the compute node when we are bidning the ports | |
| 19:17:34 | dansmith | not too late to communicate, just too late to reject the request | |
| 19:17:47 | dansmith | we have lots of reasons why the instance goes into error state based on lies you told us earlier | |
| 19:17:52 | sean-k-mooney | without designate this would also work | |
| 19:18:02 | sean-k-mooney | because nova wont try to set the field | |
| 19:18:07 | sean-k-mooney | since the extenion is not enabled | |
| 19:18:11 | dansmith | so if dns is enabled and you gave us something invalid, then failing to wire up would be a fine reason to error the instance | |
| 19:18:35 | johnsom | Yep | |
| 19:18:35 | sean-k-mooney | ok because that is what we used to do | |
| 19:18:45 | sean-k-mooney | before it was reported as a bug and "fixed" | |
| 19:18:53 | sean-k-mooney | in wallaby | |
| 19:19:00 | dansmith | "hacked" | |
| 19:19:15 | dansmith | "swept into the future debt dustbin to screw someone else later" | |
| 19:19:23 | dansmith | but yeah :) | |
| 19:19:48 | sean-k-mooney | well we filed an rfe to add hostname as a sperate top level paramter and did a lot of other work | |
| 19:20:03 | sean-k-mooney | but ya im not happy with the situration we are in currently | |
| 19:20:27 | sean-k-mooney | going back to that old behavior will break some users but fix others | |
| 19:20:38 | sean-k-mooney | depending on if designate is aviaable of not | |
| 19:21:00 | sean-k-mooney | which yes is tecninally detechable via the neutron api | |
| 19:21:20 | sean-k-mooney | by checking the extentions as that is one of the few that is only reported when enabled i belive | |
| 19:21:52 | sean-k-mooney | neutron has a habit of reporting all extesion even if they are not enabled makeing it imposible to determin that | |
| 19:22:07 | johnsom | So, what I am hearing is a proposal: hostname field, remove the FQDN restriction, hand it off to cloud-init single label or FQDN, no hacking on the string (i.e. no . -> -). Pass the string through to neutron. If the domain doesn't match or is rejected, ERROR the instance with "invalid hostname" in the error field. | |
| 19:22:20 | johnsom | Just trying to summarize for clarity | |
| 19:23:11 | dansmith | that's what I'm saying yeah | |
| 19:23:23 | sean-k-mooney | that would regress a fixed bug | |
| 19:23:27 | dansmith | there might be some opinions about whether or not we need to hide that behind a microversion or not I guess | |
| 19:23:31 | johnsom | That works for me and would solve the customer issue | |
| 19:23:31 | sean-k-mooney | and break people on upgrade | |
| 19:23:42 | sean-k-mooney | including breaking psi | |
| 19:23:58 | sean-k-mooney | but if we have an a way to help them fix all invalid hostname we cloud | |
| 19:24:02 | dansmith | sean-k-mooney: it doesn't break them if the neutron thing is fixed right? | |
| 19:24:08 | johnsom | Why would it break on upgrade? you are going from more restrictive to less | |
| 19:24:30 | sean-k-mooney | it wont break exiting vms | |
| 19:24:34 | sean-k-mooney | that we have already normalised | |
| 19:24:43 | johnsom | Right | |
| 19:24:45 | sean-k-mooney | but it will break anyone that started depending on that | |
| 19:24:54 | sean-k-mooney | so custoemr with exsiting heat templates | |
| 19:25:00 | sean-k-mooney | woudl find it breaks | |
| 19:25:02 | dansmith | depending on what specifically? the mangled hostname? | |
| 19:25:07 | sean-k-mooney | yes | |
| 19:26:50 | johnsom | They would start getting ERROR instances if the hostname is bogus instead of having the hostname switched around on them. Which seems like the right answer to me. APIs that magically change the data input to something else are ... unpleasant | |
| 19:27:52 | sean-k-mooney | johnsom: im pretty sure you review this by the way in the past if not appolgies but the mangaleing was discussed at leant on the mainile list | |
| 19:28:17 | sean-k-mooney | and it was chosen to go that appoch since we already did it for unicode and we were following the rfc for mangeling rules | |
| 19:28:46 | sean-k-mooney | and we explictly asks operator if they were depenidng on the fqdns in the hostname at the time | |
| 19:28:52 | dansmith | johnsom: agree, and unless we let people opt into the old behavior with a microversion, we're already changing that behavior underneath them | |
| 19:29:22 | sean-k-mooney | that is an option | |
| 19:29:25 | dansmith | no, | |
| 19:29:29 | dansmith | I mean with the previous change | |
| 19:29:35 | sean-k-mooney | disable the mangeling in new microverion | |
| 19:29:42 | dansmith | going from more mangling to less mangling is less disruptive, I'm sure | |
| 19:29:58 | sean-k-mooney | it will go from 200 to 400 | |
| 19:30:08 | dansmith | no, because we won't know until too late, right? | |
| 19:30:21 | dansmith | but as I said above, there's a discussion to be had on the microversion requirement | |
| 19:30:26 | sean-k-mooney | actully right it will not change the respocne and go form active to errror | |
| 19:30:30 | dansmith | ...right | |
| 19:34:25 | sean-k-mooney | https://github.com/openstack/nova/commit/9046f0fff4be424eda25401a3f9b8752964de775 that was the change we did 2 years ago to adress https://bugs.launchpad.net/nova/+bug/1581977 | |
| 19:35:02 | sean-k-mooney | https://lists.openstack.org/pipermail/openstack-discuss/2020-November/019113.html was the mailing list thread | |
| 19:37:45 | dansmith | sean-k-mooney: that's because we set hostname from display name if hostname isn't set specifically right? | |
| 19:38:10 | sean-k-mooney | yes before xena that was teh only way to set hostname | |
| 19:38:20 | sean-k-mooney | it was an internal atribute on the instance | |
| 19:38:24 | dansmith | ah | |
| 19:38:54 | sean-k-mooney | we added an api to set that in repsonce to the issues raised with ^ | |
| 19:38:59 | dansmith | okay so, this is even less of a problem I think.. if they specify the hostname, we can just take it as-is and if not, then we keep the existing display->filter->hostname behavior right? | |
| 19:39:03 | sean-k-mooney | https://specs.openstack.org/openstack/nova-specs/specs/xena/implemented/configurable-instance-hostnames.html | |
| 19:39:30 | sean-k-mooney | well we do not allow FQDNs via that api | |
| 19:39:42 | sean-k-mooney | e.g. if you pass --hostname it must not be an fqdn | |
| 19:39:54 | dansmith | ack, so that requires a microversion then | |