diff mbox series

[ovs-dev,v3] ovn-ctl: Add option to skip schema conversion

Message ID 20240111084850.9265-1-martin.kalcok@canonical.com
State Accepted
Headers show
Series [ovs-dev,v3] ovn-ctl: Add option to skip schema conversion | 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

Martin Kalcok Jan. 11, 2024, 8:48 a.m. UTC
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 <martin.kalcok@canonical.com>
---
 utilities/ovn-ctl       |  7 ++++++-
 utilities/ovn-ctl.8.xml | 21 +++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

Comments

0-day Robot Jan. 11, 2024, 9:10 a.m. UTC | #1
Bleep bloop.  Greetings Martin Kalcok, 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 99 characters long (recommended limit is 79)
#92 FILE: utilities/ovn-ctl.8.xml:334:
    <h3>Start OVN NB and SB clustered databases on host with IP x.x.x.x without schema upgrade</h3>

WARNING: Line is 98 characters long (recommended limit is 79)
#95 FILE: utilities/ovn-ctl.8.xml:337:
        # ovn-ctl start_nb_ovsdb --db-nb-cluster-local-addr=x.x.x.x --no-db-cluster-schema-upgrade

WARNING: Line is 98 characters long (recommended limit is 79)
#96 FILE: utilities/ovn-ctl.8.xml:338:
        # ovn-ctl start_sb_ovsdb --db-sb-cluster-local-addr=x.x.x.x --no-db-cluster-schema-upgrade

WARNING: Line is 100 characters long (recommended limit is 79)
#102 FILE: utilities/ovn-ctl.8.xml:344:
        # ovsdb-client convert unix:/var/run/ovn/ovnnb_db.sock /usr/local/share/ovn/ovn-nb.ovsschema

WARNING: Line is 100 characters long (recommended limit is 79)
#103 FILE: utilities/ovn-ctl.8.xml:345:
        # ovsdb-client convert unix:/var/run/ovn/ovnsb_db.sock /usr/local/share/ovn/ovn-sb.ovsschema

Lines checked: 110, Warnings: 5, Errors: 0


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

Thanks,
0-day Robot
Frode Nordahl Jan. 11, 2024, 10:34 a.m. UTC | #2
On Thu, Jan 11, 2024 at 9:49 AM Martin Kalcok
<martin.kalcok@canonical.com> wrote:
>
> 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 <martin.kalcok@canonical.com>

LGTM, thanks!

Reviewed-by: Frode Nordahl <frode.nordahl@canonical.com>
Mark Michelson Jan. 11, 2024, 7:31 p.m. UTC | #3
Thank you Frode and Martin. I applied this change to main.

On 1/11/24 05:34, Frode Nordahl wrote:
> On Thu, Jan 11, 2024 at 9:49 AM Martin Kalcok
> <martin.kalcok@canonical.com> wrote:
>>
>> 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 <martin.kalcok@canonical.com>
> 
> LGTM, thanks!
> 
> Reviewed-by: Frode Nordahl <frode.nordahl@canonical.com>
>
diff mbox series

Patch

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>