[OVN] Stop using external_ids from SB Chassis table

Bug #1990229 reported by Benjamin Reichel
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
Rodolfo Alonso

Bug Description

Since the release of ovn v22.09.0 the content of SB Chassis table column other_config is no longer copied to the external_ids.

Neutron still relies on the external_ids e.g. in neutron-agent, mech-driver etc.

All code pieces that use the chassis.external_ids column need to be updated.

The duplication of the column was introduced in v20.06.0.

description: updated
Revision history for this message
Bence Romsics (bence-romsics) wrote :

I believe the relevant ovn commits are the following:

https://github.com/ovn-org/ovn/commit/51309429cc3032a0cb422603e7bbda4905ca01ae treewide: Disable storing of other_config in external_ids
https://github.com/ovn-org/ovn/commit/74d90c2223d0a8c123823fb849b4c2de58c296e4 ovn-controller to no longer monitor Chassis' external_ids

I believe this bug needs to be fixed before we can bump the ovn version used in the gate to v22.09.0:
https://opendev.org/openstack/neutron/src/commit/cd2c5be839e60931d45c3ff681a4064e5ade5b94/zuul.d/base.yaml#L41

The report sounds like you have a plan to fix this. Do you know who will pick this bug up?

Changed in neutron:
status: New → Triaged
importance: Undecided → High
Changed in neutron:
assignee: nobody → Rodolfo Alonso (rodolfo-alonso-hernandez)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/859642

Changed in neutron:
status: Triaged → In Progress
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/+/860078

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

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

commit 7b15ad94339fd59785f409eb7903ddd08a55cfa7
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Sep 30 04:23:26 2022 +0200

    Bump minimum OVN version to v21.06.0

    Bumped minimum OVN version of "neutron-ovn-grenade-multinode" job
    to v21.06.0

    Now "neutron-ovn-tempest-ipv6-only" and "neutron-ovn-rally-task" will
    use this specific verison too, instead of using the default OS package
    (in Ubuntu 20.04, the released package is v20.03.2).

    Related-Bug: #1990229
    Change-Id: I077a8409773ca4ad057cb45d446971a2c3a3703f

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

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

commit f8fa909444cf87d55819fa9dbc45ed77cff7b845
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Sep 23 09:11:25 2022 +0200

    Since OVN 20.06, config is stored in "Chassis.other_config"

    Since OVN 20.06 [1], the OVN configuration is stored in
    "Chassis.other_config".

    Since OVN 22.09, the "Chassis" configuration stored in
    "Chassis.other_config" will not be replicated to
    "Chassis.external_ids".

    This patch replaces any reference to "external_ids" when
    retrieving the Chassis configuration. That means Neutron
    no longer supports OVN versions below 20.06.

    [1]https://github.com/ovn-org/ovn/commit/74d90c2223d0a8c123823fb849b4c2de58c296e4
    [2]https://github.com/ovn-org/ovn/commit/51309429cc3032a0cb422603e7bbda4905ca01ae

    Closes-Bug: #1990229
    Change-Id: If379cefb66a262318858e1cea6503aa3a56ba956

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

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/860671

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

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

commit 536498a29a4e7662a4d0b1bb923e2521509ad77a
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Sep 23 09:11:25 2022 +0200

    Since OVN 20.06, config is stored in "Chassis.other_config"

    Since OVN 20.06 [1], the OVN configuration is stored in
    "Chassis.other_config".

    Since OVN 22.09, the "Chassis" configuration stored in
    "Chassis.other_config" will not be replicated to
    "Chassis.external_ids".

    The ML2/OVN plugin tries to retrieve the "Chassis"
    configuration from the "other_config" field first; if this
    field does not exist (in OVN versions before 20.06), the plugin
    will use "external_ids" field instead. Neutron will be compatible
    with the different OVN versions (with and without "other_config"
    field).

    [1]https://github.com/ovn-org/ovn/commit/74d90c2223d0a8c123823fb849b4c2de58c296e4
    [2]https://github.com/ovn-org/ovn/commit/51309429cc3032a0cb422603e7bbda4905ca01ae

    NOTE: this patch is similar to [1], but in this case neutron keeps
    compatibility with the different OVN versions (with and without
    "other_config" field). Since [2], the Neutron CI has a new job that
    uses the OVN/OVS packages distributed by the operating system
    installed by the CI (in this case, Ubuntu 20.04 and OVN 20.03).

    [1]https://review.opendev.org/c/openstack/neutron/+/859642
    [2]https://review.opendev.org/c/openstack/neutron/+/860636

    Closes-Bug: #1990229
    Change-Id: I54c8fd4d065ae537f396408df16832b158ee8998

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

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

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

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

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/863280
Committed: https://opendev.org/openstack/neutron/commit/af8a3a7f0810dc64ee51c8db38b49723fd5d3d17
Submitter: "Zuul (22348)"
Branch: stable/zed

