network-ovn can't identify the domain name used to instead of ip_addresses
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
networking-ovn |
New
|
Undecided
|
Unassigned |
Bug Description
Environment:
CentOS7,4 CPU, 8g RAM
Problem Description:
When I try to containerized ovn and neutron-server, I need to make all service of ovn(eg: ovnnb-db,ovnsb-db) and neutron-server as pods. Here neutron-server as pod includes networking-ovn. I
know networking-ovn needs configuration to connect ovnnb-db and ovnsb-db as follow:
[ovn]
...
ovn_nb_connection = tcp:IP_ADDRESS:6641
ovn_sb_connection = tcp:IP_ADDRESS:6642
And in /networking/
==============
ovn_opts = [
cfg.
cfg.
cfg.
===============
But in k8s environment, All ip will be known when all ovn pods are running. We should get configuration ips when ovn pods are running. And then puts neutron-server pod up. So we need to use domain name likes ovn-nb-
===============
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
2018-03-05 11:18:04.768 15 ERROR networking_
=================
Conclusion:
I think domain name as a configuration should be supported in networking-ovn when connect ovnnb-db and ovnsb-db. Otherwise we can't containerized neutron-server when using networking-ovn.
affects: | tripleo → networking-ovn |
Also hit this issue with containerized setup. Investigated a bit and found 3 places where fix is possible
1. In Neutron, at conf load stage. https:/ /github. com/openstack/ neutron/ blob/master/ neutron/ conf/plugins/ ml2/drivers/ ovn/ovn_ conf.py# L231
Solution will be klunky: parse config string with possibly several hosts defined, resolve all addresses and re-assemble string back
2. In ovsdbapp https:/ /github. com/openstack/ ovsdbapp/ blob/master/ ovsdbapp/ backend/ ovs_idl/ idlutils. py#L183
Slightly better, here we have single record to process
3. In ovs somewhere here: https:/ /github. com/openvswitch /ovs/blame/ master/ python/ ovs/socket_ util.py# L237
Best solution probably to fix in ovs, but fix in ovsdbapp is smaller and easier to test