aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Polenchuk <mpolenchuk@mirantis.com>2017-06-27 12:52:39 +0400
committerMichael Polenchuk <mpolenchuk@mirantis.com>2017-06-29 16:35:25 +0400
commit3fb5e5454045860463a92c18d4d859967002e6fb (patch)
tree7a68c5868e2f29dd1b57794dea4ea0921a630c24
parentcaad7b5e20d66fafb391a37f2bfefc2e654dad6c (diff)
Bring in opendaylight support
Change-Id: I2eed0cf19907f257be1cb4aee96528cc41f4843a Signed-off-by: Michael Polenchuk <mpolenchuk@mirantis.com>
-rw-r--r--mcp/metadata/service/opendaylight/server/single.yml8
-rw-r--r--mcp/metadata/service/opendaylight/support.yml11
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/config.yml68
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/infra/init.yml14
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/init.yml24
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/opendaylight/control.yml32
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/compute.yml81
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/control.yml82
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/gateway.yml95
-rw-r--r--mcp/reclass/classes/cluster/virtual-mcp-ocata-odl/openstack/init.yml123
-rw-r--r--mcp/reclass/nodes/cfg01.virtual-mcp-ocata-odl.local.yml10
-rw-r--r--mcp/salt-formulas/opendaylight/client.sls27
-rw-r--r--mcp/salt-formulas/opendaylight/files/jetty.xml107
-rw-r--r--mcp/salt-formulas/opendaylight/files/setenv.shell15
-rw-r--r--mcp/salt-formulas/opendaylight/init.sls5
-rw-r--r--mcp/salt-formulas/opendaylight/map.jinja27
-rw-r--r--mcp/salt-formulas/opendaylight/server.sls49
17 files changed, 778 insertions, 0 deletions
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 -%}
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//
+DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
+
+<Configure class="org.eclipse.jetty.server.Server">
+
+ <!-- =========================================================== -->
+ <!-- Set connectors -->
+ <!-- =========================================================== -->
+ <!-- One of each type! -->
+ <!-- =========================================================== -->
+
+ <!-- Use this connector for many frequently idle connections and for
+ threadless continuations. -->
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
+ <Set name="host">{{ server.odl_bind_ip }}
+ <Property name="jetty.host" />
+ </Set>
+ <Set name="port">
+ <Property name="jetty.port" default="8181" />
+ </Set>
+ <Set name="maxIdleTime">300000</Set>
+ <Set name="Acceptors">2</Set>
+ <Set name="statsOn">false</Set>
+ <Set name="confidentialPort">8543</Set>
+ <Set name="lowResourcesConnections">20000</Set>
+ <Set name="lowResourcesMaxIdleTime">5000</Set>
+ </New>
+ </Arg>
+ </Call>
+ <Call name="addConnector">
+ <Arg>
+ <New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
+ <Set name="host">{{ server.odl_bind_ip }}
+ <Property name="jetty.host" />
+ </Set>
+ <Set name="port">
+ <Property name="jetty.port" default="{{ server.odl_rest_port }}" />
+ </Set>
+ <Set name="maxIdleTime">300000</Set>
+ <Set name="Acceptors">2</Set>
+ <Set name="statsOn">false</Set>
+ <Set name="confidentialPort">8443</Set>
+ <Set name="lowResourcesConnections">20000</Set>
+ <Set name="lowResourcesMaxIdleTime">5000</Set>
+ </New>
+ </Arg>
+ </Call>
+
+ <!-- =========================================================== -->
+ <!-- Configure Authentication Realms -->
+ <!-- Realms may be configured for the entire server here, or -->
+ <!-- they can be configured for a specific web app in a context -->
+ <!-- configuration (see $(jetty.home)/contexts/test.xml for an -->
+ <!-- example). -->
+ <!-- =========================================================== -->
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
+ <Set name="name">karaf</Set>
+ <Set name="loginModuleName">karaf</Set>
+ <Set name="roleClassNames">
+ <Array type="java.lang.String">
+ <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+ <Call name="addBean">
+ <Arg>
+ <New class="org.eclipse.jetty.plus.jaas.JAASLoginService">
+ <Set name="name">default</Set>
+ <Set name="loginModuleName">karaf</Set>
+ <Set name="roleClassNames">
+ <Array type="java.lang.String">
+ <Item>org.apache.karaf.jaas.boot.principal.RolePrincipal
+ </Item>
+ </Array>
+ </Set>
+ </New>
+ </Arg>
+ </Call>
+
+</Configure>
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 %}