Bug 2008076
| Summary: | [ovs] Invalid ovs bridge is created if multiple bridges are defined by role specific NeutronBridgeMappings | |||
|---|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Takashi Kajinami <tkajinam> | |
| Component: | openstack-tripleo-heat-templates | Assignee: | Brent Eagles <beagles> | |
| Status: | CLOSED WONTFIX | QA Contact: | Joe H. Rahme <jhakimra> | |
| Severity: | medium | Docs Contact: | ||
| Priority: | high | |||
| Version: | 16.1 (Train) | CC: | beagles, ccamposr, fyanac, jamsmith, jelynch, jlibosva, joflynn, kgilliga, mburns, ralonsoh, ykarel | |
| Target Milestone: | z6 | Keywords: | Triaged | |
| Target Release: | 16.2 (Train on RHEL 8.4) | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Known Issue | ||
| Doc Text: |
Using comma-separated role-specific values for `NeutronBridgeMappings` results in incorrect configuration. *Workaround:* Specify the mappings by using an array in a YAML file instead of a comma-separated value. For example:
+
----
ComputeParameters:
NeutronBridgeMappings:
- datacentre:br-ex
- datacentre2:br-ex2
----
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 2236128 (view as bug list) | Environment: | ||
| Last Closed: | 2023-09-29 13:33:02 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 2236128 | |||
This issue is caused by the following implementations in tht and puppet. - In tht, role specific parameters don't rely on parameter interface of heat templates. Because of that NeutronBridgeMappings in role specific parameters is not converted to a list automatically - The following logic triggers creation of ovs bridge, implemented in puppet-neutron. https://github.com/openstack/tripleo-heat-templates/blob/461adac8f4effb591aafe7bfcdffea75cd01990f/deployment/neutron/neutron-ovs-agent-container-puppet.yaml#L302-L336 - The current logic in puppet-neutron doesn't handle a comma-separated list in String. https://github.com/openstack/puppet-neutron/blob/424320c268d931df89212b69b9ffbbe95765fdb6/manifests/agents/ml2/ovs.pp#L328 https://github.com/openstack/puppet-neutron/blob/424320c268d931df89212b69b9ffbbe95765fdb6/manifests/plugins/ovs/bridge.pp#L6-L12 To avoid the issue we can fix puppet-neutron to handle a string value properly. However I'm wondering why these ovs bridges are managed by puppet while these bridges are supposed to be managed by os-net-config as part of network deployment. The only configuration specific to puppet is the definition of external_id but is this really required ? https://github.com/openstack/puppet-neutron/blob/424320c268d931df89212b69b9ffbbe95765fdb6/manifests/plugins/ovs/bridge.pp#L11 If we don't need to run that logic to apply external_id then I tend to disable management of ovs bridge by puppet. Just leaving a note...
One more option to workaround the issue easily would be to define an array value for the role specific parameter
~~~
parameter_defaults:
ComputeParameters:
NeutronBridgeMappings:
- datacentre:br-ex
- datacentre2:br-ex2
~~~
Initially I explained the three ovs bridges are created but it was wrong and only the one with an invalid name is created by puppet. I updated the problem description accordingly. |
Description of problem: When a deployment uses ml2+ovs and multiple bridge mappings are defined by role specific NeutronBridgeMappings, an invalid bridge is created in overcloud nodes. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Deploy overcloud with the following environment file ~~~ parameter_defaults: ComputeParameters: NeutronBridgeMappings: 'datacentre:br-ex,datacentre2:br-ex2' ~~~ Actual results: The following ovs bridge is created in compute nodes. - br-ex,datacentre2 Expected results: The following two ovs bridges are created - br-ex - br-ex2 Additional info: