[OVN] Allow scheduling external ports on non-gateway nodes

Bug #2037294 reported by Lucas Alvares Gomes
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Wishlist
Lucas Alvares Gomes

Bug Description

Currently, external ports are always scheduled on nodes centralized networked nodes tagged with the "enable-chassis-as-gw" flag in the ovn-cms-options.

When it comes to deploying OpenStack on OpenShift, requiring services such as the OVN Metadata Agent or DHCP Agent to run on control plane nodes are not ideal, ideally we would like to be able to deploy these services on EDPM compute nodes.

This LP proposes adding a new configuration to ovn-cms-options to tag nodes eligible for scheduling external ports.

This work should be 100% backward compatible and if the new tag is not present in any node, ML2/OVN should continue to schedule external ports on nodes tagged with the "enable-chassis-as-gw" configuration, just as-is today.

Also note that, this work does not involve changing the L3 scheduler. The gateway ports are still going to be schedule as they are today using the "enable-chassis-as-gw" configuration. This work only affects the external ports.

Revision history for this message
Lajos Katona (lajos-katona) wrote :

Am I right that this is not an RFE? It sounds lighter to me.

Revision history for this message
Lucas Alvares Gomes (lucasagomes) wrote :

I marked it as a RFE, but, this is deffo a small RFE if we could consider it as such. Otherwise we can just mark it as a normal bug (perhaps medium importance?).

Both works for me.

tags: added: rfe
Changed in neutron:
status: New → In Progress
Revision history for this message
Rodolfo Alonso (rodolfo-alonso-hernandez) wrote :

Hello Lucas:

The RFE has been approved in the drivers meeting. A spec will be needed to define this feature, the scope and the implementation.

Regards.

tags: added: rfe-approved
removed: rfe
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/900030

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/894767
Committed: https://opendev.org/openstack/neutron/commit/770914f98df9abda2b5b8ca2896ff05618ea0181
Submitter: "Zuul (22348)"
Branch: master

commit 770914f98df9abda2b5b8ca2896ff05618ea0181
Author: Lucas Alvares Gomes <email address hidden>
Date: Tue Sep 12 11:36:59 2023 +0100

    [OVN] Enhanced external port scheduling

    This patch introduces a new configuration for OVN CMS Options called
    "enable-chassis-as-extport-host". This configuration can be used
    by ML2/OVN to identify nodes that are eligible for scheduling OVN's
    external ports.

    Prior to this patch, external ports were always scheduled on centralized
    networked nodes tagged with the "enable-chassis-as-gw" flag in the OVN
    CMS Options but, when it comes to deploying OpenStack on OpenShift
    requiring services such as the OVN Metadata Agent or DHCP Agent to
    serve those external ports and running them on control plane nodes are
    not ideal. This is where this patch comes handy allowing these ports to
    have more flexibility in where they are scheduled.

    The patch is also backward compatible and if the new configuration is
    not present on the OVN CMS Options, ML2/OVN will continue to schedule
    the external ports on nodes configured with the previous configuration
    like always.

    Documentation will be updated on a follow up patch.

    Closes-Bug: 2037294
    Change-Id: Ic46d847e3aebfe543d5a7ab49d18d1f1abf1342e
    Signed-off-by: Lucas Alvares Gomes <email address hidden>

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (master)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/900030
Committed: https://opendev.org/openstack/neutron/commit/cd8816acd11aafec12bf956be3914ab89655c2e6
Submitter: "Zuul (22348)"
Branch: master

commit cd8816acd11aafec12bf956be3914ab89655c2e6
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Nov 3 10:42:16 2023 +0000

    [OVN] Update the External Ports documentation

    This patch is part of the solution for LP #2037294 and updates the
    documentation to explain the new "enable-chassis-as-extport-host"
    configuration as well as enhancing the documentation in general
    to better explain each configuration, database information and
    high availability for external ports.

    Change-Id: Iad048a71653dc791fc27585b509c02470e5d08a2
    Related-Bug: #2037294
    Signed-off-by: Lucas Alvares Gomes <email address hidden>

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/2023.2)

Fix proposed to branch: stable/2023.2
Review: https://review.opendev.org/c/openstack/neutron/+/902157

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (stable/2023.2)

Related fix proposed to branch: stable/2023.2
Review: https://review.opendev.org/c/openstack/neutron/+/903347

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/2023.1)

Fix proposed to branch: stable/2023.1
Review: https://review.opendev.org/c/openstack/neutron/+/903510

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/2023.2)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/902157
Committed: https://opendev.org/openstack/neutron/commit/e6d150ef7dc5e9e7f16e5e608d447e167f109503
Submitter: "Zuul (22348)"
Branch: stable/2023.2

