ovn: Provide the option to configure OVNCMSOptions ('ovn-cms-options') as a role parameter

This option was recently supported in ovn-controller [1]. If this value is configured
in the external_ids column of OpenvSwitch table of OVS database, ovn-controller copies
it to the chassis table, which will be read by Neutron OVN mechanism driver. OVN mech driver can
take certain decisions based on the value. One such use case is setting the value
'enable-chassis-as-gw' in this option. Only those chassis which has this option set,
will be considered as a candidate to schedule a neutron router. So, the administrator
can decide to use only controller nodes (or networker nodes) for scheduling the
router.

[1] - 4705963f2c

Change-Id: Iabe5aec30c740447b9714e1b1ace366768488bdb
Signed-off-by: Numan Siddique <nusiddiq@redhat.com>
This commit is contained in:
Numan Siddique 2018-01-25 19:33:39 +05:30
parent 7f0fd98287
commit 71d59bb0a3
4 changed files with 26 additions and 1 deletions

View File

@ -87,8 +87,23 @@ outputs:
recurse: true
docker_config:
step_4:
configure_cms_options:
start_order: 0
detach: false
net: host
privileged: true
user: root
command: ['/bin/bash', '-c', 'CMS_OPTS=$(hiera ovn::controller::ovn_cms_options -c /etc/puppet/hiera.yaml); if [ X"$CMS_OPTS" != X ]; then ovs-vsctl set open . external_ids:ovn-cms-opts=$CMS_OPTS; fi']
image: &ovn_controller_image {get_param: DockerOvnControllerImage}
volumes:
list_concat:
- {get_attr: [ContainersCommon, volumes]}
-
- /lib/modules:/lib/modules:ro
- /run/openvswitch:/run/openvswitch
ovn_controller:
image: {get_param: DockerOvnControllerImage}
start_order: 1
image: *ovn_controller_image
net: host
privileged: true
user: root

View File

@ -27,3 +27,5 @@ parameter_defaults:
NeutronPluginExtensions: "qos,port_security,dns"
ComputeParameters:
NeutronBridgeMappings: ""
ControllerParameters:
OVNCMSOptions: "enable-chassis-as-gw"

View File

@ -27,3 +27,5 @@ parameter_defaults:
NeutronPluginExtensions: "qos,port_security,dns"
ComputeParameters:
NeutronBridgeMappings: ""
ControllerParameters:
OVNCMSOptions: "enable-chassis-as-gw"

View File

@ -57,6 +57,10 @@ parameters:
description: Whether Metadata Service has to be enabled
type: boolean
default: true
OVNCMSOptions:
description: The CMS options to configure in ovs db
type: string
default: ""
resources:
@ -70,9 +74,11 @@ resources:
map_replace:
- map_replace:
- ovn::controller::ovn_bridge_mappings: NeutronBridgeMappings
ovn::controller::ovn_cms_options: OVNCMSOptions
- values: {get_param: [RoleParameters]}
- values:
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
OVNCMSOptions: {get_param: OVNCMSOptions}
conditions:
force_config_drive: {equals: [{get_param: OVNMetadataEnabled}, false]}