commit af8a3a7f0810dc64ee51c8db38b49723fd5d3d17
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Sep 23 09:11:25 2022 +0200

    Since OVN 20.06, config is stored in "Chassis.other_config"

    Since OVN 20.06 [1], the OVN configuration is stored in
    "Chassis.other_config".

    Since OVN 22.09, the "Chassis" configuration stored in
    "Chassis.other_config" will not be replicated to
    "Chassis.external_ids".

    The ML2/OVN plugin tries to retrieve the "Chassis"
    configuration from the "other_config" field first; if this
    field does not exist (in OVN versions before 20.06), the plugin
    will use "external_ids" field instead. Neutron will be compatible
    with the different OVN versions (with and without "other_config"
    field).

    [1]https://github.com/ovn-org/ovn/commit/74d90c2223d0a8c123823fb849b4c2de58c296e4
    [2]https://github.com/ovn-org/ovn/commit/51309429cc3032a0cb422603e7bbda4905ca01ae

    NOTE: this patch is similar to [1], but in this case neutron keeps
    compatibility with the different OVN versions (with and without
    "other_config" field). Since [2], the Neutron CI has a new job that
    uses the OVN/OVS packages distributed by the operating system
    installed by the CI (in this case, Ubuntu 20.04 and OVN 20.03).

    [1]https://review.opendev.org/c/openstack/neutron/+/859642
    [2]https://review.opendev.org/c/openstack/neutron/+/860636

    Closes-Bug: #1990229
    Change-Id: I54c8fd4d065ae537f396408df16832b158ee8998
    (cherry picked from commit 536498a29a4e7662a4d0b1bb923e2521509ad77a)

tags: added: in-stable-zed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/yoga)

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

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

Change abandoned by "Felix Huettner <email address hidden>" on branch: stable/yoga
Review: https://review.opendev.org/c/openstack/neutron/+/865135

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/863281
Committed: https://opendev.org/openstack/neutron/commit/8a4c62d094a5419d878c38aa9017e40931a08f21
Submitter: "Zuul (22348)"
Branch: stable/yoga

commit 8a4c62d094a5419d878c38aa9017e40931a08f21
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Sep 23 09:11:25 2022 +0200

    Since OVN 20.06, config is stored in "Chassis.other_config"

    Since OVN 20.06 [1], the OVN configuration is stored in
    "Chassis.other_config".

    Since OVN 22.09, the "Chassis" configuration stored in
    "Chassis.other_config" will not be replicated to
    "Chassis.external_ids".

    The ML2/OVN plugin tries to retrieve the "Chassis"
    configuration from the "other_config" field first; if this
    field does not exist (in OVN versions before 20.06), the plugin
    will use "external_ids" field instead. Neutron will be compatible
    with the different OVN versions (with and without "other_config"
    field).

    [1]https://github.com/ovn-org/ovn/commit/74d90c2223d0a8c123823fb849b4c2de58c296e4
    [2]https://github.com/ovn-org/ovn/commit/51309429cc3032a0cb422603e7bbda4905ca01ae

    NOTE: this patch is similar to [1], but in this case neutron keeps
    compatibility with the different OVN versions (with and without
    "other_config" field). Since [2], the Neutron CI has a new job that
    uses the OVN/OVS packages distributed by the operating system
    installed by the CI (in this case, Ubuntu 20.04 and OVN 20.03).

    [1]https://review.opendev.org/c/openstack/neutron/+/859642
    [2]https://review.opendev.org/c/openstack/neutron/+/860636

    conflicting files in cherry pick:
    - neutron/tests/functional/base.py
    - neutron/tests/functional/services/ovn_l3/test_plugin.py

    Closes-Bug: #1990229
    Change-Id: I54c8fd4d065ae537f396408df16832b158ee8998
    (cherry picked from commit 536498a29a4e7662a4d0b1bb923e2521509ad77a)

tags: added: in-stable-yoga
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/xena)

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

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

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

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/871640
Committed: https://opendev.org/openstack/neutron/commit/1ece93f835b2738dc2f9decf52cda3b26a6c619d
Submitter: "Zuul (22348)"
Branch: stable/wallaby

