On Sat, Jan 14, 2023 at 10:28 AM Vladislav Odintsov <[email protected]>
wrote:

> 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 <[email protected]>
> ---
>  NEWS              |  1 +
>  utilities/ovn-ctl | 56 ++++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 56 insertions(+), 1 deletion(-)
>
> diff --git a/NEWS b/NEWS
> index 2e0d54ae6..9aeeac10b 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -2,6 +2,7 @@ Post v22.12.0
>  -------------
>    - ovn-controller: Experimental support for co-hosting multiple
> controller
>      instances on the same host.
> +  - 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
>          ;;
> --
> 2.36.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
>
Looks good to me, thanks.

Reviewed-by: Ales Musil <[email protected]>

-- 

Ales Musil

Senior Software Engineer - OVN Core

Red Hat EMEA <https://www.redhat.com>

[email protected]    IM: amusil
<https://red.ht/sig>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to