Test "ovn multinode - Transit Router basic functionality" stops
ovn-controller, restarts it using local sb, and finally, restarts it
using ovn-central sb using tcp.
If the cluster was started with ENABLE_SSL="yes" (e.g. on local laptop),
then all following tests were failing.
This patch ensures that, by default, multinode tests use same defaults as
ovn-fake-multinode (i.e. ENABLE_SSL=yes and cert path /opt/ovn).
It also supports an option ENABLE_SSL=no, in case the ovn-fake-multinode
was setup w/o SSL.
Fixes: 7c3f7f415f1d ("northd, controller: Flood ARP and NA packet on transit
router.")
Signed-off-by: Xavier Simonart <[email protected]>
---
- v2: Updated based on Ales' feedback i.e. use ENABLE_SSL variable, and
do not detect certs_path.
---
.../workflows/ovn-fake-multinode-tests.yml | 2 +-
tests/multinode-macros.at | 37 ++++++++++++++++---
2 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/ovn-fake-multinode-tests.yml
b/.github/workflows/ovn-fake-multinode-tests.yml
index a2744d085..abbb15631 100644
--- a/.github/workflows/ovn-fake-multinode-tests.yml
+++ b/.github/workflows/ovn-fake-multinode-tests.yml
@@ -101,7 +101,7 @@ jobs:
RELAY_IMAGE: "ovn/ovn-multi-node:${{ github.ref_name }}"
GW_IMAGE: "ovn/ovn-multi-node:${{ github.ref_name }}"
# Disable SSL/TLS for now. Revisit this if required.
- ENABLE_SSL: no
+ ENABLE_SSL: yes
CC: gcc
OPTS: "--disable-ssl"
dependencies: |
diff --git a/tests/multinode-macros.at b/tests/multinode-macros.at
index 9c23073ef..282f836f7 100644
--- a/tests/multinode-macros.at
+++ b/tests/multinode-macros.at
@@ -88,6 +88,31 @@ check_fake_multinode_setup_by_nodes() {
on_exit "m_as $c ovs-ofctl dump-flows br-int > flow-${c}.txt"
on_exit "m_as $c ovs-vsctl get open . external_ids > extids-${c}.txt"
done
+
+ # Check $ENABLE_SSL variable, and use SSL if unset (default) or not set to
"no".
+ if [[ "$ENABLE_SSL" != "no" ]]; then
+ REMOTE_PROT=ssl
+ SSL_CERTS_PATH=/opt/ovn
+
CONTROLLER_SSL_ARGS="--ovn-controller-ssl-key=${SSL_CERTS_PATH}/ovn-privkey.pem
\
+
--ovn-controller-ssl-cert=${SSL_CERTS_PATH}/ovn-cert.pem \
+
--ovn-controller-ssl-ca-cert=${SSL_CERTS_PATH}/pki/switchca/cacert.pem"
+ NORTHD_SSL_ARGS="--ovn-nb-db-ssl-key=${SSL_CERTS_PATH}/ovn-privkey.pem
\
+ --ovn-nb-db-ssl-cert=${SSL_CERTS_PATH}/ovn-cert.pem \
+
--ovn-nb-db-ssl-ca-cert=${SSL_CERTS_PATH}/pki/switchca/cacert.pem \
+ --ovn-sb-db-ssl-key=${SSL_CERTS_PATH}/ovn-privkey.pem \
+ --ovn-sb-db-ssl-cert=${SSL_CERTS_PATH}/ovn-cert.pem \
+
--ovn-sb-db-ssl-ca-cert=${SSL_CERTS_PATH}/pki/switchca/cacert.pem \
+ --ovn-northd-ssl-key=${SSL_CERTS_PATH}/ovn-privkey.pem \
+ --ovn-northd-ssl-cert=${SSL_CERTS_PATH}/ovn-cert.pem \
+
--ovn-northd-ssl-ca-cert=${SSL_CERTS_PATH}/pki/switchca/cacert.pem"
+ else
+ REMOTE_PROT=tcp
+ CONTROLLER_SSL_ARGS=""
+ NORTHD_SSL_ARGS=""
+ fi
+ export CONTROLLER_SSL_ARGS
+ export NORTHD_SSL_ARGS
+ export REMOTE_PROT
}
check_fake_multinode_setup() {
@@ -130,9 +155,10 @@ multinode_setup_northd() {
multinode_cleanup_northd $c
- m_as $c /usr/share/ovn/scripts/ovn-ctl start_northd
- m_as $c ovn-nbctl set-connection ptcp:6641
- m_as $c ovn-sbctl set-connection ptcp:6642
+ echo "Using ${NORTHD_SSL_ARGS} for northd".
+ m_as $c /usr/share/ovn/scripts/ovn-ctl start_northd ${NORTHD_SSL_ARGS}
+ m_as $c ovn-nbctl set-connection p${REMOTE_PROT}:6641
+ m_as $c ovn-sbctl set-connection p${REMOTE_PROT}:6642
}
# multinode_setup_controller NODE ENCAP_IP REMOTE_IP [ENCAP_TYPE]
@@ -150,11 +176,12 @@ multinode_setup_controller() {
m_as $c sh -c "rm -f /etc/openvswitch/*.db"
m_as $c /usr/share/openvswitch/scripts/ovs-ctl start --system-id=$c
- m_as $c /usr/share/ovn/scripts/ovn-ctl start_controller
+ echo "Using ${CONTROLLER_SSL_ARGS} for ovn-controller".
+ m_as $c /usr/share/ovn/scripts/ovn-ctl start_controller
${CONTROLLER_SSL_ARGS}
m_as $c ovs-vsctl set open . external_ids:ovn-encap-ip=$encap_ip
m_as $c ovs-vsctl set open . external-ids:ovn-encap-type=$encap_type
- m_as $c ovs-vsctl set open . external-ids:ovn-remote=tcp:$remote_ip:6642
+ m_as $c ovs-vsctl set open .
external-ids:ovn-remote=${REMOTE_PROT}:$remote_ip:6642
m_as $c ovs-vsctl set open . external-ids:ovn-openflow-probe-interval=60
m_as $c ovs-vsctl set open . external-ids:ovn-remote-probe-interval=180000
m_as $c ovs-vsctl set open . external-ids:ovn-bridge-datapath-type=system
--
2.47.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev