diff mbox series

[ovs-dev,1/4] rhel, ovn-ctl: add support to run OVN SB relay

Message ID 20230105233344.3271729-2-odivlad@gmail.com
State Superseded, archived
Headers show
Series Add support for OVSDB Relay in OVN SB DB | expand

Checks

Context Check Description
ovsrobot/apply-robot warning apply and check: warning
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/github-robot-_ovn-kubernetes success github build: passed

Commit Message

Vladislav Odintsov Jan. 5, 2023, 11:33 p.m. UTC
New ovn-ctl commands were added:
- start_sb_relay_ovsdb
- stop_sb_relay_ovsdb
- restart_sb_relay_ovsdb

Required configuration parameters are:
--db-sb-relay-remote - needed to supply upstream cluster/server remote.

Optionally user may pass next parameters:
--db-sb-relay-sock
--db-sb-relay-pidfile
--db-sb-relay-ctrl-sock
--db-sb-relay-use-remote-in-db
--ovn-sb-relay-db-ssl-key
--ovn-sb-relay-db-ssl-cert
--ovn-sb-relay-db-ssl-ca-cert

Signed-off-by: Vladislav Odintsov <odivlad@gmail.com>
---
 NEWS              |  1 +
 utilities/ovn-ctl | 56 ++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 56 insertions(+), 1 deletion(-)

Comments

0-day Robot Jan. 6, 2023, 12:21 a.m. UTC | #1
Bleep bloop.  Greetings Vladislav Odintsov, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
WARNING: Line is 100 characters long (recommended limit is 79)
#49 FILE: utilities/ovn-ctl:88:
    OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovnsb_relay $DB_SB_RELAY_PIDFILE $DB_SB_RELAY_CTRL_SOCK

WARNING: Line is 80 characters long (recommended limit is 79)
#152 FILE: utilities/ovn-ctl:937:
  start_sb_relay_ovsdb        start ovn southbound db ovsdb-server relay process

WARNING: Line is 82 characters long (recommended limit is 79)
#168 FILE: utilities/ovn-ctl:959:
  restart_sb_relay_ovsdb      restart ovn southbound db ovsdb-server relay process

WARNING: Line is 89 characters long (recommended limit is 79)
#176 FILE: utilities/ovn-ctl:1031:
  --db-sb-relay-remote           Specifies upstream cluster/server remote for ovsdb relay

WARNING: Line is 125 characters long (recommended limit is 79)
#178 FILE: utilities/ovn-ctl:1033:
                                 OVN_Sorthbound db listen on target connection table (default: $DB_SB_RELAY_USE_REMOTE_IN_DB)

WARNING: Line is 85 characters long (recommended limit is 79)
#187 FILE: utilities/ovn-ctl:1149:
  --db-sb-relay-sock=SOCKET  OVN_IC_Northbound db socket (default: $DB_SB_RELAY_SOCK)

WARNING: Line is 97 characters long (recommended limit is 79)
#188 FILE: utilities/ovn-ctl:1150:
  --db-sb-relay-pidfile=FILE OVN_Southbound relay db pidfile (default: $DB_SB_RELAY_CTRL_PIDFILE)

WARNING: Line is 105 characters long (recommended limit is 79)
#189 FILE: utilities/ovn-ctl:1151:
  --db-sb-relay-ctrl-sock=SOCKET OVN_Southbound relay db control socket (default: $DB_SB_RELAY_CTRL_SOCK)

WARNING: Line is 88 characters long (recommended limit is 79)
#192 FILE: utilities/ovn-ctl:1154:
  --ovn-sb-relay-db-ssl-ca-cert=CERT OVN OVN_Southbound DB relay SSL CA certificate file

Lines checked: 229, Warnings: 9, Errors: 0


Please check this out.  If you feel there has been an error, please email aconole@redhat.com

Thanks,
0-day Robot
diff mbox series

Patch

diff --git a/NEWS b/NEWS
index 27caf78d9..ade4b6da7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,6 @@ 
 Post v22.12.0
 -------------
+  - Add ovn-ctl commands for (re)starting/stopping OVSDB relay for OVN SB DB.
 
 OVN v22.12.0 - 16 Dec 2022
 --------------------------
diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
index 93be9b84b..dc8865abf 100755
--- a/utilities/ovn-ctl
+++ b/utilities/ovn-ctl
@@ -84,6 +84,10 @@  stop_ic_ovsdb () {
     stop_ic_sb_ovsdb
 }
 
