ovn-ctl script currently automatically attempts to perform clustered
database schema upgrade when starting OVN SB or NB clustered
database. To provide more control over this process a
`--db-cluster-schema-upgrade` option is added.

Default value for this option is `yes`, to preserve current default
behavior.

To start database without performing schema conversion, user can
provide either `--db-cluster-schema-upgrade=no` option or
`--no-db-cluster-schema-upgrade` flag to the ovn-ctl script.

Signed-off-by: Martin Kalcok <[email protected]>
---
 utilities/ovn-ctl       |  7 ++++++-
 utilities/ovn-ctl.8.xml | 21 +++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
index 876565c80..50d588358 100755
--- a/utilities/ovn-ctl
+++ b/utilities/ovn-ctl
@@ -184,6 +184,7 @@ start_ovsdb__() {
     local ovn_db_ssl_cacert
     local ovn_db_election_timer
     local relay_mode
+    local cluster_db_upgrade
     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
@@ -212,6 +213,7 @@ start_ovsdb__() {
     eval ovn_db_election_timer=\$DB_${DB}_ELECTION_TIMER
     eval relay_mode=\$RELAY_MODE
     eval relay_remote=\$DB_${DB}_REMOTE
+    eval cluster_db_upgrade=\$DB_CLUSTER_SCHEMA_UPGRADE
 
     ovn_install_dir "$OVN_RUNDIR"
     ovn_install_dir "$ovn_logdir"
@@ -347,7 +349,7 @@ $cluster_remote_port
         $(echo ovn-${db}ctl | tr _ -) --no-leader-only --db="unix:$sock" init
     fi
 
-    if test $mode = cluster; then
+    if test $mode = cluster && test X"$cluster_db_upgrade" = Xyes; then
         upgrade_cluster "$schema" "unix:$sock"
     fi
 
@@ -898,6 +900,8 @@ set_defaults () {
     OVN_SB_RELAY_DB_SSL_CERT=""
     OVN_SB_RELAY_DB_SSL_CA_CERT=""
     DB_SB_RELAY_USE_REMOTE_IN_DB="yes"
+
+    DB_CLUSTER_SCHEMA_UPGRADE="yes"
 }
 
 set_option () {
@@ -1148,6 +1152,7 @@ File location options:
   --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
+  --db-cluster-schema-upgrade=yes|no (default: $DB_CLUSTER_SCHEMA_UPGRADE)
 
 Default directories with "configure" option and environment variable override:
   logs: /usr/local/var/log/ovn (--with-logdir, OVN_LOGDIR)
diff --git a/utilities/ovn-ctl.8.xml b/utilities/ovn-ctl.8.xml
index 01f4aa26b..3bab055e4 100644
--- a/utilities/ovn-ctl.8.xml
+++ b/utilities/ovn-ctl.8.xml
@@ -156,6 +156,7 @@
     <p><code>--db-ic-sb-cluster-remote-addr=<var>IP ADDRESS</var></code></p>
     <p><code>--db-ic-sb-cluster-remote-port=<var>PORT NUMBER</var></code></p>
     <p><code>--db-ic-sb-cluster-remote-proto=<var>PROTO 
(tcp/ssl)</var></code></p>
+    <p><code>--db-cluster-schema-upgrade=<var>yes|no</var></code></p>
 
     <h1> Probe interval options </h1>
     <p><code>--db-nb-probe-interval-to-active=<var>Time in 
milliseconds</var></code></p>
@@ -324,4 +325,24 @@
            start_northd
       </code>
     </p>
+    <h2>Avoiding automatic clustered OVN database schema upgrade</h2>
+    <p>
+      If you desire more control over clustered DB schema upgrade, you can
+      opt-out of automatic on-start upgrade attempts with
+      <code>--no-db-cluster-schema-upgrade</code>.
+    </p>
+    <h3>Start OVN NB and SB clustered databases on host with IP x.x.x.x 
without schema upgrade</h3>
+    <p>
+      <code>
+        # ovn-ctl start_nb_ovsdb --db-nb-cluster-local-addr=x.x.x.x 
--no-db-cluster-schema-upgrade
+        # ovn-ctl start_sb_ovsdb --db-sb-cluster-local-addr=x.x.x.x 
--no-db-cluster-schema-upgrade
+      </code>
+    </p>
+    <h3>Trigger clustered DB schema upgrade manually</h3>
+    <p>
+      <code>
+        # ovsdb-client convert unix:/var/run/ovn/ovnnb_db.sock 
/usr/local/share/ovn/ovn-nb.ovsschema
+        # ovsdb-client convert unix:/var/run/ovn/ovnsb_db.sock 
/usr/local/share/ovn/ovn-sb.ovsschema
+      </code>
+    </p>
 </manpage>
-- 
2.40.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to