[ovn] Handle ovn central options
Since ovs 2.8 remote ports of NB/SB are closed by default,
so get options from pillar to open required ports.
Change-Id: I4b4437a35ec8719113757a524f429b5d7b3cd28e
diff --git a/README.rst b/README.rst
index 5d21c9e..570558c 100644
--- a/README.rst
+++ b/README.rst
@@ -733,6 +733,9 @@
ovn:
driver: ovn
tenant_network_types: "geneve,flat"
+ ovn_ctl_opts:
+ db-nb-create-insecure-remote: 'yes'
+ db-sb-create-insecure-remote: 'yes'
Compute node:
diff --git a/neutron/files/ocata/ovn_central_options b/neutron/files/ocata/ovn_central_options
new file mode 100644
index 0000000..e59db5f
--- /dev/null
+++ b/neutron/files/ocata/ovn_central_options
@@ -0,0 +1,10 @@
+{%- from "neutron/map.jinja" import server with context %}
+# This is a POSIX shell fragment -*- sh -*-
+
+# OVN_CTL_OPTS: Extra options to pass to ovn-ctl. This is, for example,
+# a suitable place to specify --ovn-northd-wrapper=valgrind.
+{%- set ovn_ctl_opts = [] %}
+{%- for opt, value in server.get('ovn_ctl_opts', {}).iteritems() %}
+{%- do ovn_ctl_opts.append("--%s=%s"|format(opt, value)) %}
+{%- endfor %}
+OVN_CTL_OPTS='{{ ovn_ctl_opts|join(' ') }}'
diff --git a/neutron/server.sls b/neutron/server.sls
index a6de469..c7be3d7 100644
--- a/neutron/server.sls
+++ b/neutron/server.sls
@@ -192,6 +192,16 @@
- require:
- pkg: ovn_packages
+{%- if grains.os_family == 'Debian' %}
+/etc/default/ovn-central:
+ file.managed:
+ - source: salt://neutron/files/{{ server.version }}/ovn_central_options
+ - template: jinja
+ - require:
+ - pkg: ovn_packages
+ - watch_in:
+ - service: ovn_services
+{%- endif %}
{%- endif %}
{%- endif %}
diff --git a/tests/pillar/control_ovn.sls b/tests/pillar/control_ovn.sls
index 0dc9e22..a173679 100644
--- a/tests/pillar/control_ovn.sls
+++ b/tests/pillar/control_ovn.sls
@@ -49,6 +49,9 @@
port: 5672
user: openstack
virtual_host: /openstack
+ ovn_ctl_opts:
+ db-nb-create-insecure-remote: 'yes'
+ db-sb-create-insecure-remote: 'yes'
linux:
system: