opendevreview | Shnaidman Sagi (Sergey) proposed openstack/ansible-collections-openstack master: Use Python 3.10 for Ansible's devel branch https://review.opendev.org/c/openstack/ansible-collections-openstack/+/852526 | 05:40 |
---|---|---|
opendevreview | Lajos Katona proposed openstack/python-openstackclient master: Add address-scope to NDP proxy tests https://review.opendev.org/c/openstack/python-openstackclient/+/856521 | 07:25 |
*** arxcruz|rover is now known as arxcruz | 08:10 | |
opendevreview | Brin Zhang proposed openstack/os-service-types master: Add venus service-type https://review.opendev.org/c/openstack/os-service-types/+/856384 | 09:27 |
opendevreview | Brin Zhang proposed openstack/os-service-types master: Add venus service-type https://review.opendev.org/c/openstack/os-service-types/+/856384 | 09:29 |
frickler | gtema: 856521 is needed to unblock OSC gate, not sure if you'd still want to wait for haleyb to re-review | 09:54 |
gtema | yeah, will do in few minutes | 09:54 |
opendevreview | Merged openstack/openstacksdk master: Unify resource list filtering https://review.opendev.org/c/openstack/openstacksdk/+/853052 | 10:05 |
opendevreview | OpenStack Release Bot proposed openstack/cliff stable/zed: Update .gitreview for stable/zed https://review.opendev.org/c/openstack/cliff/+/856725 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/cliff stable/zed: Update TOX_CONSTRAINTS_FILE for stable/zed https://review.opendev.org/c/openstack/cliff/+/856726 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/cliff master: Add Python3 antelope unit tests https://review.opendev.org/c/openstack/cliff/+/856727 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/openstacksdk stable/zed: Update .gitreview for stable/zed https://review.opendev.org/c/openstack/openstacksdk/+/856728 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/openstacksdk stable/zed: Update TOX_CONSTRAINTS_FILE for stable/zed https://review.opendev.org/c/openstack/openstacksdk/+/856729 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/openstacksdk master: Update master for stable/zed https://review.opendev.org/c/openstack/openstacksdk/+/856730 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/openstacksdk master: Add Python3 antelope unit tests https://review.opendev.org/c/openstack/openstacksdk/+/856731 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/osc-lib stable/zed: Update .gitreview for stable/zed https://review.opendev.org/c/openstack/osc-lib/+/856732 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/osc-lib stable/zed: Update TOX_CONSTRAINTS_FILE for stable/zed https://review.opendev.org/c/openstack/osc-lib/+/856733 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/osc-lib master: Update master for stable/zed https://review.opendev.org/c/openstack/osc-lib/+/856734 | 11:21 |
opendevreview | OpenStack Release Bot proposed openstack/osc-lib master: Add Python3 antelope unit tests https://review.opendev.org/c/openstack/osc-lib/+/856735 | 11:21 |
opendevreview | Merged openstack/openstacksdk master: volume: Trivial docstring fixes to 'wait_for_status' https://review.opendev.org/c/openstack/openstacksdk/+/822315 | 11:24 |
opendevreview | Merged openstack/python-openstackclient master: Add address-scope to NDP proxy tests https://review.opendev.org/c/openstack/python-openstackclient/+/856521 | 11:24 |
opendevreview | Merged openstack/os-service-types master: Update api_ref for Cyborg project https://review.opendev.org/c/openstack/os-service-types/+/856373 | 11:35 |
opendevreview | Merged openstack/openstacksdk master: Implement project cleanup for object-store https://review.opendev.org/c/openstack/openstacksdk/+/853015 | 14:14 |
gtema | stephenfin frickler: did you ever completely understood all the different networking models in openstack? When I see some comments in the SDK code (for networks handling) my hairs are raising up. This is code is not manageable | 14:42 |
stephenfin | gtema: I leave networking to other people with more time than me 😇 It's madness | 14:42 |
gtema | just read that: https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/cloud/meta.py#L160 | 14:43 |
opendevreview | Merged openstack/cliff stable/zed: Update .gitreview for stable/zed https://review.opendev.org/c/openstack/cliff/+/856725 | 14:44 |
stephenfin | gtema: Like I said, madness :) | 14:45 |
gtema | yeah, but we need to manage it somehow. ansible guys are now struggling that their improved tests are failing under certain conditions. No surprise with logic like that | 14:46 |
gtema | and I wanted to streamline this for R1.0 also. But don't even have idea from which side to touch it - insane | 14:46 |
gtema | that also proves to me why InterOp as such does not work (and will never work) | 14:47 |
gtema | stephenfin, do you have an idea since when nova properly fills accessIPv4? | 14:48 |
gtema | the comment in API is awesome: "May be automatically set by the provider." | 14:49 |
opendevreview | Merged openstack/cliff stable/zed: Update TOX_CONSTRAINTS_FILE for stable/zed https://review.opendev.org/c/openstack/cliff/+/856726 | 14:49 |
frickler | this gets even nicer when you try to cater for various IPv6 options :) | 14:49 |
stephenfin | gtema: It never does. I suspect "the provider" is the cloud provider | 14:50 |
gtema | 🤦♂️ | 14:50 |
stephenfin | Nova won't do it for you because networking is hard and it's impossible for nova to figure that out | 14:50 |
stephenfin | I, for one, have never seen it populated | 14:50 |
gtema | sad, very sad | 14:50 |
opendevreview | Merged openstack/osc-lib stable/zed: Update .gitreview for stable/zed https://review.opendev.org/c/openstack/osc-lib/+/856732 | 14:51 |
opendevreview | Merged openstack/osc-lib stable/zed: Update TOX_CONSTRAINTS_FILE for stable/zed https://review.opendev.org/c/openstack/osc-lib/+/856733 | 14:52 |
opendevreview | Merged openstack/osc-lib master: Update master for stable/zed https://review.opendev.org/c/openstack/osc-lib/+/856734 | 14:52 |
frickler | gtema: if you have some specific question on those scenarios, I can try to answer it, but I won't sign the "completely understood" claim | 14:56 |
gtema | lol | 14:56 |
gtema | ok, let's start: when user wants a FIP on server, on which network port it must be placed, is there any difference? especially when there are multiple network interfaces | 14:58 |
frickler | oh, that's a nice one. it has to be placed on that port which is on the subnet which has a router which has the external network | 15:10 |
frickler | this should match the interface on which the instance sees its default route | 15:12 |
frickler | if there are multiple ports that satisfy this criterium, networking is likely broken | 15:12 |
opendevreview | OpenStack Release Bot proposed openstack/keystoneauth stable/zed: Update .gitreview for stable/zed https://review.opendev.org/c/openstack/keystoneauth/+/856793 | 15:12 |
opendevreview | OpenStack Release Bot proposed openstack/keystoneauth stable/zed: Update TOX_CONSTRAINTS_FILE for stable/zed https://review.opendev.org/c/openstack/keystoneauth/+/856794 | 15:12 |
opendevreview | OpenStack Release Bot proposed openstack/keystoneauth master: Update master for stable/zed https://review.opendev.org/c/openstack/keystoneauth/+/856795 | 15:12 |
opendevreview | OpenStack Release Bot proposed openstack/keystoneauth master: Add Python3 antelope unit tests https://review.opendev.org/c/openstack/keystoneauth/+/856796 | 15:12 |
gtema | tja. A Net with 3 subnets. Net is connected to router with external access. Now user wants VM with interface on all 3 subnets | 15:13 |
gtema | or devstack: there are 2 subnets: private-subnet and ipv6-private-subnet, both connected to same router | 15:14 |
frickler | v6 doesn't have FIPs, so that's easy | 15:15 |
gtema | hmm, okay | 15:15 |
frickler | multiple v4 subnets in a single network is difficult, not sure this can be handled other then the user specifying the subnet to bind the FIP to | 15:16 |
gtema | okay, assume this matches my understanding and in few minutes I will not be confused again, do you understand what nat_destination network could be for? | 15:17 |
gtema | https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/cloud/_floating_ip.py#L1063 | 15:17 |
* frickler needs to dig into the code | 15:17 | |
gtema | "Find a port attached to the server which is on a network which | 15:17 |
gtema | has a subnet which can be the destination of NAT." | 15:17 |
frickler | ah, yes, that is the network that the server port should be on | 15:19 |
frickler | so if the user doesn't want to specify the port explicitly, they can say "use the port that is on the nat_destination network" instead | 15:20 |
gtema | so here it was supposed to exactly find port of the instance from the subnet with "external" access? | 15:21 |
gtema | the term nat_destination is not really very self explaining | 15:21 |
frickler | the term is questionable, yes | 15:22 |
frickler | also it only specifies the network, not the subnet | 15:23 |
gtema | so this would be subnet_with_router_connected_to_external ? | 15:23 |
frickler | no, network_... | 15:23 |
gtema | yeah, right | 15:24 |
frickler | if the port has multiple fixed_ips, possibly on different subnets, one of those is chosen at random | 15:24 |
frickler | also if the instance has multiple ports connected to the same network, the most recently create one is chosen, which is also an interesting decision | 15:25 |
gtema | yeh, this code is full of interesting decisions that I can't decode even respect for so many comments trying to explaing | 15:25 |
gtema | so in summary it searches for the network which is through the router connected to another network with router:external=True | 15:27 |
frickler | no. the user has to specify that network | 15:28 |
gtema | well, user says: please gimme VM with interfaces to following networks and a FIP | 15:28 |
gtema | or worse: fip_pool | 15:29 |
frickler | yes, and in addition the user says (in nat_destination) which of those networks to connect the FIP to | 15:29 |
gtema | and normally this never happens so code need to find this out | 15:29 |
frickler | is that a new feature request or is that already happening somewhere? | 15:30 |
gtema | no, this is how ansible tests are looking like | 15:30 |
gtema | https://opendev.org/openstack/ansible-collections-openstack/src/branch/master/ci/roles/server/tasks/main.yml | 15:31 |
gtema | I never myself passed nat_destination in any case while provisioning server | 15:31 |
gtema | just 1-2 nics and request IP | 15:32 |
gtema | https://opendev.org/openstack/ansible-collections-openstack/src/branch/master/ci/roles/server/tasks/main.yml#L298 - this is the most interesting case | 15:32 |
gtema | 3 nics: 2 nets and 1 port | 15:33 |
frickler | _find_interesting_networks() | 15:33 |
frickler | https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/cloud/_network_common.py#L256 | 15:33 |
gtema | yes, this is exactly what I am telling - depending on arguments that users passes and conditions we land in totally different places in the code and I just can't build proper picture | 15:33 |
frickler | weird spaghetti code, yes. this only checks for a gateway_ip being defined on a subnet, not for a router https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/cloud/_network_common.py#L174-L180 | 15:35 |
gtema | but ok, thks. Which ways of accessibility to the outside world are there: using shared_snat, assigning FIP. Anything else? | 15:36 |
frickler | direct routing | 15:36 |
gtema | how? | 15:37 |
frickler | using address scope in neutron and directly assigning public v4 addresses in tenant subnets | 15:37 |
frickler | this is essentially how IPv6 works, at least when following my standard setup guide | 15:37 |
frickler | but is possibly for v4, too | 15:37 |
frickler | just almost noone does it, because v4 space is too expensive | 15:38 |
gtema | my hands fall down | 15:38 |
gtema | private ipv6 vs public one? how this is managed? | 15:39 |
frickler | I wouldn't use private IPv6. but one could do that via address scope, too | 15:39 |
frickler | so for public IPv6, the provider would set up a subnet pool that the use can use to define their subnets from | 15:40 |
frickler | ... the user can use ... | 15:40 |
gtema | yeah, the scope is now SDK. It should be able to do whatever user requests without forcing him to understand all details | 15:40 |
gtema | I think I need to sleep few days with that. I want to refactor this code, cause nobody is able to understand it properly | 15:41 |
gtema | very sadly any attempt to touch it will definitely break few clouds which do things differently (looking at https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/cloud/meta.py#L160) | 15:42 |
gtema | and we do not have possibility to test SDK on different clouds to verify how things are working | 15:43 |
frickler | option 4 I think is the most common option in general. 2+3 could be expected from "modern" clouds. 1+5 are legacy | 15:44 |
frickler | one could try to setup different devstacks for 2-4 | 15:44 |
gtema | sadly legacy is still reality. That is why with 0.99 I broke completely zuul/nodepool which still runs on rax | 15:45 |
frickler | maybe some day we will have to say "this isn't openstack, we don't support it any longer" | 15:45 |
gtema | well, that is exactly the point. I want now to reorg this into something like an interface with each difference implemented by dedicated class | 15:46 |
gtema | so that through profiles or better some other discovery mechanism proper one is selected | 15:46 |
gtema | and if someone at rax is still interested at having sdk for them they can provide their own implementation | 15:47 |
opendevreview | Merged openstack/osc-lib master: Add Python3 antelope unit tests https://review.opendev.org/c/openstack/osc-lib/+/856735 | 15:48 |
gtema | now with R1.0 it is exactly the time to say this. Otherwise we maintain it for next 8 years ;-) | 15:48 |
gtema | thanks for clarifications frickler, appreciate that | 15:50 |
frickler | sure, let me know if you have further questions or something to review | 16:08 |
gtema | thks. We should meet some time finally here around ;-) | 16:09 |
opendevreview | Merged openstack/openstacksdk stable/zed: Update .gitreview for stable/zed https://review.opendev.org/c/openstack/openstacksdk/+/856728 | 16:17 |
opendevreview | Merged openstack/openstacksdk stable/zed: Update TOX_CONSTRAINTS_FILE for stable/zed https://review.opendev.org/c/openstack/openstacksdk/+/856729 | 16:21 |
opendevreview | Merged openstack/openstacksdk master: Update master for stable/zed https://review.opendev.org/c/openstack/openstacksdk/+/856730 | 16:21 |
opendevreview | Merged openstack/cliff master: Add Python3 antelope unit tests https://review.opendev.org/c/openstack/cliff/+/856727 | 16:33 |
opendevreview | Merged openstack/openstacksdk master: Add Python3 antelope unit tests https://review.opendev.org/c/openstack/openstacksdk/+/856731 | 16:50 |
opendevreview | Merged openstack/openstacksdk master: resource: Fix pagination of nested Glance resources https://review.opendev.org/c/openstack/openstacksdk/+/853656 | 18:57 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!