diff --git a/defaults/main.yml b/defaults/main.yml index d7cba954..1f0bbe86 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -153,8 +153,6 @@ neutron_ironic_neutron_agent_ini_overrides: {} neutron_ironic_neutron_agent_init_overrides: {} neutron_l3_agent_ini_overrides: {} neutron_l3_agent_init_overrides: {} -neutron_linuxbridge_agent_ini_overrides: {} -neutron_linuxbridge_agent_init_overrides: {} neutron_metadata_agent_ini_overrides: {} neutron_metadata_agent_init_overrides: {} neutron_metering_agent_ini_overrides: {} diff --git a/doc/source/app-linuxbridge.rst b/doc/source/app-linuxbridge.rst deleted file mode 100644 index a96ae582..00000000 --- a/doc/source/app-linuxbridge.rst +++ /dev/null @@ -1,202 +0,0 @@ -============================= -Scenario - Using Linux Bridge -============================= - -Overview -~~~~~~~~ - -Operators can choose to utilize Linux Bridges instead of Open vSwitch for the -neutron ML2 agent. This document outlines how to set it up in your environment. - -.. warning:: - - LinuxBridge driver is considered as experimental in Neutron and is - discouraged for usage as of today. - - -Prerequisites -~~~~~~~~~~~~~ - -All compute nodes must have bridges configured: - -- ``br-mgmt`` - Bridge is used to wire LXC containers. Can be regular interface - for bare metal deployments -- ``br-vlan`` (optional - used for vlan networks). Can be regular interface. -- ``br-vxlan`` (optional - used for vxlan tenant networks). Can be regular - interface. -- ``br-storage`` (optional - used for certain storage devices). It's also - used to wire LXC containers. Can be regular interface for bare metal nodes. - -For more information see: -``_ - - -Configuring bridges (Linux Bridge) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The following is an example of how to configure a bridge (example: ``br-mgmt``) -with a Linux Bridge on Ubuntu 16.04 LTS: - -``/etc/network/interfaces`` - -.. code-block:: shell-session - - auto lo - iface lo inet loopback - - # Management network - auto eth0 - iface eth0 inet manual - - # VLAN network - auto eth1 - iface eth1 inet manual - - source /etc/network/interfaces.d/*.cfg - -``/etc/network/interfaces.d/br-mgmt.cfg`` - -.. code-block:: shell-session - - # OpenStack Management network bridge - auto br-mgmt - iface br-mgmt inet static - bridge_stp off - bridge_waitport 0 - bridge_fd 0 - bridge_ports eth0 - address MANAGEMENT_NETWORK_IP - netmask 255.255.255.0 - -One ``br-.cfg`` is required for each bridge. VLAN interfaces can be used -to back the ``br-`` bridges if there are limited physical adapters on the -system. - -OpenStack-Ansible user variables -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Specify provider network definitions in your -``/etc/openstack_deploy/openstack_user_config.yml`` that define -one or more Neutron provider bridges and related configuration: - -.. code-block:: yaml - - - network: - container_bridge: "br-provider" - container_type: "veth" - type: "vlan" - range: "101:200,301:400" - net_name: "physnet1" - network_interface: "bond1" - group_binds: - - neutron_linuxbridge_agent - - network: - container_bridge: "br-provider2" - container_type: "veth" - type: "vlan" - range: "203:203,467:500" - net_name: "physnet2" - network_interface: "bond2" - group_binds: - - neutron_linuxbridge_agent - -When using ``flat`` provider networks, modify the network type accordingly: - -.. code-block:: yaml - - - network: - container_bridge: "br-publicnet" - container_type: "veth" - type: "flat" - net_name: "flat" - group_binds: - - neutron_linuxbridge_agent - -Specify an overlay network definition in your -``/etc/openstack_deploy/openstack_user_config.yml`` that defines -overlay network-related configuration: - -.. note:: - - The bridge name should correspond to a pre-created Linux bridge. - -.. code-block:: yaml - - - network: - container_bridge: "br-vxlan" - container_type: "veth" - container_interface: "eth10" - ip_from_q: "tunnel" - type: "vxlan" - range: "1:1000" - net_name: "vxlan" - group_binds: - - neutron_linuxbridge_agent - -Set the following user variables in your -``/etc/openstack_deploy/user_variables.yml``: - -.. code-block:: yaml - - neutron_plugin_type: ml2.lxb - - neutron_ml2_drivers_type: "flat,vlan,vxlan" - neutron_plugin_base: - - router - - metering - -The overrides are instructing Ansible to deploy the LXB mechanism driver and -associated LXB components. This is done by setting ``neutron_plugin_type`` -to ``ml2.lxb``. - -The ``neutron_ml2_drivers_type`` override provides support for all common type -drivers supported by LXB. - -The ``neutron_plugin_base`` is used to defined list of plugins that will be -enabled. - -If provider network overrides are needed on a global or per-host basis, -the following format can be used in ``user_variables.yml`` or per-host -in ``openstack_user_config.yml``. - -.. note:: - - These overrides are not normally required when defining global provider - networks in the ``openstack_user_config.yml`` file. - -.. code-block:: yaml - - # When configuring Neutron to support vxlan tenant networks and - # vlan provider networks the configuration may resemble the following: - neutron_provider_networks: - network_types: "vxlan" - network_vxlan_ranges: "1:1000" - network_vlan_ranges: "physnet1:102:199" - network_mappings: "physnet1:br-provider" - network_interface_mappings: "br-provider:bond1" - - # When configuring Neutron to support only vlan tenant networks and - # vlan provider networks the configuration may resemble the following: - neutron_provider_networks: - network_types: "vlan" - network_vlan_ranges: "physnet1:102:199" - network_mappings: "physnet1:br-provider" - network_interface_mappings: "br-provider:bond1" - - # When configuring Neutron to support multiple vlan provider networks - # the configuration may resemble the following: - neutron_provider_networks: - network_types: "vlan" - network_vlan_ranges: "physnet1:102:199,physnet2:2000:2999" - network_mappings: "physnet1:br-provider,physnet2:br-provider2" - network_interface_mappings: "br-provider:bond1,br-provider2:bond2" - - # When configuring Neutron to support multiple vlan and flat provider - # networks the configuration may resemble the following: - neutron_provider_networks: - network_flat_networks: "*" - network_types: "vlan" - network_vlan_ranges: "physnet1:102:199,physnet2:2000:2999" - network_mappings: "physnet1:br-provider,physnet2:br-provider2" - network_interface_mappings: "br-provider:bond1,br-provider2:bond2" - diff --git a/doc/source/configure-network-services.rst b/doc/source/configure-network-services.rst index ca417b30..42fb0c6e 100644 --- a/doc/source/configure-network-services.rst +++ b/doc/source/configure-network-services.rst @@ -342,7 +342,7 @@ configuration to enable Neutron SR-IOV support. net_name: "physnet1" sriov_host_interfaces: "p1p1,p4p1" group_binds: - - neutron_linuxbridge_agent + - neutron_openvswitch_agent - neutron_sriov_nic_agent #. Configure Nova @@ -395,9 +395,7 @@ configuration to enable Neutron SR-IOV support. The `conf override`_ ``neutron_plugin_types`` variable can contain a list of additional ML2 plugins to load. Make sure that only compatible ML2 plugins are loaded at all times. - The SR-IOV ML2 plugin is known to work with the linuxbridge (``ml2.lxb``) - and openvswitch (``ml2.ovs``) ML2 plugins. - ``ml2.lxb`` is the standard activated core ML2 plugin. + The SR-IOV ML2 plugin is known to work with openvswitch (``ml2.ovs``) ML2 plugin. .. code-block:: yaml diff --git a/doc/source/index.rst b/doc/source/index.rst index e482a4c8..4cabd8bc 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -6,7 +6,6 @@ Neutron role for OpenStack-Ansible :maxdepth: 2 configure-network-services.rst - app-linuxbridge.rst app-openvswitch.rst app-openvswitch-asap.rst app-openvswitch-dvr.rst diff --git a/releasenotes/notes/lxb_removed-543fdff51aad6817.yaml b/releasenotes/notes/lxb_removed-543fdff51aad6817.yaml new file mode 100644 index 00000000..b6166a4e --- /dev/null +++ b/releasenotes/notes/lxb_removed-543fdff51aad6817.yaml @@ -0,0 +1,20 @@ +--- + +upgrade: + - | + A ``ml2.lxb`` (linuxbridge) plugin has been removed from Neutron for this release and + can not be used anymore. Please, ensure migrating to supported Neutron driver + before proceeding with the upgrade to this OpenStack version. + Unfortunatelly, there is no currently existing automation for such migration. + You can reffer to the blog post `Migrating from LinuxBridge to OVN `_ + to learn more on how such migrations were achieved previously. +deprecations: + - | + Previously marked as experimental by Neutron linuxbridge (``ml2.lxb``) plugin + has been removed from the codebase. + Please make sure that you are using supported driver before upgrade. +critical: + - | + Previously marked as experimental by Neutron linuxbridge (``ml2.lxb``) plugin + has been removed from the codebase. + Please make sure that you are using supported driver before upgrade. diff --git a/templates/neutron.conf.j2 b/templates/neutron.conf.j2 index 4b1f5906..c234fed3 100644 --- a/templates/neutron.conf.j2 +++ b/templates/neutron.conf.j2 @@ -70,7 +70,7 @@ agent_down_time = {{ neutron_agent_down_time }} {% set num_l3_agent = (neutron_l3_agents_max | int) if neutron_l3_agents_max is defined else groups[neutron_services['neutron-l3-agent']['group']] | length %} {% if neutron_plugin_type.split('.')[0] == 'ml2' and num_l3_agent >= 2 %} -{% if neutron_services['neutron-linuxbridge-agent']['service_en'] | bool or neutron_services['neutron-openvswitch-agent']['service_en'] | bool %} +{% if neutron_services['neutron-openvswitch-agent']['service_en'] | bool %} {% set max_l3_router = num_l3_agent if num_l3_agent > 2 else 2 %} @@ -120,11 +120,6 @@ send_events_interval = 2 # End of [DEFAULT] section -{% if neutron_plugin_type == 'ml2.lxb' %} -[experimental] -linuxbridge = True -{% endif %} - {% if neutron_designate_enabled %} [designate] diff --git a/vars/debian.yml b/vars/debian.yml index 4103ac3d..b948d2b1 100644 --- a/vars/debian.yml +++ b/vars/debian.yml @@ -89,18 +89,12 @@ neutron_service_distro_packages: neutron_optional_ovs_distro_packages: - neutron-openvswitch-agent -neutron_optional_lxb_distro_packages: - - neutron-linuxbridge-agent - neutron_optional_fwaas_distro_packages: - python3-neutron-fwaas neutron_optional_vpnaas_distro_packages: - neutron-vpnaas-agent -neutron_lxb_distro_packages: - - bridge-utils - neutron_vpnaas_distro_packages: - strongswan - libstrongswan-standard-plugins diff --git a/vars/distro_install.yml b/vars/distro_install.yml index 017edca6..28e0c69e 100644 --- a/vars/distro_install.yml +++ b/vars/distro_install.yml @@ -32,10 +32,6 @@ neutron_package_list: |- {% set _ = packages.extend(neutron_ovs_distro_packages) %} {% endif %} {% endif %} - {% if neutron_services['neutron-linuxbridge-agent']['group'] in group_names and neutron_services['neutron-linuxbridge-agent'].service_en | bool %} - {% set _ = packages.extend(neutron_lxb_distro_packages) %} - {% set _ = packages.extend(neutron_optional_lxb_distro_packages) %} - {% endif %} {% if neutron_services['neutron-l3-agent']['group'] in group_names and neutron_fwaas_v2 | bool %} {% set _ = packages.extend(neutron_optional_fwaas_distro_packages) %} {% endif %} diff --git a/vars/main.yml b/vars/main.yml index c1bf56b1..93ef6a00 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -155,16 +155,6 @@ neutron_metering: "{% if 'metering' in neutron_plugin_base %}True{% else %}False neutron_plugin_core: "{{ neutron_plugins[neutron_plugin_type].plugin_core }}" neutron_plugins: - ml2.lxb: - driver_firewall: iptables - driver_interface: linuxbridge - drivers_type: "{{ neutron_ml2_drivers_type }}" - l2_population: "{{ neutron_l2_population }}" - mechanisms: "linuxbridge" - l3_agent_mode: "legacy" - plugin_conf_ini_overrides: "{{ neutron_ml2_conf_ini_overrides }}" - plugin_core: ml2 - plugin_ini: plugins/ml2/ml2_conf.ini ml2.ovs: driver_firewall: "{{ neutron_firewall_driver | default('iptables_hybrid') }}" driver_interface: openvswitch @@ -406,20 +396,6 @@ neutron_services: config_type: "ini" init_config_overrides: "{{ neutron_openvswitch_agent_init_overrides }}" start_order: 2 - neutron-linuxbridge-agent: - group: neutron_linuxbridge_agent - service_name: neutron-linuxbridge-agent - service_en: "{{ neutron_plugin_type == 'ml2.lxb' }}" - service_conf_path: "{{ neutron_conf_version_dir }}" - service_conf: plugins/ml2/linuxbridge_agent.ini - service_rootwrap: rootwrap.d/linuxbridge-plugin.filters - execstarts: >- - {{ neutron_bin }}/neutron-linuxbridge-agent --config-file {{ neutron_conf_dir }}/neutron.conf - --config-file {{ neutron_conf_dir }}/plugins/ml2/ml2_conf.ini --config-file {{ neutron_conf_dir }}/plugins/ml2/linuxbridge_agent.ini - config_overrides: "{{ neutron_linuxbridge_agent_ini_overrides }}" - config_type: "ini" - init_config_overrides: "{{ neutron_linuxbridge_agent_init_overrides }}" - start_order: 2 neutron-metadata-agent: group: neutron_metadata_agent service_name: neutron-metadata-agent diff --git a/vars/redhat.yml b/vars/redhat.yml index 039820c0..29827c30 100644 --- a/vars/redhat.yml +++ b/vars/redhat.yml @@ -80,18 +80,12 @@ neutron_service_distro_packages: neutron_optional_ovs_distro_packages: - openstack-neutron-openvswitch -neutron_optional_lxb_distro_packages: - - openstack-neutron-linuxbridge - neutron_optional_fwaas_distro_packages: - openstack-neutron-fwaas neutron_optional_vpnaas_distro_packages: - openstack-neutron-vpnaas -neutron_lxb_distro_packages: - - bridge-utils - neutron_vpnaas_distro_packages: - libreswan diff --git a/vars/source_install.yml b/vars/source_install.yml index 1ef329d2..23dae67a 100644 --- a/vars/source_install.yml +++ b/vars/source_install.yml @@ -31,9 +31,6 @@ neutron_package_list: |- {% set _ = packages.extend(neutron_ovs_distro_packages) %} {% endif %} {% endif %} - {% if neutron_services['neutron-linuxbridge-agent']['group'] in group_names and neutron_services['neutron-linuxbridge-agent'].service_en | bool %} - {% set _ = packages.extend(neutron_lxb_distro_packages) %} - {% endif %} {% if (neutron_services['neutron-l3-agent']['group'] in group_names or neutron_services['neutron-ovn-vpn-agent']['group'] in group_names) and neutron_vpnaas | bool %} {% set _ = packages.extend(neutron_vpnaas_distro_packages) %} diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 5e077d61..5b4a20d2 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -14,16 +14,6 @@ # limitations under the License. # Ubuntu Focal -- job: - name: openstack-ansible-deploy-aio_lxb_lxc-ubuntu-jammy - parent: openstack-ansible-deploy-aio - nodeset: ubuntu-jammy - -- job: - name: openstack-ansible-deploy-aio_lxb_metal-ubuntu-jammy - parent: openstack-ansible-deploy-aio - nodeset: ubuntu-jammy - - job: name: openstack-ansible-deploy-aio_ovs_lxc-ubuntu-jammy parent: openstack-ansible-deploy-aio @@ -40,18 +30,8 @@ parent: openstack-ansible-deploy-aio nodeset: centos-9-stream -- job: - name: openstack-ansible-deploy-aio_lxb_lxc-centos-9-stream - parent: openstack-ansible-deploy-aio - nodeset: centos-9-stream - # Rocky 9 - job: name: openstack-ansible-deploy-aio_metal_ovs-rockylinux-9 parent: openstack-ansible-deploy-aio nodeset: rockylinux-9 - -- job: - name: openstack-ansible-deploy-aio_lxb_metal-rockylinux-9 - parent: openstack-ansible-deploy-aio - nodeset: rockylinux-9 diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index d5eb3ec7..fb8bb350 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -28,16 +28,8 @@ - openstack-ansible-deploy-aio_ovs_lxc-centos-9-stream: voting: false - openstack-ansible-deploy-aio_metal_ovs-rockylinux-9 - - openstack-ansible-deploy-aio_lxb_lxc-centos-9-stream: - voting: false - - openstack-ansible-deploy-aio_lxb_metal-rockylinux-9 - - openstack-ansible-deploy-aio_lxb_lxc-ubuntu-jammy - - openstack-ansible-deploy-aio_lxb_metal-ubuntu-jammy gate: jobs: - openstack-ansible-deploy-aio_ovs_lxc-ubuntu-jammy - openstack-ansible-deploy-aio_metal_ovs-ubuntu-jammy - openstack-ansible-deploy-aio_metal_ovs-rockylinux-9 - - openstack-ansible-deploy-aio_lxb_metal-rockylinux-9 - - openstack-ansible-deploy-aio_lxb_lxc-ubuntu-jammy - - openstack-ansible-deploy-aio_lxb_metal-ubuntu-jammy