aboutsummaryrefslogtreecommitdiffstats
path: root/framework/scripts/installer/fuel/fuel-plugin-onos/deployment_scripts/puppet/manifests/neutron.pp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/scripts/installer/fuel/fuel-plugin-onos/deployment_scripts/puppet/manifests/neutron.pp')
-rw-r--r--framework/scripts/installer/fuel/fuel-plugin-onos/deployment_scripts/puppet/manifests/neutron.pp102
1 files changed, 102 insertions, 0 deletions
diff --git a/framework/scripts/installer/fuel/fuel-plugin-onos/deployment_scripts/puppet/manifests/neutron.pp b/framework/scripts/installer/fuel/fuel-plugin-onos/deployment_scripts/puppet/manifests/neutron.pp
new file mode 100644
index 00000000..df06bdb1
--- /dev/null
+++ b/framework/scripts/installer/fuel/fuel-plugin-onos/deployment_scripts/puppet/manifests/neutron.pp
@@ -0,0 +1,102 @@
+include onos
+
+Exec { path => [ "/bin/", "/sbin/" , "/usr/bin/", "/usr/sbin/" ] }
+
+$neutron_config = hiera_hash('quantum_settings')
+$nets = $neutron_config['predefined_networks']
+$net04_ext =
+ {"shared"=>false,
+ "L2"=>
+ {"network_type"=>"vxlan",
+ "router_ext"=>true,
+ "segment_id"=>"10000"},
+ "L3"=> $nets['net04_ext']['L3'],
+ "tenant"=>"admin"}
+$net04 =
+ {"shared"=>false,
+ "L2"=>
+ {"network_type"=>"vxlan",
+ "router_ext"=>false,
+ "segment_id"=>"500"},
+ "L3"=> $nets['net04']['L3'],
+ "tenant"=>"admin"}
+$roles = $onos::roles
+$network_type = 'vxlan'
+
+if member($roles, 'primary-controller') {
+cs_resource { 'p_neutron-l3-agent':
+ ensure => absent,
+ require => Exec ['stop neutron'],
+}->
+exec{ 'delete Neutron db':
+ command => "mysql -e 'drop database if exists neutron;';
+ mysql -e 'create database neutron character set utf8;';
+ mysql -e \"grant all on neutron.* to 'neutron'@'%';\";
+ neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini upgrade head;",
+ before => Service ['start neutron service'],
+}
+
+}
+
+
+
+exec{ 'stop neutron':
+ command => "service neutron-server stop",
+}
+package { 'install git':
+ ensure => installed,
+ name => "git",
+}->
+
+file{ "/opt/networking-onos.tar":
+ source => "puppet:///modules/onos/networking-onos.tar",
+}->
+file{ '/opt/onos_driver.sh':
+ source => "puppet:///modules/onos/onos_driver.sh",
+} ->
+exec{ 'install onos driver':
+ command => "sh /opt/onos_driver.sh;"
+}->
+
+neutron_config { 'DEFAULT/service_plugins':
+ value => 'onos_router,neutron.services.metering.metering_plugin.MeteringPlugin';
+}->
+
+
+neutron_plugin_ml2 {
+ 'ml2/mechanism_drivers': value => 'onos_ml2';
+ 'ml2/tenant_network_types': value => 'vxlan';
+ 'ml2_type_vxlan/vni_ranges': value => '100:50000';
+ 'onos/password': value => 'admin';
+ 'onos/username': value => 'admin';
+ 'onos/url_path': value => "http://${onos::manager_ip}:8181/onos/vtn";
+}->
+service {'start neutron service':
+ name => "neutron-server",
+ ensure => running
+}
+
+
+
+if member($roles, 'primary-controller') {
+
+ Service<| title == 'start neutron service' |> ->
+ Openstack::Network::Create_network <||>
+
+ Service<| title == 'start neutron service' |> ->
+ Openstack::Network::Create_router <||>
+
+openstack::network::create_network{'net04':
+ netdata => $net04,
+ segmentation_type => $network_type,
+} ->
+ openstack::network::create_network{'net04_ext':
+ netdata => $net04_ext,
+ segmentation_type => $network_type,
+} ->
+ openstack::network::create_router{'router04':
+ internal_network => 'net04',
+ external_network => 'net04_ext',
+ tenant_name => 'admin',
+}
+}