commit 1ece93f835b2738dc2f9decf52cda3b26a6c619d
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Sep 23 09:11:25 2022 +0200

    Since OVN 20.06, config is stored in "Chassis.other_config"

    Since OVN 20.06 [1], the OVN configuration is stored in
    "Chassis.other_config".

    Since OVN 22.09, the "Chassis" configuration stored in
    "Chassis.other_config" will not be replicated to
    "Chassis.external_ids".

    The ML2/OVN plugin tries to retrieve the "Chassis"
    configuration from the "other_config" field first; if this
    field does not exist (in OVN versions before 20.06), the plugin
    will use "external_ids" field instead. Neutron will be compatible
    with the different OVN versions (with and without "other_config"
    field).

    [1]https://github.com/ovn-org/ovn/commit/74d90c2223d0a8c123823fb849b4c2de58c296e4
    [2]https://github.com/ovn-org/ovn/commit/51309429cc3032a0cb422603e7bbda4905ca01ae

    NOTE: this patch is similar to [1], but in this case neutron keeps
    compatibility with the different OVN versions (with and without
    "other_config" field). Since [2], the Neutron CI has a new job that
    uses the OVN/OVS packages distributed by the operating system
    installed by the CI (in this case, Ubuntu 20.04 and OVN 20.03).

    [1]https://review.opendev.org/c/openstack/neutron/+/859642
    [2]https://review.opendev.org/c/openstack/neutron/+/860636

    Conflicts:
          neutron/plugins/ml2/drivers/ovn/agent/neutron_agent.py
          neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py
          neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/placement.py
          neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py
          neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py
          neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/test_placement.py
          neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py
          neutron/tests/unit/common/ovn/test_utils.py
          neutron/tests/unit/fake_resources.py
          neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_impl_idl_ovn.py
          neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py
          neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py

    Closes-Bug: #1990229
    Change-Id: I54c8fd4d065ae537f396408df16832b158ee8998
    (cherry picked from commit 536498a29a4e7662a4d0b1bb923e2521509ad77a)
    (cherry picked from commit 8a4c62d094a5419d878c38aa9017e40931a08f21)
    (cherry picked from commit a007da1e9a68821de71ee274353b008c1fb6d4d6)

tags: added: in-stable-wallaby
tags: added: in-stable-xena
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/xena)

Reviewed: https://review.opendev.org/c/openstack/neutron/+/871637
Committed: https://opendev.org/openstack/neutron/commit/70e179e9b74282a6b8272c48c78800b33176aaa9
Submitter: "Zuul (22348)"
Branch: stable/xena

commit 70e179e9b74282a6b8272c48c78800b33176aaa9
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Fri Sep 23 09:11:25 2022 +0200

    Since OVN 20.06, config is stored in "Chassis.other_config"

    Since OVN 20.06 [1], the OVN configuration is stored in
    "Chassis.other_config".

    Since OVN 22.09, the "Chassis" configuration stored in
    "Chassis.other_config" will not be replicated to
    "Chassis.external_ids".

    The ML2/OVN plugin tries to retrieve the "Chassis"
    configuration from the "other_config" field first; if this
    field does not exist (in OVN versions before 20.06), the plugin
    will use "external_ids" field instead. Neutron will be compatible
    with the different OVN versions (with and without "other_config"
    field).

    [1]https://github.com/ovn-org/ovn/commit/74d90c2223d0a8c123823fb849b4c2de58c296e4
    [2]https://github.com/ovn-org/ovn/commit/51309429cc3032a0cb422603e7bbda4905ca01ae

    NOTE: this patch is similar to [1], but in this case neutron keeps
    compatibility with the different OVN versions (with and without
    "other_config" field). Since [2], the Neutron CI has a new job that
    uses the OVN/OVS packages distributed by the operating system
    installed by the CI (in this case, Ubuntu 20.04 and OVN 20.03).

    [1]https://review.opendev.org/c/openstack/neutron/+/859642
    [2]https://review.opendev.org/c/openstack/neutron/+/860636

    Conflicts:
          neutron/plugins/ml2/drivers/ovn/agent/neutron_agent.py
          neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py
          neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/placement.py
          neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py
          neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/test_placement.py
          neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py
          neutron/tests/unit/fake_resources.py
          neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_impl_idl_ovn.py
          neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py

    Closes-Bug: #1990229
    Change-Id: I54c8fd4d065ae537f396408df16832b158ee8998
    (cherry picked from commit 536498a29a4e7662a4d0b1bb923e2521509ad77a)
    (cherry picked from commit 8a4c62d094a5419d878c38aa9017e40931a08f21)

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

This issue was fixed in the openstack/neutron 19.5.0 release.

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

This issue was fixed in the openstack/neutron 22.0.0.0rc1 release candidate.

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

This issue was fixed in the openstack/neutron 20.3.0 release.

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

This issue was fixed in the openstack/neutron 21.1.0 release.

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

This issue was fixed in the openstack/neutron wallaby-eom release.

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.