Bug 1828941

Summary: Ignored OVNCMSOptions value from env file in OSP16.1
Product: Red Hat OpenStack Reporter: Eduardo Olivares <eolivare>
Component: openstack-tripleo-heat-templatesAssignee: Lucas Alvares Gomes <lmartins>
Status: CLOSED ERRATA QA Contact: Eduardo Olivares <eolivare>
Severity: high Docs Contact:
Priority: high    
Version: 16.1 (Train)CC: aschultz, ekuris, jamsmith, jlibosva, lmartins, mburns
Target Milestone: betaKeywords: Triaged
Target Release: 16.1 (Train on RHEL 8.2)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-11.3.2-0.20200514023428.0602d12.el8ost.noarch Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-07-29 07:52:15 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: 1666684, 1831709    

Description Eduardo Olivares 2020-04-28 15:48:06 UTC
Description of problem:
I am deploying OSP16.1 OC with OVN configuration.

The following script is used:
(overcloud) [stack@undercloud-0 ~]$ cat overcloud_deploy.sh                                                                                                                                   #!/bin/bash
THT_PATH='/home/stack/ospd-16-vlan-sriov-hybrid-ha-ovn-squad'


if [[ ! -f "$THT_PATH/roles_data.yaml" ]]; then
  openstack overcloud roles generate -o $THT_PATH/roles_data.yaml ControllerSriov ComputeSriov
fi

openstack -vvv overcloud deploy  \
--templates \
--timeout 120 \
-r $THT_PATH/roles_data.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-sriov.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/host-config-and-reboot.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-dvr-ha.yaml \
-e /home/stack/ospd-16-vlan-sriov-hybrid-ha-ovn-squad/network-environment.yaml \
-e /home/stack/containers-prepare-parameter.yaml \
-e /home/stack/ospd-16-vlan-sriov-hybrid-ha-ovn-squad/os-net-config-mappings.yaml \
--log-file overcloud_install.log &> overcloud_install.log


The following file includes OVNCMSOptions configuration:
(overcloud) [stack@undercloud-0 ~]$ grep -B1 OVNCMSOptions /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-dvr-ha.yaml                                          
  ControllerParameters:
    OVNCMSOptions: "enable-chassis-as-gw"




However, OVS is not configured with that value (see no ovn-cms-options value is included):
[root@controller-0 ~]# ovs-vsctl list open . | grep external_ids
external_ids        : {hostname=controller-0.localdomain, ovn-bridge=br-int, ovn-bridge-mappings="datacentre:br-ext-int,tenant:br-int", ovn-encap-ip="10.20.2.67", ovn-encap-type=geneve, ovn-
openflow-probe-interval="60", ovn-remote="tcp:10.20.1.72:6642", ovn-remote-probe-interval="60000", rundir="/var/run/openvswitch", system-id="479e0c95-8438-4a22-aa6f-68673be395bf"}


Due to this, ovn-cms-options value is empty in OVN SB DB:
[root@controller-0 ~]# podman exec -u root -it ovn-dbs-bundle-podman-0 bash                                                                                                                   
()[root@controller-0 /]# ovn-sbctl list chassis | grep ovn-cms-options                                                                                                                        
external_ids        : {datapath-type=system, iface-types="erspan,geneve,gre,internal,ip6erspan,ip6gre,lisp,patch,stt,system,tap,vxlan", is-interconn="false", neutron-metadata-proxy-networks=
"", "neutron:liveness_check_at"="2020-04-28T15:10:22.749200+00:00", "neutron:metadata_liveness_check_at"="2020-04-28T15:10:22.755921+00:00", "neutron:ovn-metadata-id"="2903a683-83f7-4b9c-975
9-d0cf41867aea", "neutron:ovn-metadata-sb-cfg"="1936", ovn-bridge-mappings="datacentre:br-ext-int,tenant:br-int", ovn-chassis-mac-mappings="", ovn-cms-options=""}






Version-Release number of selected component (if applicable):
RHOS-16.1-RHEL-8-20200424.n.0
python3-tripleo-common-11.3.3-0.20200423204446.86569f2.el8ost.noarch

How reproducible:
1/1

Steps to Reproduce:
1. install osp16.1 with ovn configured
2. ovs-vsctl list open . | grep external_ids
3.

Actual results:
No ovn-cms-options value

Expected results:
ovn-cms-options="enable-chassis-as-gw"

Additional info:

Comment 5 Eduardo Olivares 2020-05-25 15:07:39 UTC
Verification information:
puddle: RHOS-16.1-RHEL-8-20200520.n.0
openstack-tripleo-heat-templates-11.3.2-0.20200514023428.0602d12.el8ost.noarch

Files neutron-ovn-dvr-ha.yaml, neutron-ovn-ha.yaml and neutron-ovn-standalone.yaml set OVNCMSOptions for Sriov roles. For example:
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml-  ControllerParameters:
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml:    OVNCMSOptions: "enable-chassis-as-gw"
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml-  ControllerSriovParameters:
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml:    OVNCMSOptions: "enable-chassis-as-gw"
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml-  NetworkerParameters:
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml:    OVNCMSOptions: "enable-chassis-as-gw"
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml-  NetworkerSriovParameters:
/usr/share/openstack-tripleo-heat-templates/environments/services/neutron-ovn-ha.yaml:    OVNCMSOptions: "enable-chassis-as-gw"

The value is correctly applied to GW nodes (in this case, to controller nodes):
[heat-admin@controller-0 ~]$ sudo ovs-vsctl get open . external_ids:ovn-cms-options
enable-chassis-as-gw

External connectivity from VM instances with SRIOV ports is successful.

Comment 9 Alex McLeod 2020-06-16 12:29:39 UTC
If this bug requires doc text for errata release, please set the 'Doc Type' and provide draft text according to the template in the 'Doc Text' field. The documentation team will review, edit, and approve the text.

If this bug does not require doc text, please set the 'requires_doc_text' flag to '-'.

Comment 11 errata-xmlrpc 2020-07-29 07:52:15 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:3148