From 3fb5e5454045860463a92c18d4d859967002e6fb Mon Sep 17 00:00:00 2001 From: Michael Polenchuk Date: Tue, 27 Jun 2017 12:52:39 +0400 Subject: Bring in opendaylight support Change-Id: I2eed0cf19907f257be1cb4aee96528cc41f4843a Signed-off-by: Michael Polenchuk --- .../service/opendaylight/server/single.yml | 8 ++ mcp/metadata/service/opendaylight/support.yml | 11 ++ .../cluster/virtual-mcp-ocata-odl/infra/config.yml | 68 ++++++++++++ .../cluster/virtual-mcp-ocata-odl/infra/init.yml | 14 +++ .../classes/cluster/virtual-mcp-ocata-odl/init.yml | 24 ++++ .../virtual-mcp-ocata-odl/opendaylight/control.yml | 32 ++++++ .../virtual-mcp-ocata-odl/openstack/compute.yml | 81 ++++++++++++++ .../virtual-mcp-ocata-odl/openstack/control.yml | 82 ++++++++++++++ .../virtual-mcp-ocata-odl/openstack/gateway.yml | 95 ++++++++++++++++ .../virtual-mcp-ocata-odl/openstack/init.yml | 123 +++++++++++++++++++++ .../nodes/cfg01.virtual-mcp-ocata-odl.local.yml | 10 ++ mcp/salt-formulas/opendaylight/client.sls | 27 +++++ mcp/salt-formulas/opendaylight/files/jetty.xml | 107 ++++++++++++++++++ mcp/salt-formulas/opendaylight/files/setenv.shell | 15 +++ mcp/salt-formulas/opendaylight/init.sls | 5 + mcp/salt-formulas/opendaylight/map.jinja | 27 +++++ mcp/salt-formulas/opendaylight/server.sls | 49 ++++++++ 17 files changed, 778 insertions(+) create mode 100644 mcp/metadata/service/opendaylight/server/single.yml create mode 100644 mcp/metadata/service/opendaylight/support.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/init.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/init.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml create mode 100644 mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/init.yml create mode 100644 mcp/reclass/nodes/cfg01.virtual-mcp-ocata-odl.local.yml create mode 100644 mcp/salt-formulas/opendaylight/client.sls create mode 100644 mcp/salt-formulas/opendaylight/files/jetty.xml create mode 100644 mcp/salt-formulas/opendaylight/files/setenv.shell create mode 100644 mcp/salt-formulas/opendaylight/init.sls create mode 100644 mcp/salt-formulas/opendaylight/map.jinja create mode 100644 mcp/salt-formulas/opendaylight/server.sls (limited to 'mcp') diff --git a/mcp/metadata/service/opendaylight/server/single.yml b/mcp/metadata/service/opendaylight/server/single.yml new file mode 100644 index 000000000..4ee0aafde --- /dev/null +++ b/mcp/metadata/service/opendaylight/server/single.yml @@ -0,0 +1,8 @@ +applications: +- opendaylight +parameters: + opendaylight: + server: + enabled: True + logging: + engine: syslog diff --git a/mcp/metadata/service/opendaylight/support.yml b/mcp/metadata/service/opendaylight/support.yml new file mode 100644 index 000000000..0e992367e --- /dev/null +++ b/mcp/metadata/service/opendaylight/support.yml @@ -0,0 +1,11 @@ +parameters: + opendaylight: + _support: + collectd: + enabled: false + heka: + enabled: false + sensu: + enabled: false + sphinx: + enabled: false diff --git a/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml new file mode 100644 index 000000000..4fbc7871c --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml @@ -0,0 +1,68 @@ +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 +parameters: + _param: + openstack_control_node01_hostname: ctl01 + reclass_data_repository: https://gerrit.opnfv.org/gerrit/fuel + reclass_data_revision: master + 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: + 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/infra/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/init.yml new file mode 100644 index 000000000..9140bd0bc --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/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/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/init.yml new file mode 100644 index 000000000..868661363 --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/init.yml @@ -0,0 +1,24 @@ +classes: +- system.linux.system.single +- cluster.virtual-mcp-ocata-odl.infra +- cluster.virtual-mcp-ocata-odl.openstack + +parameters: + _param: + cluster_domain: virtual-mcp-ocata-odl.local + cluster_name: virtual-mcp-ocata-odl + # 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/opendaylight/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml new file mode 100644 index 000000000..6c6640a4f --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml @@ -0,0 +1,32 @@ +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 +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 + 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/openstack/compute.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml new file mode 100644 index 000000000..f0aed44e4 --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml @@ -0,0 +1,81 @@ +classes: +- system.linux.system.repo.mcp.openstack +- system.linux.system.repo.mcp.extra +- system.linux.system.repo.saltstack.xenial +- system.nova.compute.single +- system.neutron.control.opendaylight.single +- service.neutron.compute.single +- cluster.virtual-mcp-ocata-odl +parameters: + _param: + primary_interface: ens4 + tenant_interface: ens5 + external_interface: ens6 + interface_mtu: 9000 + linux_system_codename: xenial + 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} + 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: br-floating:float-to-ex + 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 + 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/openstack/control.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml new file mode 100644 index 000000000..c8b6480cc --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml @@ -0,0 +1,82 @@ +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.openvswitch.single +- system.cinder.control.single +- 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 +- cluster.virtual-mcp-ocata-odl +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 + 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 + mysql: + server: + version: '5.7' + bind: + address: ${_param:cluster_local_address} 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 new file mode 100644 index 000000000..522998d24 --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml @@ -0,0 +1,95 @@ +classes: +- system.linux.system.repo.mcp.openstack +- system.linux.system.repo.mcp.extra +- system.linux.system.repo.saltstack.xenial +- system.neutron.control.opendaylight.single +- service.neutron.gateway.single +- cluster.virtual-mcp-ocata-odl +parameters: + _param: + primary_interface: ens4 + tenant_interface: ens5 + external_interface: ens6 + interface_mtu: 9000 + linux_system_codename: xenial + neutron: + gateway: + agent_mode: ${_param:neutron_gateway_agent_mode} + 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: br-floating:float-to-ex + 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 + 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/openstack/init.yml b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/init.yml new file mode 100644 index 000000000..73445ac07 --- /dev/null +++ b/mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/init.yml @@ -0,0 +1,123 @@ +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: 172.16.10.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:single_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_vip_address} + keystone_version: ${_param:openstack_version} + keystone_service_host: ${_param:cluster_vip_address} + heat_version: ${_param:openstack_version} + heat_service_host: ${_param:cluster_vip_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_vip_address} + ceilometer_graphite_publisher_host: 172.16.10.107 + ceilometer_graphite_publisher_port: 2013 + nova_version: ${_param:openstack_version} + nova_service_host: ${_param:cluster_vip_address} + nova_vncproxy_url: http://${_param:cluster_vip_address}:8060 + neutron_version: ${_param:openstack_version} + neutron_service_host: ${_param:cluster_vip_address} + glusterfs_service_host: ${_param:cluster_vip_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 + linux: + 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/nodes/cfg01.virtual-mcp-ocata-odl.local.yml b/mcp/reclass/nodes/cfg01.virtual-mcp-ocata-odl.local.yml new file mode 100644 index 000000000..4e168e416 --- /dev/null +++ b/mcp/reclass/nodes/cfg01.virtual-mcp-ocata-odl.local.yml @@ -0,0 +1,10 @@ +classes: +- cluster.virtual-mcp-ocata-odl.infra.config +parameters: + _param: + linux_system_codename: xenial + reclass_data_revision: master + linux: + system: + name: cfg01 + domain: virtual-mcp-ocata-odl.local diff --git a/mcp/salt-formulas/opendaylight/client.sls b/mcp/salt-formulas/opendaylight/client.sls new file mode 100644 index 000000000..1abe8743f --- /dev/null +++ b/mcp/salt-formulas/opendaylight/client.sls @@ -0,0 +1,27 @@ +{%- from "opendaylight/map.jinja" import client with context %} +{%- if client.get('enabled', True) %} + +opendaylight_client_packages: + pkg.installed: + - pkgs: {{ client.pkgs }} + +ovs_set_manager: + cmd.run: + - name: "ovs-vsctl set-manager {{ client.ovsdb_server_iface }} {{ client.ovsdb_odl_iface }}" + - unless: "ovs-vsctl get-manager | fgrep -x {{ client.ovsdb_odl_iface }}" + +ovs_set_tunnel_endpoint: + cmd.run: + - name: "ovs-vsctl set Open_vSwitch . other_config:local_ip={{ client.tunnel_ip }}" + - unless: "ovs-vsctl get Open_vSwitch . other_config | fgrep local_ip" + - require: + - cmd: ovs_set_manager + +ovs_set_provider_mapping: + cmd.run: + - name: "ovs-vsctl set Open_vSwitch . other_config:provider_mappings={{ client.provider_mappings }}" + - unless: "ovs-vsctl get Open_vSwitch . other_config | fgrep provider_mappings" + - require: + - cmd: ovs_set_manager + +{%- endif %} diff --git a/mcp/salt-formulas/opendaylight/files/jetty.xml b/mcp/salt-formulas/opendaylight/files/jetty.xml new file mode 100644 index 000000000..062568c54 --- /dev/null +++ b/mcp/salt-formulas/opendaylight/files/jetty.xml @@ -0,0 +1,107 @@ +{%- from "opendaylight/map.jinja" import server with context -%} + + + + + + + + + + + + + + + + + {{ server.odl_bind_ip }} + + + + + + 300000 + 2 + false + 8543 + 20000 + 5000 + + + + + + + {{ server.odl_bind_ip }} + + + + + + 300000 + 2 + false + 8443 + 20000 + 5000 + + + + + + + + + + + + + + + karaf + karaf + + + org.apache.karaf.jaas.boot.principal.RolePrincipal + + + + + + + + + + default + karaf + + + org.apache.karaf.jaas.boot.principal.RolePrincipal + + + + + + + + diff --git a/mcp/salt-formulas/opendaylight/files/setenv.shell b/mcp/salt-formulas/opendaylight/files/setenv.shell new file mode 100644 index 000000000..972bbeff4 --- /dev/null +++ b/mcp/salt-formulas/opendaylight/files/setenv.shell @@ -0,0 +1,15 @@ +{%- from "opendaylight/map.jinja" import server with context -%} +# export JAVA_HOME # Location of Java installation +export JAVA_MIN_MEM={{ server.java_min_mem }} # Minimum memory for the JVM +export JAVA_MAX_MEM={{ server.java_max_mem }} # Maximum memory for the JVM +# export JAVA_PERM_MEM # Minimum perm memory for the JVM +export JAVA_MAX_PERM_MEM=512m # Maximum perm memory for the JVM +export EXTRA_JAVA_OPTS='{{ server.java_extra_opts }}' # Additional JVM options +# export KARAF_HOME # Karaf home folder +# export KARAF_DATA # Karaf data folder +# export KARAF_BASE # Karaf base folder +# export KARAF_ETC # Karaf etc folder +# export KARAF_OPTS # Additional available Karaf options +# export KARAF_DEBUG # Enable debug mode +# export KARAF_REDIRECT # Enable/set the std/err redirection when using bin/start + diff --git a/mcp/salt-formulas/opendaylight/init.sls b/mcp/salt-formulas/opendaylight/init.sls new file mode 100644 index 000000000..17feb15e7 --- /dev/null +++ b/mcp/salt-formulas/opendaylight/init.sls @@ -0,0 +1,5 @@ + +include: +{% if pillar.opendaylight.server is defined %} +- opendaylight.server +{% endif %} diff --git a/mcp/salt-formulas/opendaylight/map.jinja b/mcp/salt-formulas/opendaylight/map.jinja new file mode 100644 index 000000000..0f6bf3c7e --- /dev/null +++ b/mcp/salt-formulas/opendaylight/map.jinja @@ -0,0 +1,27 @@ + +{% set server = salt['grains.filter_by']({ + 'Debian': { + 'karaf_features': {'default': ['config', 'standard', 'region', 'package', 'kar', 'ssh', 'management']}, + 'odl_rest_port': '8282', + 'odl_bind_ip': '0.0.0.0', + 'repo': 'odl-team/carbon', + 'log_levels': {}, + 'enable_ha': false, + 'ha_node_ips': [], + 'ha_node_index': 0, + 'security_group_mode': 'stateful', + 'vpp_routing_node': '', + 'java_extra_opts': '-Djava.net.preferIPv4Stack=true -XX:+UseG1GC', + 'java_min_mem': '1g', + 'java_max_mem': '2g', + }, + 'RedHat': { + 'repo': 'opendaylight-6-testing' + }, +}, merge=salt['pillar.get']('opendaylight:server')) %} + +{%- set client = salt['grains.filter_by']({ + 'Debian': { + 'pkgs': ['python-networking-odl'], + }, +}, merge=salt['pillar.get']('opendaylight:client')) %} diff --git a/mcp/salt-formulas/opendaylight/server.sls b/mcp/salt-formulas/opendaylight/server.sls new file mode 100644 index 000000000..cb5b3120c --- /dev/null +++ b/mcp/salt-formulas/opendaylight/server.sls @@ -0,0 +1,49 @@ +{% from "opendaylight/map.jinja" import server with context %} + +{%- if server.enabled %} + +opendaylight_repo: + pkgrepo.managed: + - ppa: {{ server.repo }} + +opendaylight: + pkg.installed: + - require: + - pkgrepo: opendaylight_repo + - require_in: + - file: /opt/opendaylight/etc/jetty.xml + - file: /opt/opendaylight/bin/setenv + - file: /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 + +/opt/opendaylight/etc/jetty.xml: + file.managed: + - source: salt://opendaylight/files/jetty.xml + - template: jinja + - user: odl + - group: odl + +/opt/opendaylight/bin/setenv: + file.managed: + - source: salt://opendaylight/files/setenv.shell + - mode: 0755 + - use: + - file: /opt/opendaylight/etc/jetty.xml + +{% set features %} +{%- for f in server.karaf_features.itervalues() -%} +{{ f | join(',') }}{%- if not loop.last %},{%- endif %} +{%- endfor %} +{% endset %} + +/opt/opendaylight/etc/org.apache.karaf.features.cfg: + file.replace: + - pattern: ^featuresBoot=.*$ + - repl: "featuresBoot={{ features }}" + +{%- endif %} -- cgit 1.2.3-korg