summaryrefslogtreecommitdiffstats
path: root/common/puppet-opnfv/manifests/network.pp
blob: 91e769378114f7e724c1e49876d1e0c37526d1b3 (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
#Copyright 2015 Open Platform for NFV Project, Inc. and its contributors
#
#   Licensed 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.


class opnfv::network {
  ###use 8081 as a default work around swift service
  if $odl_rest_port == '' {$odl_rest_port = '8081'}

  if ($odl_flag != '') and str2bool($odl_flag) {
     $ml2_mech_drivers = ['opendaylight']
     $this_agent = 'opendaylight'
     class {"opendaylight":
       odl_rest_port => $odl_rest_port,
       extra_features => ['odl-base-all', 'odl-aaa-authn', 'odl-restconf', 'odl-nsf-all', 'odl-adsal-northbound', 'odl-mdsal-apidocs', 'odl-ovsdb-openstack', 'odl-ovsdb-northbound', 'odl-dlux-core'],
     }
  }
  else {
    $ml2_mech_drivers = ['openvswitch','l2population']
    $this_agent = 'ovs'
  }



  if $ovs_tunnel_if == '' { fail('ovs_tunnel_if is empty') }
  if $private_ip == '' { fail('private_ip is empty') }

  if $odl_control_ip == '' { fail('odl_controL_ip is empty, should be the IP of your network node private interface') }

  if $mysql_ip == '' { fail('mysql_ip is empty') }
  if $amqp_ip == '' { fail('amqp_ip is empty') }

  if $nova_user_password == '' { fail('nova_user_password is empty') }
  if $nova_db_password == '' { fail('nova_db_password is empty') }

  if $neutron_user_password == '' { fail('neutron_user_password is empty') }
  if $neutron_db_password == '' { fail('neutron_db_password is empty') }
  if $neutron_metadata_shared_secret == '' { fail('neutron_metadata_shared_secret is empty') }

  class { "quickstack::neutron::networker":
    agent_type                    => $this_agent,
    neutron_metadata_proxy_secret => $neutron_metadata_shared_secret,
    neutron_db_password           => $neutron_db_password,
    neutron_user_password         => $neutron_user_password,
    nova_db_password              => $nova_db_password,
    nova_user_password            => $nova_user_password,

    controller_priv_host          => $private_ip,

    enable_tunneling              => true,
    ovs_tunnel_iface              => $ovs_tunnel_if,
    ovs_tunnel_network            => '',
    ovs_l2_population             => 'True',
    ovs_tunnel_types              => ['vxlan'],
    external_network_bridge       => 'br-ex',
    tenant_network_type           => 'vxlan',
    tunnel_id_ranges              => '1:1000',

    mysql_host                    => $mysql_ip,
    amqp_host                     => $amqp_ip,
    amqp_username                 => 'guest',
    amqp_password                 => 'guest',

    ml2_mechanism_drivers        => $ml2_mech_drivers,
    odl_controller_ip            => $odl_control_ip,
  }
}