Skip to content

Commit

Permalink
ovn-ctl: Add option to skip schema conversion
Browse files Browse the repository at this point in the history
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>
Reviewed-by: Frode Nordahl <frode.nordahl@canonical.com>
Signed-off-by: Mark Michelson <mmichels@redhat.com>
  • Loading branch information
mkalcok authored and putnopvut committed Jan 11, 2024
1 parent 50f2262 commit b187e03
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
7 changes: 6 additions & 1 deletion utilities/ovn-ctl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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 () {
Expand Down Expand Up @@ -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)
Expand Down
21 changes: 21 additions & 0 deletions utilities/ovn-ctl.8.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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>

0 comments on commit b187e03

Please sign in to comment.