Add option for extra kernel modules in neutron role
Closes-Bug: #2036741 Change-Id: Ib448d04e43dff78e344064161beadae917c41206
This commit is contained in:
parent
59ab6bf049
commit
7186f960d9
@ -712,6 +712,13 @@ neutron_bootstrap_services: "{{ neutron_subprojects | selectattr('enabled') | ma
|
|||||||
neutron_enable_rolling_upgrade: "yes"
|
neutron_enable_rolling_upgrade: "yes"
|
||||||
neutron_rolling_upgrade_services: "{{ neutron_subprojects | selectattr('enabled') | map(attribute='name') | list }}"
|
neutron_rolling_upgrade_services: "{{ neutron_subprojects | selectattr('enabled') | map(attribute='name') | list }}"
|
||||||
|
|
||||||
|
####################
|
||||||
|
# Neutron modules
|
||||||
|
####################
|
||||||
|
neutron_modules_default:
|
||||||
|
- name: 'ip6_tables'
|
||||||
|
neutron_modules_extra: []
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Service Plugins
|
# Service Plugins
|
||||||
####################
|
####################
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
---
|
---
|
||||||
- name: Load and persist ip6_tables module
|
- name: Load and persist kernel modules
|
||||||
include_role:
|
include_role:
|
||||||
name: module-load
|
name: module-load
|
||||||
vars:
|
vars:
|
||||||
modules:
|
modules: "{{ neutron_modules_default + neutron_modules_extra }}"
|
||||||
- {'name': ip6_tables}
|
|
||||||
when: >-
|
when: >-
|
||||||
neutron_services |
|
neutron_services |
|
||||||
select_services_enabled_and_mapped_to_host |
|
select_services_enabled_and_mapped_to_host |
|
||||||
|
@ -214,3 +214,25 @@ authentication in external systems (e.g. in ``networking-generic-switch`` or
|
|||||||
|
|
||||||
You can set ``neutron_ssh_key`` variable in ``passwords.yml`` to control the
|
You can set ``neutron_ssh_key`` variable in ``passwords.yml`` to control the
|
||||||
used key.
|
used key.
|
||||||
|
|
||||||
|
Custom Kernel Module Configuration for Neutron
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Neutron may require specific kernel modules for certain functionalities.
|
||||||
|
While there are predefined default modules in the Ansible role, users have
|
||||||
|
the flexibility to add custom modules as needed.
|
||||||
|
|
||||||
|
To add custom kernel modules for Neutron, modify the configuration in
|
||||||
|
``/etc/kolla/globals.yml``:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
neutron_modules_extra:
|
||||||
|
- name: 'nf_conntrack_tftp'
|
||||||
|
params: 'hashsize=4096'
|
||||||
|
|
||||||
|
In this example:
|
||||||
|
|
||||||
|
- `neutron_modules_extra`: Allows users to specify additional modules and
|
||||||
|
their associated parameters. The given configuration adjusts the
|
||||||
|
`hashsize` parameter for the `nf_conntrack_tftp` module.
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Added capability to specify custom kernel modules for Neutron:
|
||||||
|
`neutron_modules_default`: Lists default modules.
|
||||||
|
`neutron_modules_extra`: For custom modules and parameters.
|
@ -198,3 +198,7 @@ enable_venus: "yes"
|
|||||||
{% if groups['all'] | length == 1 %}
|
{% if groups['all'] | length == 1 %}
|
||||||
keepalived_track_script_enabled: "no"
|
keepalived_track_script_enabled: "no"
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
neutron_modules_extra:
|
||||||
|
- name: 'nf_conntrack_tftp'
|
||||||
|
- name: 'nf_nat_tftp'
|
||||||
|
@ -209,6 +209,25 @@ function unset_cirros_image_q35_machine_type {
|
|||||||
openstack image unset --property hw_machine_type cirros
|
openstack image unset --property hw_machine_type cirros
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function test_neutron_modules {
|
||||||
|
# Exit the function if scenario is "ovn" or if there's an upgrade
|
||||||
|
# as inly concerns ml2/ovs
|
||||||
|
if [[ $SCENARIO == "ovn" ]] || [[ $HAS_UPGRADE == "yes" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local modules
|
||||||
|
modules=( $(sed -n '/neutron_modules_extra:/,/^[^ ]/p' /etc/kolla/globals.yml | grep -oP '^ - name: \K[^ ]+' | tr -d "'") )
|
||||||
|
for module in "${modules[@]}"; do
|
||||||
|
if ! grep -q "^${module} " /proc/modules; then
|
||||||
|
echo "Error: Module $module is not loaded."
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Module $module is loaded."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
function test_ssh {
|
function test_ssh {
|
||||||
local instance_name=$1
|
local instance_name=$1
|
||||||
local fip_addr=$2
|
local fip_addr=$2
|
||||||
@ -354,6 +373,7 @@ function test_openstack_logged {
|
|||||||
. /etc/kolla/admin-openrc.sh
|
. /etc/kolla/admin-openrc.sh
|
||||||
. ~/openstackclient-venv/bin/activate
|
. ~/openstackclient-venv/bin/activate
|
||||||
test_smoke
|
test_smoke
|
||||||
|
test_neutron_modules
|
||||||
test_instance_boot
|
test_instance_boot
|
||||||
|
|
||||||
# Check for x86_64 architecture to run q35 tests
|
# Check for x86_64 architecture to run q35 tests
|
||||||
|
Loading…
Reference in New Issue
Block a user