commit e6d150ef7dc5e9e7f16e5e608d447e167f109503
Author: Lucas Alvares Gomes <email address hidden>
Date: Tue Sep 12 11:36:59 2023 +0100

    [OVN] Enhanced external port scheduling

    This patch introduces a new configuration for OVN CMS Options called
    "enable-chassis-as-extport-host". This configuration can be used
    by ML2/OVN to identify nodes that are eligible for scheduling OVN's
    external ports.

    Prior to this patch, external ports were always scheduled on centralized
    networked nodes tagged with the "enable-chassis-as-gw" flag in the OVN
    CMS Options but, when it comes to deploying OpenStack on OpenShift
    requiring services such as the OVN Metadata Agent or DHCP Agent to
    serve those external ports and running them on control plane nodes are
    not ideal. This is where this patch comes handy allowing these ports to
    have more flexibility in where they are scheduled.

    The patch is also backward compatible and if the new configuration is
    not present on the OVN CMS Options, ML2/OVN will continue to schedule
    the external ports on nodes configured with the previous configuration
    like always.

    Documentation will be updated on a follow up patch.

    Conflicts:
      neutron/common/ovn/utils.py
      neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py

    Note about this backport: This backport includes the
    is_additional_chassis_supported() method from utils.py that was introduced
    by another patch: https://review.opendev.org/c/openstack/neutron/+/895402

    Closes-Bug: 2037294
    Change-Id: Ic46d847e3aebfe543d5a7ab49d18d1f1abf1342e
    Signed-off-by: Lucas Alvares Gomes <email address hidden>
    (cherry picked from commit 770914f98df9abda2b5b8ca2896ff05618ea0181)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (stable/2023.2)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/903347
Committed: https://opendev.org/openstack/neutron/commit/4b4bea605949c683d44058b492bcca5bb7496b4f
Submitter: "Zuul (22348)"
Branch: stable/2023.2

commit 4b4bea605949c683d44058b492bcca5bb7496b4f
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Nov 3 10:42:16 2023 +0000

    [OVN] Update the External Ports documentation

    This patch is part of the solution for LP #2037294 and updates the
    documentation to explain the new "enable-chassis-as-extport-host"
    configuration as well as enhancing the documentation in general
    to better explain each configuration, database information and
    high availability for external ports.

    Change-Id: Iad048a71653dc791fc27585b509c02470e5d08a2
    Related-Bug: #2037294
    Signed-off-by: Lucas Alvares Gomes <email address hidden>
    (cherry picked from commit cd8816acd11aafec12bf956be3914ab89655c2e6)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (stable/2023.1)

Change abandoned by "Lucas Alvares Gomes <email address hidden>" on branch: stable/2023.1
Review: https://review.opendev.org/c/openstack/neutron/+/903510

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (stable/2023.1)

Related fix proposed to branch: stable/2023.1
Review: https://review.opendev.org/c/openstack/neutron/+/903899

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/2023.1)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/903510
Committed: https://opendev.org/openstack/neutron/commit/1dbe4248bbac161b2fbdc3bcd8443873f9473ba9
Submitter: "Zuul (22348)"
Branch: stable/2023.1

commit 1dbe4248bbac161b2fbdc3bcd8443873f9473ba9
Author: Lucas Alvares Gomes <email address hidden>
Date: Tue Sep 12 11:36:59 2023 +0100

    Enhanced external port scheduling

    This patch introduces a new configuration for OVN CMS Options called
    "enable-chassis-as-extport-host". This configuration can be used
    by ML2/OVN to identify nodes that are eligible for scheduling OVN's
    external ports.

    Prior to this patch, external ports were always scheduled on centralized
    networked nodes tagged with the "enable-chassis-as-gw" flag in the OVN
    CMS Options but, when it comes to deploying OpenStack on OpenShift
    requiring services such as the OVN Metadata Agent or DHCP Agent to
    serve those external ports and running them on control plane nodes are
    not ideal. This is where this patch comes handy allowing these ports to
    have more flexibility in where they are scheduled.

    The patch is also backward compatible and if the new configuration is
    not present on the OVN CMS Options, ML2/OVN will continue to schedule
    the external ports on nodes configured with the previous configuration
    like always.

    Documentation will be updated on a follow up patch.

    Conflicts:
      neutron/common/ovn/utils.py
      neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py
      neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py
      neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py

    Closes-Bug: 2037294
    Change-Id: Ic46d847e3aebfe543d5a7ab49d18d1f1abf1342e
    Signed-off-by: Lucas Alvares Gomes <email address hidden>
    (cherry picked from commit 770914f98df9abda2b5b8ca2896ff05618ea0181)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (stable/2023.1)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/903899
Committed: https://opendev.org/openstack/neutron/commit/8f0ac0a201dadc2cb6b97092c5c8520a47a5a4aa
Submitter: "Zuul (22348)"
Branch: stable/2023.1

commit 8f0ac0a201dadc2cb6b97092c5c8520a47a5a4aa
Author: Lucas Alvares Gomes <email address hidden>
Date: Fri Nov 3 10:42:16 2023 +0000

    Update the External Ports documentation

    This patch is part of the solution for LP #2037294 and updates the
    documentation to explain the new "enable-chassis-as-extport-host"
    configuration as well as enhancing the documentation in general
    to better explain each configuration, database information and
    high availability for external ports.

    Change-Id: Iad048a71653dc791fc27585b509c02470e5d08a2
    Related-Bug: #2037294
    Signed-off-by: Lucas Alvares Gomes <email address hidden>
    (cherry picked from commit cd8816acd11aafec12bf956be3914ab89655c2e6)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 24.0.0.0b1

This issue was fixed in the openstack/neutron 24.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.