diff options
| author | Takashi Kajinami <kajinamit@oss.nttdata.com> | 2025-09-25 22:26:01 +0900 |
|---|---|---|
| committer | Michal Nasiadka <mnasiadka@gmail.com> | 2025-10-24 19:07:20 +0000 |
| commit | fd6d740106965b6518fd2b6f3d1ab9e84221966d (patch) | |
| tree | 7f62288f4fac43604c56fd3dc57d5acd02c809f0 | |
| parent | 2630a33137dac53be2604f3a5cb059ffa65af907 (diff) | |
| download | kolla-ansible-fd6d740106965b6518fd2b6f3d1ab9e84221966d.tar.gz kolla-ansible-fd6d740106965b6518fd2b6f3d1ab9e84221966d.zip | |
neutron: Remove support for linux bridge mechanism driver
... because it was removed from neutron during 2025.1 cycle[1].
[1] https://review.opendev.org/c/openstack/neutron/+/927216
Depends-On: https://review.opendev.org/c/openstack/kolla/+/962279
Change-Id: I79d896d7dea299641bc5a7f0f2a0735c9719a16d
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
| -rw-r--r-- | ansible/group_vars/all/neutron.yml | 4 | ||||
| -rw-r--r-- | ansible/group_vars/all/openvswitch.yml | 2 | ||||
| -rw-r--r-- | ansible/roles/manila/templates/manila-share.conf.j2 | 2 | ||||
| -rw-r--r-- | ansible/roles/neutron/defaults/main.yml | 47 | ||||
| -rw-r--r-- | ansible/roles/neutron/handlers/main.yml | 16 | ||||
| -rw-r--r-- | ansible/roles/neutron/tasks/config-host.yml | 2 | ||||
| -rw-r--r-- | ansible/roles/neutron/tasks/config.yml | 16 | ||||
| -rw-r--r-- | ansible/roles/neutron/templates/linuxbridge_agent.ini.j2 | 24 | ||||
| -rw-r--r-- | ansible/roles/neutron/templates/neutron-linuxbridge-agent.json.j2 | 44 | ||||
| -rw-r--r-- | ansible/roles/neutron/templates/neutron.conf.j2 | 2 | ||||
| -rw-r--r-- | etc/kolla/globals.yml | 6 | ||||
| -rw-r--r-- | releasenotes/notes/remove-neutron-linuxbridge-b1a2457e848709f7.yaml | 5 |
12 files changed, 10 insertions, 160 deletions
diff --git a/ansible/group_vars/all/neutron.yml b/ansible/group_vars/all/neutron.yml index 938b1836e..2c3b9ca94 100644 --- a/ansible/group_vars/all/neutron.yml +++ b/ansible/group_vars/all/neutron.yml @@ -22,9 +22,7 @@ neutron_enable_ovn_agent: "no" neutron_keystone_user: "neutron" -# Valid options are [ openvswitch, ovn, linuxbridge ] -# Do note linuxbridge is *EXPERIMENTAL* in Neutron since Zed and it requires extra tweaks to config to be usable. -# For details, see: https://docs.openstack.org/neutron/latest/admin/config-experimental-framework.html +# Valid options are [ openvswitch, ovn ] neutron_plugin_agent: "openvswitch" # Valid options are [ internal, infoblox ] diff --git a/ansible/group_vars/all/openvswitch.yml b/ansible/group_vars/all/openvswitch.yml index 68a813b43..731f99d00 100644 --- a/ansible/group_vars/all/openvswitch.yml +++ b/ansible/group_vars/all/openvswitch.yml @@ -1,5 +1,5 @@ --- -enable_openvswitch: "{{ enable_neutron | bool and neutron_plugin_agent != 'linuxbridge' }}" +enable_openvswitch: "{{ enable_neutron | bool }}" enable_ovs_dpdk: "no" ovs_datapath: "{{ 'netdev' if enable_ovs_dpdk | bool else 'system' }}" diff --git a/ansible/roles/manila/templates/manila-share.conf.j2 b/ansible/roles/manila/templates/manila-share.conf.j2 index ee1deb341..cade41e82 100644 --- a/ansible/roles/manila/templates/manila-share.conf.j2 +++ b/ansible/roles/manila/templates/manila-share.conf.j2 @@ -74,8 +74,6 @@ memcached_servers = {% for host in groups['memcached'] %}{{ 'api' | kolla_addres share_driver = manila.share.drivers.generic.GenericShareDriver {% if neutron_plugin_agent == "openvswitch" %} interface_driver = manila.network.linux.interface.OVSInterfaceDriver -{% elif neutron_plugin_agent == "linuxbridge" %} -interface_driver = manila.network.linux.interface.BridgeInterfaceDriver {% endif %} driver_handles_share_servers = true diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml index d36dd4edb..731672997 100644 --- a/ansible/roles/neutron/defaults/main.yml +++ b/ansible/roles/neutron/defaults/main.yml @@ -79,22 +79,6 @@ neutron_services: volumes: "{{ neutron_openvswitch_agent_default_volumes + neutron_openvswitch_agent_extra_volumes }}" dimensions: "{{ neutron_openvswitch_agent_dimensions }}" healthcheck: "{{ neutron_openvswitch_agent_healthcheck }}" - neutron-linuxbridge-agent: - container_name: "neutron_linuxbridge_agent" - image: "{{ neutron_linuxbridge_agent_image_full }}" - privileged: True - enabled: "{{ neutron_plugin_agent == 'linuxbridge' }}" - host_in_groups: >- - {{ - inventory_hostname in groups['compute'] - or (enable_manila | bool and inventory_hostname in groups['manila-share']) - or inventory_hostname in groups['neutron-dhcp-agent'] - or inventory_hostname in groups['neutron-l3-agent'] - or inventory_hostname in groups['neutron-metadata-agent'] - }} - volumes: "{{ neutron_linuxbridge_agent_default_volumes + neutron_linuxbridge_agent_extra_volumes }}" - dimensions: "{{ neutron_linuxbridge_agent_dimensions }}" - healthcheck: "{{ neutron_linuxbridge_agent_healthcheck }}" neutron-dhcp-agent: cgroupns_mode: "{{ 'host' if neutron_agents_wrappers | bool else 'private' }}" container_name: "neutron_dhcp_agent" @@ -248,8 +232,6 @@ neutron_config_validation: config: "/etc/neutron/l3_agent.ini" - generator: "/neutron/etc/oslo-config-generator/dhcp_agent.ini" config: "/etc/neutron/dhcp_agent.ini" - - generator: "/neutron/etc/oslo-config-generator/linuxbridge_agent.ini" - config: "/etc/neutron/plugins/ml2/linuxbridge_agent.ini" #################### # Database @@ -301,10 +283,6 @@ neutron_eswitchd_image: "{{ docker_image_url }}neutron-mlnx-agent" neutron_eswitchd_tag: "{{ neutron_mlnx_agent_tag }}" neutron_eswitchd_image_full: "{{ neutron_eswitchd_image }}:{{ neutron_eswitchd_tag }}" -neutron_linuxbridge_agent_image: "{{ docker_image_url }}neutron-linuxbridge-agent" -neutron_linuxbridge_agent_tag: "{{ neutron_tag }}" -neutron_linuxbridge_agent_image_full: "{{ neutron_linuxbridge_agent_image }}:{{ neutron_linuxbridge_agent_tag }}" - neutron_metadata_agent_image: "{{ docker_image_url }}neutron-metadata-agent" neutron_metadata_agent_tag: "{{ neutron_tag }}" neutron_metadata_agent_image_full: "{{ neutron_metadata_agent_image }}:{{ neutron_metadata_agent_tag }}" @@ -360,7 +338,6 @@ neutron_l3_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_sriov_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_mlnx_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_eswitchd_dimensions: "{{ neutron_agent_dimensions }}" -neutron_linuxbridge_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_metadata_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_ovn_metadata_agent_dimensions: "{{ neutron_agent_dimensions }}" neutron_openvswitch_agent_dimensions: "{{ neutron_agent_dimensions }}" @@ -400,19 +377,6 @@ neutron_l3_agent_healthcheck: test: "{% if neutron_l3_agent_enable_healthchecks | bool %}{{ neutron_l3_agent_healthcheck_test }}{% else %}NONE{% endif %}" timeout: "{{ neutron_l3_agent_healthcheck_timeout }}" -neutron_linuxbridge_agent_enable_healthchecks: "{{ enable_container_healthchecks }}" -neutron_linuxbridge_agent_healthcheck_interval: "{{ default_container_healthcheck_interval }}" -neutron_linuxbridge_agent_healthcheck_retries: "{{ default_container_healthcheck_retries }}" -neutron_linuxbridge_agent_healthcheck_start_period: "{{ default_container_healthcheck_start_period }}" -neutron_linuxbridge_agent_healthcheck_test: ["CMD-SHELL", "healthcheck_port neutron-linuxbridge-agent {{ om_rpc_port }}"] -neutron_linuxbridge_agent_healthcheck_timeout: "{{ default_container_healthcheck_timeout }}" -neutron_linuxbridge_agent_healthcheck: - interval: "{{ neutron_linuxbridge_agent_healthcheck_interval }}" - retries: "{{ neutron_linuxbridge_agent_healthcheck_retries }}" - start_period: "{{ neutron_linuxbridge_agent_healthcheck_start_period }}" - test: "{% if neutron_linuxbridge_agent_enable_healthchecks | bool %}{{ neutron_linuxbridge_agent_healthcheck_test }}{% else %}NONE{% endif %}" - timeout: "{{ neutron_linuxbridge_agent_healthcheck_timeout }}" - neutron_metadata_agent_enable_healthchecks: "no" neutron_metadata_agent_healthcheck_interval: "{{ default_container_healthcheck_interval }}" neutron_metadata_agent_healthcheck_retries: "{{ default_container_healthcheck_retries }}" @@ -603,14 +567,6 @@ neutron_eswitchd_default_volumes: - "kolla_logs:/var/log/kolla/" - "{{ '/dev/shm:/dev/shm' }}" - "{{ kolla_dev_repos_directory ~ '/neutron:/dev-mode/neutron' if neutron_dev_mode | bool else '' }}" -neutron_linuxbridge_agent_default_volumes: - - "{{ node_config_directory }}/neutron-linuxbridge-agent/:{{ container_config_directory }}/:ro" - - "/etc/localtime:/etc/localtime:ro" - - "{{ '/etc/timezone:/etc/timezone:ro' if ansible_facts.os_family == 'Debian' else '' }}" - - "/lib/modules:/lib/modules:ro" - - "kolla_logs:/var/log/kolla/" - - "{{ '/dev/shm:/dev/shm' }}" - - "{{ kolla_dev_repos_directory ~ '/neutron:/dev-mode/neutron' if neutron_dev_mode | bool else '' }}" neutron_metadata_agent_default_volumes: - "{{ node_config_directory }}/neutron-metadata-agent/:{{ container_config_directory }}/:ro" - "/etc/localtime:/etc/localtime:ro" @@ -700,7 +656,6 @@ neutron_l3_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_sriov_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_mlnx_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_eswitchd_extra_volumes: "{{ neutron_extra_volumes }}" -neutron_linuxbridge_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_metadata_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_ovn_metadata_agent_extra_volumes: "{{ neutron_extra_volumes }}" neutron_openvswitch_agent_extra_volumes: "{{ neutron_extra_volumes }}" @@ -763,8 +718,6 @@ neutron_subprojects: # Mechanism drivers #################### mechanism_drivers: - - name: "linuxbridge" - enabled: "{{ neutron_plugin_agent == 'linuxbridge' }}" - name: "openvswitch" enabled: "{{ neutron_plugin_agent == 'openvswitch' }}" - name: "mlnx_infiniband" diff --git a/ansible/roles/neutron/handlers/main.yml b/ansible/roles/neutron/handlers/main.yml index 068b83152..386e3a97d 100644 --- a/ansible/roles/neutron/handlers/main.yml +++ b/ansible/roles/neutron/handlers/main.yml @@ -91,22 +91,6 @@ healthcheck: "{{ service.healthcheck | default(omit) }}" with_sequence: "start=1 end={{ num_nova_fake_per_node }}" -- name: Restart neutron-linuxbridge-agent container - vars: - service_name: "neutron-linuxbridge-agent" - service: "{{ neutron_services[service_name] }}" - become: true - kolla_container: - action: "recreate_or_restart_container" - common_options: "{{ docker_common_options }}" - name: "{{ service.container_name }}" - image: "{{ service.image }}" - environment: "{{ service.environment | default(omit) }}" - volumes: "{{ service.volumes | reject('equalto', '') | list }}" - dimensions: "{{ service.dimensions }}" - privileged: "{{ service.privileged | default(False) }}" - healthcheck: "{{ service.healthcheck | default(omit) }}" - - name: Restart neutron-dhcp-agent container vars: service_name: "neutron-dhcp-agent" diff --git a/ansible/roles/neutron/tasks/config-host.yml b/ansible/roles/neutron/tasks/config-host.yml index a33919b12..8ad3f3d5a 100644 --- a/ansible/roles/neutron/tasks/config-host.yml +++ b/ansible/roles/neutron/tasks/config-host.yml @@ -8,7 +8,7 @@ neutron_services | select_services_enabled_and_mapped_to_host | list | - intersect(["neutron-l3-agent", "neutron-linuxbridge-agent", "neutron-openvswitch-agent"]) | + intersect(["neutron-l3-agent", "neutron-openvswitch-agent"]) | list | length > 0 diff --git a/ansible/roles/neutron/tasks/config.yml b/ansible/roles/neutron/tasks/config.yml index a8c22e006..1de5ca358 100644 --- a/ansible/roles/neutron/tasks/config.yml +++ b/ansible/roles/neutron/tasks/config.yml @@ -69,7 +69,6 @@ - "neutron-eswitchd" - "neutron-infoblox-ipam-agent" - "neutron-l3-agent" - - "neutron-linuxbridge-agent" - "neutron-metadata-agent" - "neutron-metering-agent" - "neutron-mlnx-agent" @@ -144,20 +143,6 @@ - item.key in services_need_ml2_conf_ini with_dict: "{{ neutron_services | select_services_enabled_and_mapped_to_host }}" -- name: Copying over linuxbridge_agent.ini - become: true - vars: - service_name: "neutron-linuxbridge-agent" - service: "{{ neutron_services[service_name] }}" - merge_configs: - sources: - - "{{ role_path }}/templates/linuxbridge_agent.ini.j2" - - "{{ node_custom_config }}/neutron/linuxbridge_agent.ini" - - "{{ node_custom_config }}/neutron/{{ inventory_hostname }}/linuxbridge_agent.ini" - dest: "{{ node_config_directory }}/{{ service_name }}/linuxbridge_agent.ini" - mode: "0660" - when: service | service_enabled_and_mapped_to_host - - name: Copying over openvswitch_agent.ini become: true vars: @@ -372,7 +357,6 @@ vars: service_name: "{{ item.0 }}" services_need_ml2_conf_ini: - - "neutron-linuxbridge-agent" - "neutron-openvswitch-agent" - "neutron-server" template: diff --git a/ansible/roles/neutron/templates/linuxbridge_agent.ini.j2 b/ansible/roles/neutron/templates/linuxbridge_agent.ini.j2 deleted file mode 100644 index 5b0ae990b..000000000 --- a/ansible/roles/neutron/templates/linuxbridge_agent.ini.j2 +++ /dev/null @@ -1,24 +0,0 @@ -[agent] -{% if neutron_agent_extensions %} -extensions = {{ neutron_agent_extensions|map(attribute='name')|join(',') }} -{% endif %} - -[linux_bridge] -{% if inventory_hostname in groups["network"] or (inventory_hostname in groups["compute"] and computes_need_external_bridge | bool ) %} -{# Format: physnet1:br1,physnet2:br2 #} -physical_interface_mappings = {{ neutron_physical_networks.split(',') | zip(neutron_external_interface.split(',')) | map('join', ':') | join(',') }} -{% endif %} - -[securitygroup] -firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver - -[vxlan] -l2_population = true -local_ip = {{ tunnel_interface_address }} - -{% if enable_neutron_sriov | bool %} -[FDB] -# Allows instances using sriov ports to communicate with instances that do not. -# See https://docs.openstack.org/neutron/latest/admin/config-sriov.html -shared_physical_device_mappings = {{ neutron_sriov_physnets }} -{% endif %} diff --git a/ansible/roles/neutron/templates/neutron-linuxbridge-agent.json.j2 b/ansible/roles/neutron/templates/neutron-linuxbridge-agent.json.j2 deleted file mode 100644 index 937abe37c..000000000 --- a/ansible/roles/neutron/templates/neutron-linuxbridge-agent.json.j2 +++ /dev/null @@ -1,44 +0,0 @@ -{ - "command": "neutron-linuxbridge-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/linuxbridge_agent.ini", - "config_files": [ - { - "source": "{{ container_config_directory }}/neutron.conf", - "dest": "/etc/neutron/neutron.conf", - "owner": "neutron", - "perm": "0600" - }, - {% if neutron_policy_file is defined %}{ - "source": "{{ container_config_directory }}/{{ neutron_policy_file }}", - "dest": "/etc/neutron/{{ neutron_policy_file }}", - "owner": "neutron", - "perm": "0600" - },{% endif %} -{% if check_extra_ml2_plugins is defined and check_extra_ml2_plugins.matched > 0 %}{% for plugin in check_extra_ml2_plugins.files %} - { - "source": "{{ container_config_directory }}/{{ plugin.path | basename }}", - "dest": "/etc/neutron/plugins/ml2/{{ plugin.path | basename }}", - "owner": "neutron", - "perm": "0600" - }, -{% endfor %}{% endif %} - { - "source": "{{ container_config_directory }}/linuxbridge_agent.ini", - "dest": "/etc/neutron/plugins/ml2/linuxbridge_agent.ini", - "owner": "neutron", - "perm": "0600" - }{% if kolla_copy_ca_into_containers | bool %}, - { - "source": "{{ container_config_directory }}/ca-certificates", - "dest": "/var/lib/kolla/share/ca-certificates", - "owner": "root", - "perm": "0600" - }{% endif %} - ], - "permissions": [ - { - "path": "/var/log/kolla/neutron", - "owner": "neutron:neutron", - "recurse": true - } - ] -} diff --git a/ansible/roles/neutron/templates/neutron.conf.j2 b/ansible/roles/neutron/templates/neutron.conf.j2 index 648ea97df..0c5323d7e 100644 --- a/ansible/roles/neutron/templates/neutron.conf.j2 +++ b/ansible/roles/neutron/templates/neutron.conf.j2 @@ -25,8 +25,6 @@ state_path = /var/lib/neutron/kolla {% if neutron_plugin_agent == "openvswitch" or (neutron_plugin_agent == "ovn" and neutron_ovn_dhcp_agent | bool) %} interface_driver = openvswitch -{% elif neutron_plugin_agent == "linuxbridge" %} -interface_driver = linuxbridge {% endif %} {% if enable_nova_fake | bool %} diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml index 9d4f00a0a..38aab5c60 100644 --- a/etc/kolla/globals.yml +++ b/etc/kolla/globals.yml @@ -160,9 +160,7 @@ workaround_ansible_issue_8743: yes # addresses for that reason. #neutron_external_interface: "eth1" -# Valid options are [ openvswitch, ovn, linuxbridge ] -# Do note linuxbridge is *EXPERIMENTAL* in Neutron since Zed and it requires extra tweaks to config to be usable. -# For details, see: https://docs.openstack.org/neutron/latest/admin/config-experimental-framework.html +# Valid options are [ openvswitch, ovn ] #neutron_plugin_agent: "openvswitch" # Valid options are [ internal, infoblox ] @@ -421,7 +419,7 @@ workaround_ansible_issue_8743: yes #enable_opensearch: "{{ enable_central_logging | bool or enable_osprofiler | bool or (enable_cloudkitty | bool and cloudkitty_storage_backend == 'opensearch') }}" #enable_opensearch_dashboards: "{{ enable_opensearch | bool }}" #enable_opensearch_dashboards_external: "{{ enable_opensearch_dashboards | bool }}" -#enable_openvswitch: "{{ enable_neutron | bool and neutron_plugin_agent != 'linuxbridge' }}" +#enable_openvswitch: "{{ enable_neutron }}" #enable_ovn: "{{ enable_neutron | bool and neutron_plugin_agent == 'ovn' }}" #enable_ovs_dpdk: "no" #enable_osprofiler: "no" diff --git a/releasenotes/notes/remove-neutron-linuxbridge-b1a2457e848709f7.yaml b/releasenotes/notes/remove-neutron-linuxbridge-b1a2457e848709f7.yaml new file mode 100644 index 000000000..f5625e782 --- /dev/null +++ b/releasenotes/notes/remove-neutron-linuxbridge-b1a2457e848709f7.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Support for Linux Bridge mechanism driver has been removed. The driver was + already removed from neutron. |
