Thursday, 2024-01-04

opendevreviewGhanshyam proposed openstack/octavia master: Update python classifier in setup.cfg  https://review.opendev.org/c/openstack/octavia/+/90468209:08
opendevreviewGhanshyam proposed openstack/octavia-dashboard master: Update python classifier in setup.cfg  https://review.opendev.org/c/openstack/octavia-dashboard/+/90468309:08
opendevreviewGhanshyam proposed openstack/octavia-lib master: Update python classifier in setup.cfg  https://review.opendev.org/c/openstack/octavia-lib/+/90468409:08
opendevreviewGhanshyam proposed openstack/python-octaviaclient master: Update python classifier in setup.cfg  https://review.opendev.org/c/openstack/python-octaviaclient/+/90468509:08
kevkoHi, we were upgrading openstack with octavia from version Wallaby to version Xena  and we were using provider = octavia (which was in wallaby -> octavia.api.drivers.amphora_driver.v1.driver:AmphoraProviderDriver) BUT in xena provider octavia is changed (octavia.api.drivers.amphora_driver.v2.driver:AmphoraProviderDriver) . Problem is that provider12:28
kevkovalue is saved in Database, so manipulating with LB stopped work as loadbalancers are v1 but octavia project point provider octavia to v2 .... what we've done was that we patched provider octavia in entrypoints from v2 to v1  .... how to deal with it ... I think THIS IS A BUG ..as default is amphorav2 and octavia has to be backward compatible and12:28
kevkoshould point to v1 ....12:28
kevkoRelease note is saying that there is an alias amphorav1 ...but i think this can't work ..or it means that I need to fix  provider = octavia to provider = amphorav1 in database ...12:29
kevkoSo question is, is it bug ? How can I deal with it without entrypoints patch we've made 12:30
gthiemongekevko: hi, it's intentional, the amphorav2 provider is compatible with load balancers created with the amphorav1 provider, the migration from wallaby to xena should be a problem here13:00
gthiemongeamphorav1 and amphorav2 are only drivers that control the life-cycle of the amphorae and not API versions between the control plane and the amphorae. An amphora instance doesn't know what v1 or v2 means13:02
kevkogthiemonge: well, we really faced those issues 13:03
kevkogthiemonge: LBs were created with provider octavia ...not amphorav1 13:03
kevkogthiemonge: but between versions octavia provider changed from v1 to v213:03
kevkogthiemonge: and we are not using amphorav2 yet ...13:04
kevkoand it was a problem 13:04
kevkogthiemonge: if i remember correctly ... the problem was also mixed with k8s openstack provider ..which has hardcoded 'octavia'13:06
gthiemongekevko: in Xena, the amphorav2 provider should be automatically enabled (unless you set enabled_provider_drivers to amphorav1 only13:08
kevkogthiemonge: give me a sec ...i will find cloud provider we used to use 13:10
kevkogthiemonge: hmm, we have about 1500 k8s clusters which has openstack cloud provider  ...this was probably the reason why we better touched octvia itself then change config of cloud provider from octavia => amphora ... am i right ? 13:27
kevkogthiemonge: okay now I understand probably all13:31
kevkogthiemonge: so, what do you think about this ... https://github.com/kubernetes/cloud-provider-openstack/blame/2b17004639bc1d9929ed9e7bb8b20d99f893cd9a/pkg/openstack/openstack.go#L6713:35
kevkogthiemonge: var supportedLBProvider = []string{"amphora", "octavia", "ovn"}   13:36
kevkogthiemonge: cloud provider had amphora (v2), octavia(v1), ovn (ovn) (wallaby) ... and now it is amphora (v2), octavia(v2), ovn (ovn) (xena+)   .... can be a problem right ? 13:37
kevkogthiemonge: even in put there is not allowed to send provider as cloud-provider does https://github.com/openstack/octavia/blob/6079b9c4cdb336ad485f95cf3fa82520e22105cb/octavia/api/v2/types/load_balancer.py#L133C1-L133C45 13:51
kevkogthiemonge: am i right ? 13:52
kevkogthiemonge: also here https://github.com/openstack/octavia/blob/9592b54d594506b3bf72e2e7d356445f137b101d/octavia/api/v2/controllers/load_balancer.py#L71413:52
gthiemongelooking...13:53
gthiemongeso if lb.provider is amphora or octavia in the DB, Octavia will use amphorav1 in wallaby (because of the alias setup.cfg) or amphorav2 in xena (because of the new alias), it's perfectly fine, even for LBs created with older releases13:56
gthiemongethe only issue you can have is: if lb.provider is amphorav1 (which is not a great idea to have in the DB), amphorav1 may not be enabled in Xena13:57
kevkogthiemonge: check validation of PUT request for change https://github.com/openstack/octavia/blob/6079b9c4cdb336ad485f95cf3fa82520e22105cb/octavia/api/v2/types/load_balancer.py#L133C45-L140 here and  as you can see here https://github.com/openstack/octavia/blob/9592b54d594506b3bf72e2e7d356445f137b101d/octavia/api/v2/controllers/load_balancer.py#L71414:03
kevko... provider is loaded from DB and code just don't care what is in object from request ..because there it can't be 14:03
kevkobecause it can't pass validation for PUT request 14:03
kevkoso cloud provider  couldn't change the LBs 14:05
kevkoso ? 14:05
gthiemongekevko: sorry I don't understand the point, does Octavia raise an exception there?14:22
kevkogthiemonge: yep, let me gather some logs ..14:23
opendevreviewLukas Piwowarski proposed openstack/octavia-tempest-plugin master: Add backup member tests  https://review.opendev.org/c/openstack/octavia-tempest-plugin/+/89756415:36
opendevreviewLukas Piwowarski proposed openstack/octavia-tempest-plugin master: Add backup member tests  https://review.opendev.org/c/openstack/octavia-tempest-plugin/+/89756415:38

Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!