summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Polenchuk <mpolenchuk@mirantis.com>2017-07-14 11:11:32 +0400
committerMichael Polenchuk <mpolenchuk@mirantis.com>2017-07-31 11:11:32 +0400
commitdf50704b226a11f6ce9d0a46b178a5b8e8cd0284 (patch)
tree11f13697a96c54ed28c9ba18fa716be183bd84bd
parent6b62f74000cd41fab84817bf119c33dbe44f91a4 (diff)
Bring in opendaylight L3/router scenario
Change-Id: I8a3be1764de136e2ecf81f964233483be5d6655a Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
-rw-r--r--mcp/config/os-odl_l2-nofeature-noha.yaml1
-rw-r--r--mcp/config/os-odl_l3-nofeature-noha.yaml22
-rw-r--r--mcp/patches/0001-opendaylight-reclass-system.patch6
-rw-r--r--mcp/patches/0002-opendaylight-formula-neutron.patch64
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/config.yml69
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/init.yml14
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/init.yml24
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml33
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/compute.yml86
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/control.yml102
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/gateway.yml94
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml135
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml2
m---------mcp/reclass/classes/system0
-rw-r--r--mcp/salt-formulas/opendaylight/server.sls22
15 files changed, 658 insertions, 16 deletions
diff --git a/mcp/config/os-odl_l2-nofeature-noha.yaml b/mcp/config/os-odl_l2-nofeature-noha.yaml
index ef967320f..feb78c93a 100644
--- a/mcp/config/os-odl_l2-nofeature-noha.yaml
+++ b/mcp/config/os-odl_l2-nofeature-noha.yaml
@@ -9,6 +9,7 @@ virtual:
- cfg01
- ctl01
- cmp01
+ - cmp02
- gtw01
- odl01
ctl01:
diff --git a/mcp/config/os-odl_l3-nofeature-noha.yaml b/mcp/config/os-odl_l3-nofeature-noha.yaml
new file mode 100644
index 000000000..de95e503d
--- /dev/null
+++ b/mcp/config/os-odl_l3-nofeature-noha.yaml
@@ -0,0 +1,22 @@
+cluster:
+ domain: virtual-mcp-ocata-odl-router.local
+ states:
+ - opendaylight
+ - openstack
+ - networks
+virtual:
+ nodes:
+ - cfg01
+ - ctl01
+ - cmp01
+ - cmp02
+ - gtw01
+ - odl01
+ ctl01:
+ vcpus: 4
+ ram: 14336
+ gtw01:
+ ram: 2048
+ odl01:
+ vcpus: 4
+ ram: 5120
diff --git a/mcp/patches/0001-opendaylight-reclass-system.patch b/mcp/patches/0001-opendaylight-reclass-system.patch
index dc7c08fdd..f8c986be6 100644
--- a/mcp/patches/0001-opendaylight-reclass-system.patch
+++ b/mcp/patches/0001-opendaylight-reclass-system.patch
@@ -75,10 +75,10 @@ index 0000000..3d11872
+- service.opendaylight.server.single
diff --git a/reclass/storage/system/opendaylight_control_single.yml b/reclass/storage/system/opendaylight_control_single.yml
new file mode 100644
-index 0000000..890ff59
+index 0000000..ad809f5
--- /dev/null
+++ b/reclass/storage/system/opendaylight_control_single.yml
-@@ -0,0 +1,15 @@
+@@ -0,0 +1,13 @@
+parameters:
+ _param:
+ opendaylight_control_hostname: odl01
@@ -88,8 +88,6 @@ index 0000000..890ff59
+ opendaylight_control_node01:
+ name: ${_param:opendaylight_control_hostname}
+ domain: ${_param:cluster_domain}
-+ classes:
-+ - cluster.${_param:cluster_name}.opendaylight.control
+ params:
+ salt_master_host: ${_param:reclass_config_master}
+ linux_system_codename: ${_param:linux_system_codename}
diff --git a/mcp/patches/0002-opendaylight-formula-neutron.patch b/mcp/patches/0002-opendaylight-formula-neutron.patch
index fa175e1fa..e52d315a5 100644
--- a/mcp/patches/0002-opendaylight-formula-neutron.patch
+++ b/mcp/patches/0002-opendaylight-formula-neutron.patch
@@ -4,6 +4,27 @@ Subject: [PATCH] Bring in opendaylight support
Change-Id: Ie9073fafccba336f94b1996bd85c98d7a7f5060b
+diff --git a/neutron/files/ocata/dhcp_agent.ini b/neutron/files/ocata/dhcp_agent.ini
+index d327e64..ba5f933 100644
+--- a/neutron/files/ocata/dhcp_agent.ini
++++ b/neutron/files/ocata/dhcp_agent.ini
+@@ -1,3 +1,8 @@
++{%- if pillar.neutron.gateway is defined %}
++{%- from "neutron/map.jinja" import gateway as neutron with context %}
++{%- else %}
++{%- from "neutron/map.jinja" import compute as neutron with context %}
++{%- endif %}
+ [DEFAULT]
+
+ #
+@@ -48,6 +53,7 @@ enable_isolated_metadata = True
+ # this value will force the DHCP server to append specific host routes to the DHCP request. If this option is set, then the metadata service
+ # will be activated for all the networks. (boolean value)
+ #force_metadata = false
++{% if neutron.backend.get('router', 'False') %}force_metadata = True{% endif %}
+
+ # Allows for serving metadata requests coming from a dedicated metadata access network whose CIDR is 169.254.169.254/16 (or larger prefix),
+ # and is connected to a Neutron router from which the VMs send metadata:1 request. In this case DHCP Option 121 will not be injected in VMs,
diff --git a/neutron/files/ocata/ml2_conf.ini b/neutron/files/ocata/ml2_conf.ini
index 0d48951..347eb15 100644
--- a/neutron/files/ocata/ml2_conf.ini
@@ -21,10 +42,10 @@ index 0d48951..347eb15 100644
+password = {{ server.backend.password }}
+{%- endif %}
diff --git a/neutron/files/ocata/neutron-generic.conf.Debian b/neutron/files/ocata/neutron-generic.conf.Debian
-index 5b7058d..bc438b9 100644
+index 0dde78f..05ac805 100644
--- a/neutron/files/ocata/neutron-generic.conf.Debian
+++ b/neutron/files/ocata/neutron-generic.conf.Debian
-@@ -33,7 +33,7 @@ state_path = /var/lib/neutron
+@@ -33,11 +33,11 @@ state_path = /var/lib/neutron
#auth_strategy = keystone
auth_strategy = keystone
@@ -33,6 +54,20 @@ index 5b7058d..bc438b9 100644
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
+-service_plugins =neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.metering.metering_plugin.MeteringPlugin
++service_plugins = {{ neutron.backend.get('router', 'router')}},metering
+
+ {% endif %}
+
+@@ -2073,3 +2073,8 @@ heartbeat_rate = 2
+ # Sets the list of available ciphers. value should be a string in the OpenSSL
+ # cipher list format. (string value)
+ #ciphers = <None>
++
++{%- if neutron.backend.engine == "opendaylight" %}
++[ovs]
++ovsdb_connection = {{ neutron.backend.ovsdb_connection }}
++{%- endif %}
diff --git a/neutron/files/ocata/neutron-server b/neutron/files/ocata/neutron-server
index 54f6ceb..1682ee0 100644
--- a/neutron/files/ocata/neutron-server
@@ -47,10 +82,10 @@ index 54f6ceb..1682ee0 100644
{%- endif %}
diff --git a/neutron/files/ocata/neutron-server.conf.Debian b/neutron/files/ocata/neutron-server.conf.Debian
-index e320ca4..d6de235 100644
+index 229d342..ac8bdff 100644
--- a/neutron/files/ocata/neutron-server.conf.Debian
+++ b/neutron/files/ocata/neutron-server.conf.Debian
-@@ -39,7 +39,7 @@ api_extensions_path = extensions:/usr/lib/python2.7/dist-packages/neutron_plugin
+@@ -39,11 +39,11 @@ api_extensions_path = extensions:/usr/lib/python2.7/dist-packages/neutron_plugin
core_plugin = neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2
service_plugins = neutron_plugin_contrail.plugins.opencontrail.loadbalancer.v2.plugin.LoadBalancerPluginV2
@@ -59,7 +94,12 @@ index e320ca4..d6de235 100644
core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
-@@ -831,7 +831,7 @@ allow_headers = {{ server.cors.allow_headers }}
+-service_plugins =neutron.services.l3_router.l3_router_plugin.L3RouterPlugin,neutron.services.metering.metering_plugin.MeteringPlugin
++service_plugins = {{ server.backend.get('router', 'router')}},metering
+ {%- if server.lbaas is defined -%},lbaasv2{%- endif -%}
+ {%- if server.get('qos', 'True') -%},neutron.services.qos.qos_plugin.QoSPlugin{%- endif -%}
+ {%- if server.get('vlan_aware_vms', False) -%},trunk{%- endif -%}
+@@ -835,7 +835,7 @@ allow_headers = {{ server.cors.allow_headers }}
# Deprecated group/name - [DEFAULT]/sql_connection
# Deprecated group/name - [DATABASE]/sql_connection
# Deprecated group/name - [sql]/connection
@@ -68,7 +108,7 @@ index e320ca4..d6de235 100644
connection = {{ server.database.engine }}+pymysql://{{ server.database.user }}:{{ server.database.password }}@{{ server.database.host }}/{{ server.database.name }}?charset=utf8
{% else %}
connection = sqlite:////var/lib/neutron/neutron.sqlite
-@@ -2194,3 +2194,8 @@ service_provider = LOADBALANCERV2:Opencontrail:neutron_plugin_contrail.plugins.o
+@@ -2198,3 +2198,8 @@ service_provider = LOADBALANCERV2:Opencontrail:neutron_plugin_contrail.plugins.o
{% include "neutron/files/"+server.version+"/ContrailPlugin.ini" %}
{% endif %}
@@ -77,6 +117,18 @@ index e320ca4..d6de235 100644
+[ovs]
+ovsdb_connection = {{ server.backend.ovsdb_connection }}
+{%- endif %}
+diff --git a/neutron/gateway.sls b/neutron/gateway.sls
+index a6e6586..ab4bb85 100644
+--- a/neutron/gateway.sls
++++ b/neutron/gateway.sls
+@@ -27,6 +27,7 @@ neutron_gateway_packages:
+ /etc/neutron/dhcp_agent.ini:
+ file.managed:
+ - source: salt://neutron/files/{{ gateway.version }}/dhcp_agent.ini
++ - template: jinja
+ - require:
+ - pkg: neutron_gateway_packages
+
diff --git a/neutron/server.sls b/neutron/server.sls
index 0b3a6be..7a6bd23 100644
--- a/neutron/server.sls
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/config.yml
new file mode 100644
index 000000000..63e58a24b
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/config.yml
@@ -0,0 +1,69 @@
+classes:
+- service.git.client
+- system.linux.system.single
+- system.linux.system.repo.mcp.salt
+- system.salt.master.api
+- system.salt.master.pkg
+- system.reclass.storage.salt
+- system.salt.minion.ca.salt_master
+- system.salt.minion.cert.proxy
+- system.mysql.client.single
+- system.reclass.storage.system.openstack_compute_multi
+- system.reclass.storage.system.openstack_gateway_single
+- system.reclass.storage.system.opendaylight_control_single
+- cluster.virtual-mcp-ocata-odl-router
+parameters:
+ _param:
+ openstack_control_node01_hostname: ctl01
+ reclass_data_repository: local
+ salt_master_environment_repository: "https://github.com/tcpcloud"
+ salt_master_environment_revision: master
+ reclass_config_master: 192.168.10.100
+ single_address: 172.16.10.100
+ salt_master_host: 127.0.0.1
+ salt_master_base_environment: prd
+ salt_minion_ca_host: ${linux:network:fqdn}
+ salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1"
+ linux:
+ network:
+ interface:
+ ens4:
+ enabled: true
+ type: eth
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ reclass:
+ storage:
+ data_source:
+ engine: local
+ node:
+ openstack_control_node01:
+ name: ${_param:openstack_control_node01_hostname}
+ domain: ${_param:cluster_domain}
+ classes:
+ - cluster.${_param:cluster_name}.openstack.control
+ params:
+ linux_system_codename: xenial
+ salt_master_host: ${_param:reclass_config_master}
+ single_address: ${_param:openstack_control_node01_address}
+ openstack_compute_node01:
+ params:
+ single_address: 172.16.10.105
+ tenant_address: 10.1.0.105
+ external_address: 10.16.0.105
+ openstack_compute_node02:
+ params:
+ single_address: 172.16.10.106
+ tenant_address: 10.1.0.106
+ external_address: 10.16.0.106
+ openstack_gateway_node01:
+ params:
+ tenant_address: 10.1.0.110
+ external_address: 10.16.0.110
+ opendaylight_control_node01:
+ classes:
+ - cluster.${_param:cluster_name}.opendaylight.control
+ params:
+ linux_system_codename: xenial
+ single_address: 172.16.10.111
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/init.yml
new file mode 100644
index 000000000..9140bd0bc
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/init.yml
@@ -0,0 +1,14 @@
+parameters:
+ linux:
+ network:
+ host:
+ cfg01:
+ address: ${_param:infra_config_address}
+ names:
+ - cfg01
+ - cfg01.${_param:cluster_domain}
+ cfg:
+ address: ${_param:infra_config_address}
+ names:
+ - cfg
+ - cfg.${_param:cluster_domain}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/init.yml
new file mode 100644
index 000000000..0698c644b
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/init.yml
@@ -0,0 +1,24 @@
+classes:
+- system.linux.system.single
+- cluster.virtual-mcp-ocata-odl-router.infra
+- cluster.virtual-mcp-ocata-odl-router.openstack
+
+parameters:
+ _param:
+ cluster_domain: virtual-mcp-ocata-odl-router.local
+ cluster_name: virtual-mcp-ocata-odl-router
+ # infra service addresses
+ infra_config_address: 172.16.10.100
+ # openstack service addresses
+ openstack_control_address: 172.16.10.101
+ openstack_control_node01_address: 172.16.10.101
+ openstack_control_node02_address: 172.16.10.102
+ openstack_control_node03_address: 172.16.10.103
+ openstack_database_address: ${_param:openstack_control_address}
+ openstack_message_queue_address: ${_param:openstack_control_address}
+ openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
+ openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
+ openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
+ openstack_gateway_address: 172.16.10.110
+ opendaylight_service_host: 172.16.10.111
+ control_address: ${_param:openstack_control_address}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml
new file mode 100644
index 000000000..6e37978a1
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml
@@ -0,0 +1,33 @@
+classes:
+- system.linux.system.repo.ubuntu
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.saltstack.xenial
+- system.opendaylight.server.single
+- cluster.virtual-mcp-ocata-odl-router
+parameters:
+ _param:
+ linux_system_codename: xenial
+ linux:
+ network:
+ interface:
+ ens4:
+ enabled: true
+ type: eth
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ opendaylight:
+ server:
+ odl_bind_ip: ${_param:single_address}
+ odl_rest_port: 8282
+ java_min_mem: 3g
+ java_max_mem: 3g
+ router_enabled: true
+ karaf_features:
+ odl_default:
+ - odl-restconf-all
+ - odl-aaa-authn
+ - odl-dlux-all
+ netvirt:
+ - odl-netvirt-openstack
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/compute.yml
new file mode 100644
index 000000000..e25f41742
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/compute.yml
@@ -0,0 +1,86 @@
+classes:
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.saltstack.xenial
+- system.linux.storage.loopback
+- system.nova.compute.single
+- service.neutron.compute.single
+- service.cinder.volume.single
+- system.cinder.volume.backend.lvm
+- cluster.virtual-mcp-ocata-odl-router
+parameters:
+ _param:
+ primary_interface: ens4
+ tenant_interface: ens5
+ external_interface: ens6
+ interface_mtu: 9000
+ linux_system_codename: xenial
+ loopback_device_size: 10
+ nova:
+ compute:
+ vncproxy_url: http://${_param:cluster_vip_address}:6080
+ network:
+ region: ${_param:openstack_region}
+ user: neutron
+ tenant: service
+ password: ${_param:keystone_neutron_password}
+ neutron:
+ compute:
+ agent_mode: ${_param:neutron_compute_agent_mode}
+ message_queue:
+ host: ${_param:openstack_control_address}
+ metadata:
+ host: ${_param:openstack_control_address}
+ cinder:
+ volume:
+ database:
+ host: ${_param:cluster_local_address}
+ identity:
+ host: ${_param:cluster_local_address}
+ glance:
+ host: ${_param:cluster_local_address}
+ message_queue:
+ host: ${_param:cluster_local_address}
+ opendaylight:
+ client:
+ ovsdb_server_iface: ptcp:6639:127.0.0.1
+ ovsdb_odl_iface: tcp:${_param:opendaylight_service_host}:6640
+ tunnel_ip: ${_param:tenant_address}
+ linux:
+ network:
+ bridge: openvswitch
+ interface:
+ dhcp_int:
+ enabled: true
+ name: ens3
+ proto: dhcp
+ type: eth
+ mtu: ${_param:interface_mtu}
+ primary_interface:
+ enabled: true
+ name: ${_param:primary_interface}
+ mtu: ${_param:interface_mtu}
+ proto: manual
+ type: eth
+ tenant_interface:
+ enabled: true
+ name: ${_param:tenant_interface}
+ mtu: ${_param:interface_mtu}
+ proto: manual
+ type: eth
+ br-mgmt:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ use_interfaces:
+ - ${_param:primary_interface}
+ br-mesh:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:tenant_address}
+ netmask: 255.255.255.0
+ use_interfaces:
+ - ${_param:tenant_interface}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/control.yml
new file mode 100644
index 000000000..4d31b0922
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/control.yml
@@ -0,0 +1,102 @@
+classes:
+- system.linux.system.lowmem
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.saltstack.xenial
+- system.memcached.server.single
+- system.rabbitmq.server.single
+- system.rabbitmq.server.vhost.openstack
+- system.keystone.server.wsgi
+- system.keystone.server.single
+- system.keystone.client.single
+- system.keystone.client.service.nova21
+- system.keystone.client.service.nova-placement
+- system.keystone.client.service.glare
+- system.keystone.client.service.cinder3
+- system.glance.control.single
+- system.nova.control.single
+- system.neutron.control.opendaylight.single
+- system.cinder.control.single
+- system.cinder.control.backend.lvm
+- system.heat.server.single
+- service.mysql.server.single
+- system.galera.server.database.cinder
+- system.galera.server.database.glance
+- system.galera.server.database.grafana
+- system.galera.server.database.heat
+- system.galera.server.database.keystone
+- system.galera.server.database.nova
+- system.horizon.server.single
+- service.haproxy.proxy.single
+- cluster.virtual-mcp-ocata-common.haproxy_openstack_api
+- cluster.virtual-mcp-ocata-odl-router
+parameters:
+ _param:
+ linux_system_codename: xenial
+ linux:
+ system:
+ package:
+ python-msgpack:
+ version: latest
+ network:
+ interface:
+ ens4:
+ enabled: true
+ type: eth
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ ens6:
+ enabled: true
+ type: eth
+ proto: static
+ address: ${_param:cluster_public_host}
+ netmask: 255.255.255.0
+ keystone:
+ server:
+ admin_email: ${_param:admin_email}
+ pkgs:
+ - keystone
+ - python-keystone
+ - python-keystoneclient
+ - python-psycopg2
+ - python-mysqldb
+ - python-six
+ - python-memcache
+ - python-openstackclient
+ - gettext-base
+ - python-pycadf
+ glance:
+ server:
+ storage:
+ engine: file
+ images: []
+ workers: 1
+ nova:
+ controller:
+ networking: dvr
+ cpu_allocation: 54
+ metadata:
+ password: ${_param:metadata_password}
+ bind:
+ private_address: ${_param:cluster_local_address}
+ public_address: ${_param:cluster_vip_address}
+ novncproxy_port: 6080
+ vncproxy_url: http://${_param:cluster_vip_address}:6080
+ workers: 1
+ neutron:
+ server:
+ backend:
+ router: ${_param:opendaylight_router}
+ heat:
+ server:
+ bind:
+ api_cfn:
+ address: ${_param:single_address}
+ api_cloudwatch:
+ address: ${_param:single_address}
+ mysql:
+ server:
+ version: '5.7'
+ bind:
+ address: ${_param:cluster_local_address}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/gateway.yml
new file mode 100644
index 000000000..fee8097d2
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/gateway.yml
@@ -0,0 +1,94 @@
+classes:
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.saltstack.xenial
+- system.neutron.gateway.opendaylight.single
+- cluster.virtual-mcp-ocata-odl-router
+parameters:
+ _param:
+ primary_interface: ens4
+ tenant_interface: ens5
+ external_interface: ens6
+ interface_mtu: 9000
+ linux_system_codename: xenial
+ neutron_agents:
+ - neutron-dhcp-agent
+ - neutron-metadata-agent
+ neutron:
+ gateway:
+ agent_mode: ${_param:neutron_gateway_agent_mode}
+ pkgs: ${_param:neutron_agents}
+ services: ${_param:neutron_agents}
+ backend:
+ router: ${_param:opendaylight_router}
+ opendaylight:
+ client:
+ ovsdb_server_iface: ptcp:6639:127.0.0.1
+ ovsdb_odl_iface: tcp:${_param:opendaylight_service_host}:6640
+ tunnel_ip: ${_param:tenant_address}
+ provider_mappings: physnet1:br-floating
+ linux:
+ network:
+ bridge: openvswitch
+ interface:
+ dhcp_int:
+ enabled: true
+ name: ens3
+ proto: dhcp
+ type: eth
+ mtu: ${_param:interface_mtu}
+ primary_interface:
+ enabled: true
+ name: ${_param:primary_interface}
+ mtu: ${_param:interface_mtu}
+ proto: manual
+ type: eth
+ tenant_interface:
+ enabled: true
+ name: ${_param:tenant_interface}
+ mtu: ${_param:interface_mtu}
+ proto: manual
+ type: eth
+ external_interface:
+ enabled: true
+ name: ${_param:external_interface}
+ mtu: ${_param:interface_mtu}
+ proto: manual
+ type: eth
+ br-floating:
+ enabled: true
+ type: ovs_bridge
+ mtu: ${_param:interface_mtu}
+ br-mgmt:
+ enabled: true
+ type: bridge
+ proto: static
+ address: ${_param:single_address}
+ netmask: 255.255.255.0
+ mtu: ${_param:interface_mtu}
+ use_interfaces:
+ - ${_param:primary_interface}
+ br-mesh:
+ enabled: true
+ type: bridge
+ mtu: ${_param:interface_mtu}
+ proto: static
+ address: ${_param:tenant_address}
+ netmask: 255.255.255.0
+ use_interfaces:
+ - ${_param:tenant_interface}
+ float-to-ex:
+ enabled: true
+ type: ovs_port
+ mtu: ${_param:interface_mtu}
+ bridge: br-floating
+ br-ex:
+ enabled: true
+ type: bridge
+ mtu: ${_param:interface_mtu}
+ address: ${_param:external_address}
+ netmask: 255.255.255.0
+ use_interfaces:
+ - ${_param:external_interface}
+ use_ovs_ports:
+ - float-to-ex
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml
new file mode 100644
index 000000000..69641aa2f
--- /dev/null
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml
@@ -0,0 +1,135 @@
+parameters:
+ _param:
+ openstack_version: ocata
+ apt_mk_version: nightly
+ mcp_repo_version: 1.1
+ openstack_region: RegionOne
+ admin_email: root@localhost
+ cluster_public_protocol: http
+ cluster_public_host: 10.16.0.101
+ neutron_public_protocol: http
+ neutron_control_dvr: False
+ neutron_tenant_network_types: "flat,vxlan"
+ neutron_l3_ha: False
+ neutron_global_physnet_mtu: 1500
+ neutron_external_mtu: 1500
+ neutron_gateway_dvr: False
+ neutron_gateway_agent_mode: legacy
+ neutron_compute_dvr: False
+ neutron_compute_agent_mode: legacy
+ neutron_compute_external_access: False
+ galera_server_cluster_name: openstack_cluster
+ galera_server_maintenance_password: opnfv_secret
+ galera_server_admin_password: opnfv_secret
+ cluster_vip_address: ${_param:cluster_public_host}
+ cluster_local_address: ${_param:openstack_control_address}
+ cluster_node01_hostname: ctl01
+ cluster_node01_address: 172.16.10.101
+ cluster_node02_hostname: ctl02
+ cluster_node02_address: 172.16.10.102
+ cluster_node03_hostname: ctl03
+ cluster_node03_address: 172.16.10.103
+ rabbitmq_secret_key: opnfv_secret
+ rabbitmq_admin_password: opnfv_secret
+ rabbitmq_openstack_password: opnfv_secret
+ rabbitmq_cold_password: opnfv_secret
+ glance_version: ${_param:openstack_version}
+ glance_service_host: ${_param:cluster_local_address}
+ keystone_version: ${_param:openstack_version}
+ keystone_service_host: ${_param:cluster_local_address}
+ heat_version: ${_param:openstack_version}
+ heat_service_host: ${_param:cluster_local_address}
+ heat_domain_admin_password: opnfv_secret
+ ceilometer_version: ${_param:openstack_version}
+ ceilometer_service_host: 172.16.10.108
+ ceilometer_database_host: ${_param:cluster_local_address}
+ cinder_version: ${_param:openstack_version}
+ cinder_service_host: ${_param:cluster_local_address}
+ ceilometer_graphite_publisher_host: 172.16.10.107
+ ceilometer_graphite_publisher_port: 2013
+ nova_version: ${_param:openstack_version}
+ nova_service_host: ${_param:cluster_local_address}
+ nova_vncproxy_url: http://${_param:cluster_vip_address}:8060
+ neutron_version: ${_param:openstack_version}
+ neutron_service_host: ${_param:cluster_local_address}
+ metadata_password: password
+ mysql_admin_user: root
+ mysql_admin_password: opnfv_secret
+ mysql_cinder_password: opnfv_secret
+ mysql_ceilometer_password: opnfv_secret
+ mysql_glance_password: opnfv_secret
+ mysql_grafana_password: opnfv_secret
+ mysql_heat_password: opnfv_secret
+ mysql_keystone_password: opnfv_secret
+ mysql_neutron_password: opnfv_secret
+ mysql_nova_password: opnfv_secret
+ mysql_aodh_password: opnfv_secret
+ keystone_service_token: opnfv_secret
+ keystone_admin_password: opnfv_secret
+ keystone_ceilometer_password: opnfv_secret
+ keystone_cinder_password: opnfv_secret
+ keystone_glance_password: opnfv_secret
+ keystone_heat_password: opnfv_secret
+ keystone_keystone_password: opnfv_secret
+ keystone_neutron_password: opnfv_secret
+ keystone_nova_password: opnfv_secret
+ ceilometer_secret_key: opnfv_secret
+ metadata_password: opnfv_secret
+ horizon_version: ${_param:openstack_version}
+ horizon_secret_key: opaesee8Que2yahJoh9fo0eefo1Aeyo6ahyei8zeiboh3aeth5loth7ieNa5xi5e
+ horizon_identity_host: ${_param:cluster_vip_address}
+ horizon_identity_encryption: none
+ horizon_identity_version: 3
+ mongodb_server_replica_set: ceilometer
+ mongodb_ceilometer_password: cloudlab
+ mongodb_admin_password: cloudlab
+ mongodb_shared_key: eoTh1AwahlahqueingeejooLughah4tei9feing0eeVaephooDi2li1TaeV1ooth
+ aodh_version: ${_param:openstack_version}
+ keystone_aodh_password: opnfv_secret
+ aodh_service_host: 172.16.10.108
+ opendaylight_router: odl-router_v2
+ linux:
+ system:
+ repo:
+ uca:
+ source: "deb http://ubuntu-cloud.archive.canonical.com/ubuntu xenial-updates/ocata main"
+ architectures: amd64
+ key_id: EC4926EA
+ key_server: keyserver.ubuntu.com
+ kernel:
+ sysctl:
+ net.ipv4.tcp_congestion_control: yeah
+ net.ipv4.tcp_slow_start_after_idle: 0
+ net.ipv4.tcp_fin_timeout: 30
+ network:
+ host:
+ ctl:
+ address: ${_param:openstack_control_address}
+ names:
+ - ctl
+ - ctl.${_param:cluster_domain}
+ ctl01:
+ address: ${_param:openstack_control_node01_address}
+ names:
+ - ctl01
+ - ctl01.${_param:cluster_domain}
+ gtw01:
+ address: ${_param:openstack_gateway_address}
+ names:
+ - gtw01
+ - gtw01.${_param:cluster_domain}
+ cmp01:
+ address: 172.16.10.105
+ names:
+ - cmp01
+ - cmp01.${_param:cluster_domain}
+ cmp02:
+ address: 172.16.10.106
+ names:
+ - cmp02
+ - cmp02.${_param:cluster_domain}
+ odl01:
+ address: 172.16.10.111
+ names:
+ - odl01
+ - odl01.${_param:cluster_domain}
diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml
index 4ea51f36f..e8421caa3 100644
--- a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml
+++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml
@@ -25,7 +25,7 @@ parameters:
ovsdb_server_iface: ptcp:6639:127.0.0.1
ovsdb_odl_iface: tcp:${_param:opendaylight_service_host}:6640
tunnel_ip: ${_param:tenant_address}
- provider_mappings: br-floating:float-to-ex
+ provider_mappings: physnet1:br-floating
linux:
network:
bridge: openvswitch
diff --git a/mcp/reclass/classes/system b/mcp/reclass/classes/system
-Subproject 18f5a999f03e50de311ef8831ba51b001af3e92
+Subproject 6320d70d52fda38b989dfdb91621f52c16f27f9
diff --git a/mcp/salt-formulas/opendaylight/server.sls b/mcp/salt-formulas/opendaylight/server.sls
index cb5b3120c..8c6c3b28a 100644
--- a/mcp/salt-formulas/opendaylight/server.sls
+++ b/mcp/salt-formulas/opendaylight/server.sls
@@ -13,13 +13,13 @@ opendaylight:
- require_in:
- file: /opt/opendaylight/etc/jetty.xml
- file: /opt/opendaylight/bin/setenv
- - file: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+ - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
service.running:
- enable: true
- watch:
- file: /opt/opendaylight/etc/jetty.xml
- file: /opt/opendaylight/bin/setenv
- - file: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+ - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
/opt/opendaylight/etc/jetty.xml:
file.managed:
@@ -42,8 +42,20 @@ opendaylight:
{% endset %}
/opt/opendaylight/etc/org.apache.karaf.features.cfg:
- file.replace:
- - pattern: ^featuresBoot=.*$
- - repl: "featuresBoot={{ features }}"
+ ini.options_present:
+ - sections:
+ featuresBoot: {{ features }}
+
+{%- if server.get('router_enabled', false) %}
+/opt/opendaylight/etc/custom.properties:
+ ini.options_present:
+ - sections:
+ ovsdb.l3.fwd.enabled: 'yes'
+ ovsdb.of.version: 1.3
+ - require:
+ - pkg: opendaylight
+ - watch_in:
+ - service: opendaylight
+{%- endif %}
{%- endif %}