aboutsummaryrefslogtreecommitdiffstats
path: root/framework/scripts/installer/fuel/fuel-plugin-onos/deployment_scripts/puppet/manifests/neutron.pp
blob: df06bdb1c35b34e083e7e01b0bf379d1c2dd40a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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',
}
}