From df50704b226a11f6ce9d0a46b178a5b8e8cd0284 Mon Sep 17 00:00:00 2001 From: Michael Polenchuk Date: Fri, 14 Jul 2017 11:11:32 +0400 Subject: Bring in opendaylight L3/router scenario Change-Id: I8a3be1764de136e2ecf81f964233483be5d6655a Signed-off-by: Michael Polenchuk --- mcp/config/os-odl_l2-nofeature-noha.yaml | 1 + mcp/config/os-odl_l3-nofeature-noha.yaml | 22 ++++ mcp/patches/0001-opendaylight-reclass-system.patch | 6 +- .../0002-opendaylight-formula-neutron.patch | 64 +++++++++- .../virtual-mcp-ocata-odl-router/infra/config.yml | 69 +++++++++++ .../virtual-mcp-ocata-odl-router/infra/init.yml | 14 +++ .../cluster/virtual-mcp-ocata-odl-router/init.yml | 24 ++++ .../opendaylight/control.yml | 33 +++++ .../openstack/compute.yml | 86 +++++++++++++ .../openstack/control.yml | 102 ++++++++++++++++ .../openstack/gateway.yml | 94 ++++++++++++++ .../openstack/init.yml | 135 +++++++++++++++++++++ .../virtual-mcp-ocata-odl/openstack/gateway.yml | 2 +- mcp/reclass/classes/system | 2 +- mcp/salt-formulas/opendaylight/server.sls | 22 +++- 15 files changed, 659 insertions(+), 17 deletions(-) create mode 100644 mcp/config/os-odl_l3-nofeature-noha.yaml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/config.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/infra/init.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/init.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/opendaylight/control.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/compute.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/control.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/gateway.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl-router/openstack/init.yml 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 = ++ ++{%- 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 index 18f5a999f..6320d70d5 160000 --- a/mcp/reclass/classes/system +++ b/mcp/reclass/classes/system @@ -1 +1 @@ -Subproject commit 18f5a999f03e50de311ef8831ba51b001af3e92c +Subproject commit 6320d70d52fda38b989dfdb91621f52c16f27f97 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 %} -- cgit 1.2.3-korg