+stop_sb_relay_ovsdb() {
+    OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovnsb_relay $DB_SB_RELAY_PIDFILE $DB_SB_RELAY_CTRL_SOCK
+}
+
 demote_xx_ovsdb () {
     local sync_from_addr=$1
     local sync_from_proto=$2
@@ -179,6 +183,7 @@  start_ovsdb__() {
     local ovn_db_ssl_cert
     local ovn_db_ssl_cacert
     local ovn_db_election_timer
+    local relay_mode
     eval db_pid_file=\$DB_${DB}_PIDFILE
     eval cluster_local_addr=\$DB_${DB}_CLUSTER_LOCAL_ADDR
     eval cluster_local_port=\$DB_${DB}_CLUSTER_LOCAL_PORT
@@ -205,6 +210,8 @@  start_ovsdb__() {
     eval ovn_db_ssl_cert=\$OVN_${DB}_DB_SSL_CERT
     eval ovn_db_ssl_cacert=\$OVN_${DB}_DB_SSL_CA_CERT
     eval ovn_db_election_timer=\$DB_${DB}_ELECTION_TIMER
+    eval relay_mode=\$RELAY_MODE
+    eval relay_remote=\$DB_${DB}_REMOTE
 
     ovn_install_dir "$OVN_RUNDIR"
     ovn_install_dir "$ovn_logdir"
@@ -222,6 +229,8 @@  start_ovsdb__() {
         mode=active_passive
         echo "$sync_from_proto:$sync_from_addr:\
 $sync_from_port" > $active_conf_file
+    elif test X"$relay_mode" != Xno; then
+        mode=relay
     else
         mode=standalone
     fi
@@ -245,6 +254,8 @@  $cluster_remote_port
         else
             create_cluster "$file" "$schema" "$local" "$ovn_db_election_timer"
         fi
+    elif test $mode = relay; then
+        local file="relay:${schema_name}:${relay_remote}"
     else
         upgrade_db "$file" "$schema"
     fi
@@ -332,7 +343,7 @@  $cluster_remote_port
     fi
 
     # Initialize the database if it's NOT joining a cluster.
-    if test -z "$cluster_remote_addr"; then
+    if test -z "$cluster_remote_addr" && test X$mode != Xrelay; then
         $(echo ovn-${db}ctl | tr _ -) --no-leader-only --db="unix:$sock" init
     fi
 
@@ -349,6 +360,11 @@  start_nb_ovsdb() {
     start_ovsdb__ NB nb OVN_Northbound NB_Global "$OVSDB_NB_WRAPPER"
 }
 
+start_sb_relay_ovsdb() {
+    RELAY_MODE=yes
+    start_ovsdb__ SB_RELAY sb-relay OVN_Southbound SB_Global
+}
+
 start_sb_ovsdb() {
     # Increase the limit on the number of open file descriptors, because
     # SB DB may connect to large number of chassises, on top of connections
@@ -694,6 +710,11 @@  restart_ic_sb_ovsdb () {
     start_ic_sb_ovsdb
 }
 
+restart_sb_relay_ovsdb() {
+    stop_sb_relay_ovsdb
+    start_sb_relay_ovsdb
+}
+
 ## ---- ##
 ## main ##
 ## ---- ##
@@ -785,6 +806,8 @@  set_defaults () {
     OVN_IC_SB_LOG="-vconsole:off -vfile:info"
     OVN_IC_NB_LOGFILE="$ovn_logdir/ovsdb-server-ic-nb.log"
     OVN_IC_SB_LOGFILE="$ovn_logdir/ovsdb-server-ic-sb.log"
+    OVN_SB_RELAY_LOG="-vconsole:emer -vsyslog:err -vfile:info"
+    OVN_SB_RELAY_LOGFILE="$ovn_logdir/ovsdb-server-sb-relay.log"
 
     OVN_CONTROLLER_SSL_KEY=""
     OVN_CONTROLLER_SSL_CERT=""
@@ -867,6 +890,15 @@  set_defaults () {
     OVN_IC_SB_DB_SSL_CERT=""
     OVN_IC_SB_DB_SSL_CA_CERT=""
 
+    RELAY_MODE=no
+    DB_SB_RELAY_REMOTE=
+    DB_SB_RELAY_SOCK=$OVN_RUNDIR/ovnsb_relay_db.sock
+    DB_SB_RELAY_PIDFILE=$OVN_RUNDIR/ovnsb_relay_db.pid
+    DB_SB_RELAY_CTRL_SOCK=$OVN_RUNDIR/ovnsb_relay_db.ctl
+    OVN_SB_RELAY_DB_SSL_KEY=""
+    OVN_SB_RELAY_DB_SSL_CERT=""
+    OVN_SB_RELAY_DB_SSL_CA_CERT=""
+    DB_SB_RELAY_USE_REMOTE_IN_DB="yes"
 }
 
 set_option () {
@@ -902,6 +934,7 @@  Commands:
   start_ic_sb_ovsdb             start ovn ic-southbound db ovsdb-server process
   start_controller            start ovn-controller
   start_controller_vtep       start ovn-controller-vtep
+  start_sb_relay_ovsdb        start ovn southbound db ovsdb-server relay process
   stop_northd                 stop ovn-northd
   stop_ovsdb                  stop ovn related ovsdb-server processes
   stop_nb_ovsdb               stop ovn northbound db ovsdb-server process
@@ -912,6 +945,7 @@  Commands:
   stop_ic_sb_ovsdb              stop ovn ic-southbound db ovsdb-server process
   stop_controller             stop ovn-controller
   stop_controller_vtep        stop ovn-controller-vtep
+  stop_sb_relay_ovsdb         stop ovn southbound db ovsdb-server relay process
   restart_northd              restart ovn-northd
   restart_ovsdb               restart ovn related ovsdb-server processes
   restart_nb_ovsdb            restart ovn northbound db ovsdb-server process
@@ -922,6 +956,7 @@  Commands:
   restart_ic_sb_ovsdb           restart ovn ic-southbound db ovsdb-server process
   restart_controller          restart ovn-controller
   restart_controller_vtep     restart ovn-controller-vtep
+  restart_sb_relay_ovsdb      restart ovn southbound db ovsdb-server relay process
   status_northd               status ovs-northd
   status_ovsdb                status related ovsdb-server processes
   status_ic                   status ovn-ic
@@ -993,6 +1028,10 @@  Options:
                                  processes should be started with
                                  --disable-file-column-diff.
                                  More details in ovsdb(7).  (default: no)
+  --db-sb-relay-remote           Specifies upstream cluster/server remote for ovsdb relay
+  --db-sb-relay-use-remote-in-db=no|yes
+                                 OVN_Sorthbound db listen on target connection table (default: $DB_SB_RELAY_USE_REMOTE_IN_DB)
+
   --ovn-northd-ddlog=yes|no      whether we should run the DDlog version
                                  of ovn-northd.  The default is "no".
   -h, --help                     display this help message
@@ -1107,6 +1146,12 @@  File location options:
   --ovn-ic-sb-db=IC SB DB address(es) (default: $OVN_IC_SB_DB)
   --db-ic-nb-use-remote-in-db=yes|no OVN_IC_Northbound db listen on target connection table (default: $DB_IC_NB_USE_REMOTE_IN_DB)
   --db-ic-sb-use-remote-in-db=yes|no OVN_IC_Southbound db listen on target connection table (default: $DB_IC_SB_USE_REMOTE_IN_DB)
+  --db-sb-relay-sock=SOCKET  OVN_IC_Northbound db socket (default: $DB_SB_RELAY_SOCK)
+  --db-sb-relay-pidfile=FILE OVN_Southbound relay db pidfile (default: $DB_SB_RELAY_CTRL_PIDFILE)
+  --db-sb-relay-ctrl-sock=SOCKET OVN_Southbound relay db control socket (default: $DB_SB_RELAY_CTRL_SOCK)
+  --ovn-sb-relay-db-ssl-key=KEY OVN_Southbound DB relay SSL private key file
+  --ovn-sb-relay-db-ssl-cert=CERT OVN_Southbound DB relay SSL certificate file
+  --ovn-sb-relay-db-ssl-ca-cert=CERT OVN OVN_Southbound DB relay SSL CA certificate file
 
 Default directories with "configure" option and environment variable override:
   logs: /usr/local/var/log/ovn (--with-logdir, OVN_LOGDIR)
@@ -1204,6 +1249,9 @@  case $command in
     start_ic_sb_ovsdb)
         start_ic_sb_ovsdb
         ;;
+    start_sb_relay_ovsdb)
+        start_sb_relay_ovsdb
+        ;;
     stop_northd)
         stop_northd
         ;;
@@ -1234,6 +1282,9 @@  case $command in
     stop_ic_sb_ovsdb)
         stop_ic_sb_ovsdb
         ;;
+    stop_sb_relay_ovsdb)
+       stop_sb_relay_ovsdb
+        ;;
     restart_northd)
         restart_northd
         ;;
@@ -1264,6 +1315,9 @@  case $command in
     restart_ic_sb_ovsdb)
         restart_ic_sb_ovsdb
         ;;
+    restart_sb_relay_ovsdb)
+        restart_sb_relay_ovsdb
+        ;;
     status_northd)
         daemon_status $OVN_NORTHD_BIN || exit 1
         ;;