Merge "Allow to enable atop"
diff --git a/.zuul.yaml b/.zuul.yaml
index aec7113..7d72ab1 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -311,6 +311,36 @@
- compute1
- compute2
+- nodeset:
+ name: devstack-two-node-debian-bookworm
+ nodes:
+ - name: controller
+ label: debian-bookworm
+ - name: compute1
+ label: debian-bookworm
+ groups:
+ # Node where tests are executed and test results collected
+ - name: tempest
+ nodes:
+ - controller
+ # Nodes running the compute service
+ - name: compute
+ nodes:
+ - controller
+ - compute1
+ # Nodes that are not the controller
+ - name: subnode
+ nodes:
+ - compute1
+ # Switch node for multinode networking setup
+ - name: switch
+ nodes:
+ - controller
+ # Peer nodes for multinode networking setup
+ - name: peers
+ nodes:
+ - compute1
+
- job:
name: devstack-base
parent: openstack-multinode-fips
diff --git a/doc/source/plugin-registry.rst b/doc/source/plugin-registry.rst
index 2984a5c..f7873c9 100644
--- a/doc/source/plugin-registry.rst
+++ b/doc/source/plugin-registry.rst
@@ -38,6 +38,7 @@
openstack/devstack-plugin-kafka `https://opendev.org/openstack/devstack-plugin-kafka <https://opendev.org/openstack/devstack-plugin-kafka>`__
openstack/devstack-plugin-nfs `https://opendev.org/openstack/devstack-plugin-nfs <https://opendev.org/openstack/devstack-plugin-nfs>`__
openstack/devstack-plugin-open-cas `https://opendev.org/openstack/devstack-plugin-open-cas <https://opendev.org/openstack/devstack-plugin-open-cas>`__
+openstack/devstack-plugin-prometheus `https://opendev.org/openstack/devstack-plugin-prometheus <https://opendev.org/openstack/devstack-plugin-prometheus>`__
openstack/freezer `https://opendev.org/openstack/freezer <https://opendev.org/openstack/freezer>`__
openstack/freezer-api `https://opendev.org/openstack/freezer-api <https://opendev.org/openstack/freezer-api>`__
openstack/freezer-tempest-plugin `https://opendev.org/openstack/freezer-tempest-plugin <https://opendev.org/openstack/freezer-tempest-plugin>`__
@@ -169,7 +170,6 @@
x/scalpels `https://opendev.org/x/scalpels <https://opendev.org/x/scalpels>`__
x/slogging `https://opendev.org/x/slogging <https://opendev.org/x/slogging>`__
x/stackube `https://opendev.org/x/stackube <https://opendev.org/x/stackube>`__
-x/tap-as-a-service-dashboard `https://opendev.org/x/tap-as-a-service-dashboard <https://opendev.org/x/tap-as-a-service-dashboard>`__
x/tatu `https://opendev.org/x/tatu <https://opendev.org/x/tatu>`__
x/trio2o `https://opendev.org/x/trio2o <https://opendev.org/x/trio2o>`__
x/valet `https://opendev.org/x/valet <https://opendev.org/x/valet>`__
diff --git a/lib/apache b/lib/apache
index 1c034d3..fc174f3 100644
--- a/lib/apache
+++ b/lib/apache
@@ -313,9 +313,7 @@
# For services using chunked encoding, the only services known to use this
# currently are Glance and Swift, we need to use an http proxy instead of
# mod_proxy_uwsgi because the chunked encoding gets dropped. See:
-# https://github.com/unbit/uwsgi/issues/1540 You can workaround this on python2
-# but that involves having apache buffer the request before sending it to
-# uwsgi.
+# https://github.com/unbit/uwsgi/issues/1540.
function write_local_uwsgi_http_config {
local conf=$1
local wsgi=$2
diff --git a/lib/glance b/lib/glance
index 9655cc4..4e51910 100644
--- a/lib/glance
+++ b/lib/glance
@@ -133,7 +133,7 @@
GLANCE_SERVICE_PORT_INT=${GLANCE_SERVICE_PORT_INT:-19292}
GLANCE_HOSTPORT=${GLANCE_HOSTPORT:-$GLANCE_SERVICE_HOST:$GLANCE_SERVICE_PORT}
GLANCE_SERVICE_PROTOCOL=${GLANCE_SERVICE_PROTOCOL:-$SERVICE_PROTOCOL}
-GLANCE_UWSGI=$GLANCE_BIN_DIR/glance-wsgi-api
+GLANCE_UWSGI=glance.wsgi.api:application
GLANCE_UWSGI_CONF=$GLANCE_CONF_DIR/glance-uwsgi.ini
# Glance default limit for Devstack
@@ -472,12 +472,11 @@
fi
if [[ "$GLANCE_STANDALONE" == False ]]; then
- write_local_uwsgi_http_config "$GLANCE_UWSGI_CONF" "$GLANCE_UWSGI" "/image"
+ write_local_uwsgi_http_config "$GLANCE_UWSGI_CONF" "$GLANCE_UWSGI" "/image" "glance-api"
# Grab our uwsgi listen address and use that to fill out our
# worker_self_reference_url config
iniset $GLANCE_API_CONF DEFAULT worker_self_reference_url \
- $(awk '-F= ' '/^http-socket/ { print "http://"$2}' \
- $GLANCE_UWSGI_CONF)
+ $(awk '-F= ' '/^http-socket/ { print "http://"$2}' $GLANCE_UWSGI_CONF)
else
write_local_proxy_http_config glance "http://$GLANCE_SERVICE_HOST:$GLANCE_SERVICE_PORT_INT" "/image"
iniset $GLANCE_API_CONF DEFAULT bind_host $GLANCE_SERVICE_LISTEN_ADDRESS
diff --git a/lib/neutron_plugins/ovn_agent b/lib/neutron_plugins/ovn_agent
index 01dc1ed..71b5e33 100644
--- a/lib/neutron_plugins/ovn_agent
+++ b/lib/neutron_plugins/ovn_agent
@@ -161,8 +161,10 @@
# Defaults Overwrite
# ------------------
-
-Q_ML2_PLUGIN_MECHANISM_DRIVERS=${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn,logger}
+# NOTE(ralonsoh): during the eventlet removal, the "logger" mech
+# driver has been removed from this list. Re-add it once the removal
+# is finished or the mech driver does not call monkey_patch().
+Q_ML2_PLUGIN_MECHANISM_DRIVERS=${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-ovn}
Q_ML2_PLUGIN_TYPE_DRIVERS=${Q_ML2_PLUGIN_TYPE_DRIVERS:-local,flat,vlan,geneve}
Q_ML2_TENANT_NETWORK_TYPE=${Q_ML2_TENANT_NETWORK_TYPE:-"geneve"}
Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS=${Q_ML2_PLUGIN_GENEVE_TYPE_OPTIONS:-"vni_ranges=1:65536"}
diff --git a/lib/nova b/lib/nova
index 95ed4d0..810a3d9 100644
--- a/lib/nova
+++ b/lib/nova
@@ -127,6 +127,9 @@
# ``NOVA_VNC_ENABLED`` can be used to forcibly enable VNC configuration.
# In multi-node setups allows compute hosts to not run ``n-novnc``.
NOVA_VNC_ENABLED=$(trueorfalse False NOVA_VNC_ENABLED)
+# same as ``NOVA_VNC_ENABLED`` but for Spice and serial console respectively.
+NOVA_SPICE_ENABLED=$(trueorfalse False NOVA_SPICE_ENABLED)
+NOVA_SERIAL_ENABLED=$(trueorfalse False NOVA_SERIAL_ENABLED)
# Get hypervisor configuration
# ----------------------------
@@ -464,7 +467,7 @@
# only setup database connections and cache backend if there are services
# that require them running on the host. The ensures that n-cpu doesn't
# leak a need to use the db in a multinode scenario.
- if is_service_enabled n-api n-cond n-sched; then
+ if is_service_enabled n-api n-cond n-sched n-spice n-novnc n-sproxy; then
# If we're in multi-tier cells mode, we want our control services pointing
# at cell0 instead of cell1 to ensure isolation. If not, we point everything
# at the main database like normal.
@@ -716,7 +719,7 @@
iniset $NOVA_CPU_CONF vnc enabled false
fi
- if is_service_enabled n-spice; then
+ if is_service_enabled n-spice || [ "$NOVA_SPICE_ENABLED" != False ]; then
# Address on which instance spiceservers will listen on compute hosts.
# For multi-host, this should be the management ip of the compute host.
SPICESERVER_PROXYCLIENT_ADDRESS=${SPICESERVER_PROXYCLIENT_ADDRESS:-$default_proxyclient_addr}
@@ -726,7 +729,7 @@
iniset $NOVA_CPU_CONF spice server_proxyclient_address "$SPICESERVER_PROXYCLIENT_ADDRESS"
fi
- if is_service_enabled n-sproxy; then
+ if is_service_enabled n-sproxy || [ "$NOVA_SERIAL_ENABLED" != False ]; then
iniset $NOVA_CPU_CONF serial_console enabled True
iniset $NOVA_CPU_CONF serial_console base_url "ws://$SERVICE_HOST:$((6082 + offset))/"
fi
diff --git a/lib/tempest b/lib/tempest
index b8f9915..29b01f1 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -514,9 +514,15 @@
iniset $TEMPEST_CONFIG compute-feature-enabled volume_multiattach True
fi
- if is_service_enabled n-novnc; then
+ if is_service_enabled n-novnc || [ "$NOVA_VNC_ENABLED" != False ]; then
iniset $TEMPEST_CONFIG compute-feature-enabled vnc_console True
fi
+ if is_service_enabled n-spice || [ "$NOVA_SPICE_ENABLED" != False ]; then
+ iniset $TEMPEST_CONFIG compute-feature-enabled spice_console True
+ fi
+ if is_service_enabled n-sproxy || [ "$NOVA_SERIAL_ENABLED" != False ]; then
+ iniset $TEMPEST_CONFIG compute-feature-enabled serial_console True
+ fi
# Network
iniset $TEMPEST_CONFIG network project_networks_reachable false
diff --git a/stack.sh b/stack.sh
index c2a4b5d..04b5f4c 100755
--- a/stack.sh
+++ b/stack.sh
@@ -1314,10 +1314,7 @@
start_ovn_services
fi
-if is_service_enabled neutron-api; then
- echo_summary "Starting Neutron"
- start_neutron_api
-elif is_service_enabled q-svc; then
+if is_service_enabled q-svc neutron-api; then
echo_summary "Starting Neutron"
configure_neutron_after_post_config
start_neutron_service_and_check
@@ -1334,7 +1331,7 @@
start_neutron
fi
# Once neutron agents are started setup initial network elements
-if is_service_enabled q-svc && [[ "$NEUTRON_CREATE_INITIAL_NETWORKS" == "True" ]]; then
+if is_service_enabled q-svc neutron-api && [[ "$NEUTRON_CREATE_INITIAL_NETWORKS" == "True" ]]; then
echo_summary "Creating initial neutron network elements"
# Here's where plugins can wire up their own networks instead
# of the code in lib/neutron_plugins/services/l3