[Neutron] Add TARGET_ENABLE_OVN_AGENT variable to enable OVN agent

The new flag ``TARGET_ENABLE_OVN_AGENT`` will be disabled by default.
If enabled:
* The OVN agent will be enabled, regardless of not being configured.
* The OVN Metadata agent will be disabled, regardless of being
  configured.

This variable will be used, initially, in the grenade jobs. It will
be used to test the migration from the OVN Metadata agent to the
OVN agent.

This variable will be removed in 2026.2, along with the OVN Metadata
agent, that is set as deprecated and marked for removal.

Related-Bug: #2112313
Signed-off-by: Rodolfo Alonso Hernandez <ralonsoh@redhat.com>
Change-Id: I8f91e1cb8543da489f495b8cf5196e606a0f5eea
This commit is contained in:
Rodolfo Alonso Hernandez
2025-07-16 11:38:12 +00:00
committed by Rodolfo Alonso
parent f61d747518
commit 9a0db4f499

View File

@@ -99,6 +99,13 @@ OVN_META_DATA_HOST=${OVN_META_DATA_HOST:-$(ipv6_unquote $SERVICE_HOST)}
# The OVN agent is configured, by default, with the "metadata" extension.
OVN_AGENT_CONF=$NEUTRON_CONF_DIR/plugins/ml2/ovn_agent.ini
OVN_AGENT_EXTENSIONS=${OVN_AGENT_EXTENSIONS:-metadata}
# The variable TARGET_ENABLE_OVN_AGENT, if True, overrides the OVN Metadata
# agent service (q-ovn-metadata-agent neutron-ovn-metadata-agent) and the OVN
# agent service (q-ovn-agent neutron-ovn-agent) configuration, always disabling
# the first one (OVN Metadata agent) and enabling the second (OVN agent).
# This variable will be removed in 2026.2, along with the OVN Metadata agent
# removal.
TARGET_ENABLE_OVN_AGENT=$(trueorfalse False TARGET_ENABLE_OVN_AGENT)
# If True (default) the node will be considered a gateway node.
ENABLE_CHASSIS_AS_GW=$(trueorfalse True ENABLE_CHASSIS_AS_GW)
@@ -301,6 +308,21 @@ function create_public_bridge {
_configure_public_network_connectivity
}
function is_ovn_metadata_agent_enabled {
if is_service_enabled q-ovn-metadata-agent neutron-ovn-metadata-agent && [[ "$TARGET_ENABLE_OVN_AGENT" == "False" ]]; then
return 0
fi
return 1
}
function is_ovn_agent_enabled {
if is_service_enabled q-ovn-agent neutron-ovn-agent || [[ "$TARGET_ENABLE_OVN_AGENT" == "True" ]]; then
enable_service q-ovn-agent
return 0
fi
return 1
}
# OVN compilation functions
# -------------------------
@@ -498,9 +520,9 @@ function configure_ovn_plugin {
inicomment /$Q_PLUGIN_CONF_FILE network_log local_output_log_base="$Q_LOG_DRIVER_LOG_BASE"
fi
if is_service_enabled q-ovn-metadata-agent neutron-ovn-metadata-agent; then
if is_ovn_metadata_agent_enabled; then
populate_ml2_config /$Q_PLUGIN_CONF_FILE ovn ovn_metadata_enabled=True
elif is_service_enabled q-ovn-agent neutron-ovn-agent && [[ "$OVN_AGENT_EXTENSIONS" =~ 'metadata' ]]; then
elif is_ovn_agent_enabled && [[ "$OVN_AGENT_EXTENSIONS" =~ 'metadata' ]]; then
populate_ml2_config /$Q_PLUGIN_CONF_FILE ovn ovn_metadata_enabled=True
else
populate_ml2_config /$Q_PLUGIN_CONF_FILE ovn ovn_metadata_enabled=False
@@ -521,9 +543,9 @@ function configure_ovn_plugin {
fi
if is_service_enabled n-api-meta ; then
if is_service_enabled q-ovn-metadata-agent neutron-ovn-metadata-agent; then
if is_ovn_metadata_agent_enabled; then
iniset $NOVA_CONF neutron service_metadata_proxy True
elif is_service_enabled q-ovn-agent neutron-ovn-agent && [[ "$OVN_AGENT_EXTENSIONS" =~ 'metadata' ]]; then
elif is_ovn_agent_enabled && [[ "$OVN_AGENT_EXTENSIONS" =~ 'metadata' ]]; then
iniset $NOVA_CONF neutron service_metadata_proxy True
fi
fi
@@ -558,10 +580,10 @@ function configure_ovn {
# Metadata
local sample_file=""
local config_file=""
if is_service_enabled q-ovn-agent neutron-ovn-agent && [[ "$OVN_AGENT_EXTENSIONS" =~ 'metadata' ]] && is_service_enabled ovn-controller; then
if is_ovn_agent_enabled && [[ "$OVN_AGENT_EXTENSIONS" =~ 'metadata' ]] && is_service_enabled ovn-controller; then
sample_file=$NEUTRON_DIR/etc/neutron/plugins/ml2/ovn_agent.ini.sample
config_file=$OVN_AGENT_CONF
elif is_service_enabled q-ovn-metadata-agent neutron-ovn-metadata-agent && is_service_enabled ovn-controller; then
elif is_ovn_metadata_agent_enabled && is_service_enabled ovn-controller; then
sample_file=$NEUTRON_DIR/etc/neutron_ovn_metadata_agent.ini.sample
config_file=$OVN_META_CONF
fi
@@ -758,13 +780,13 @@ function start_ovn {
fi
fi
if is_service_enabled q-ovn-metadata-agent neutron-ovn-metadata-agent; then
if is_ovn_metadata_agent_enabled; then
run_process q-ovn-metadata-agent "$NEUTRON_OVN_BIN_DIR/$NEUTRON_OVN_METADATA_BINARY --config-file $OVN_META_CONF"
# Format logging
setup_logging $OVN_META_CONF
fi
if is_service_enabled q-ovn-agent neutron-ovn-agent; then
if is_ovn_agent_enabled; then
run_process q-ovn-agent "$NEUTRON_OVN_BIN_DIR/$NEUTRON_OVN_AGENT_BINARY --config-file $OVN_AGENT_CONF"
# Format logging
setup_logging $OVN_AGENT_CONF
@@ -786,13 +808,17 @@ function _stop_process {
}
function stop_ovn {
# NOTE(ralonsoh): this check doesn't use "is_ovn_metadata_agent_enabled",
# instead it relies only in the configured services, disregarding the
# flag "TARGET_ENABLE_OVN_AGENT". It is needed to force the OVN Metadata
# agent stop in case the flag "TARGET_ENABLE_OVN_AGENT" is set.
if is_service_enabled q-ovn-metadata-agent neutron-ovn-metadata-agent; then
# pkill takes care not to kill itself, but it may kill its parent
# sudo unless we use the "ps | grep [f]oo" trick
sudo pkill -9 -f "[h]aproxy" || :
_stop_process "devstack@q-ovn-metadata-agent.service"
fi
if is_service_enabled q-ovn-agent neutron-ovn-agent; then
if is_ovn_agent_enabled; then
# pkill takes care not to kill itself, but it may kill its parent
# sudo unless we use the "ps | grep [f]oo" trick
sudo pkill -9 -f "[h]aproxy" || :