[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:
committed by
Rodolfo Alonso
parent
f61d747518
commit
9a0db4f499
@@ -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" || :
|
||||
|
||||
Reference in New Issue
Block a user