Closed mangelajo closed 3 years ago
Ok, so when ovn is not in shared gateway mode ovn-k8s-gw0 and the node_local_switch don't exist.
I have tested by creating those resources manually on the nodes, and it's back to working, to avoid collisions and issues with the different implementations the proposed solution would be to use an independent switch & localnet switch on the nodes, in a way that we become much more independent of the ovn-kubernetes mode:
# see go-controller/pkg/node/gateway_shared_intf_linux.go
ovs-vsctl --may-exist add-br br-submariner
ovs-vsctl br-set-external-id br-submariner bridge-id br-submariner # probably not necessary
ovs-vsctl --if-exists get Open_vSwitch . external_ids:ovn-bridge-mappings
ovs-vsctl set open . external-ids:ovn-bridge-mappings=physnet:br-ex,submariner:br-submariner
ovs-vsctl --may-exist add-port br-submariner ovn-k8s-sub0 -- set interface ovn-k8s-sub0 type=internal mtu_request=$MTU mac="0a\\:58\\:11\\:22\\:33\\:44"
ip l set ovn-k8s-sub0 up
ip addr add dev ovn-k8s-sub0 169.254.254.9/29 # the submariner upstream leg moves to have 169.254.254.8/29
Then on the OVN side:
ovn-nbctl ls-add submariner_gateway
ovn-nbctl lsp-add submariner_gateway submariner-localnet
ovn-nbctl lsp-set-type submariner-localnet localnet
ovn-nbctl lsp-set-addresses submariner-localnet unknown
ovn-nbctl lsp-set-options submariner-localnet network_name=submariner
The submariner_router upstream leg goes into "submariner_gateway" switch.
:tada: Great news! Looks like all the dependencies have been resolved:
:bulb: To add or remove a dependency please update this issue/PR description.
Brought to you by Dependent Issues (:robot: ). Happy coding!
Depends on #1282 What happened:
route-agent on the gateway nodes fails to start:
What you expected to happen:
route-agent should work, connectivity should work.
How to reproduce it (as minimally and precisely as possible):
Install submariner on top of OCP 4.8
Anything else we need to know?:
The local_node_switch is not created in OCP4.8, this is where the ovn-k8s-gw0 is created.
We could create a local_node_switch for submariner, and attach subm-k8s-gw0 in each node.
Environment:
subctl version
):kubectl version
):submariner-20210421114355.tar.gz