From b187e038d70e511d74897587b84a59d3a06e6788 Mon Sep 17 00:00:00 2001 From: Martin Kalcok Date: Thu, 11 Jan 2024 09:48:49 +0100 Subject: [PATCH] ovn-ctl: Add option to skip schema conversion 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 Reviewed-by: Frode Nordahl Signed-off-by: Mark Michelson --- 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 876565c801..50d5883586 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 01f4aa26bd..3bab055e42 100644 --- a/utilities/ovn-ctl.8.xml +++ b/utilities/ovn-ctl.8.xml @@ -156,6 +156,7 @@

--db-ic-sb-cluster-remote-addr=IP ADDRESS

--db-ic-sb-cluster-remote-port=PORT NUMBER

--db-ic-sb-cluster-remote-proto=PROTO (tcp/ssl)

+

--db-cluster-schema-upgrade=yes|no

Probe interval options

--db-nb-probe-interval-to-active=Time in milliseconds

@@ -324,4 +325,24 @@ start_northd

+

Avoiding automatic clustered OVN database schema upgrade

+

+ If you desire more control over clustered DB schema upgrade, you can + opt-out of automatic on-start upgrade attempts with + --no-db-cluster-schema-upgrade. +

+

Start OVN NB and SB clustered databases on host with IP x.x.x.x without schema upgrade

+

+ + # 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 + +

+

Trigger clustered DB schema upgrade manually

+

+ + # 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 + +