summaryrefslogtreecommitdiffstats
path: root/puppet/services/neutron-plugin-ml2.yaml
blob: 5dbae3dce9d993cb07231c3cc79fa143a886b381 (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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
heat_template_version: 2016-04-08

description: >
  OpenStack Neutron ML2 Plugin configured with Puppet

parameters:
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  DefaultPasswords:
    default: {}
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  NeutronMechanismDrivers:
    default: 'openvswitch'
    description: |
        The mechanism drivers for the Neutron tenant network.
    type: comma_delimited_list
  NeutronTypeDrivers:
    default: "vxlan,vlan,flat,gre"
    description: |
        Comma-separated list of network type driver entrypoints to be loaded.
    type: comma_delimited_list
  NeutronFlatNetworks:
    type: comma_delimited_list
    default: 'datacentre'
    description: If set, flat networks to configure in neutron plugins.
  NeutronPluginExtensions:
    default: "qos,port_security"
    description: |
        Comma-separated list of extensions enabled for the Neutron plugin.
    type: comma_delimited_list
  NeutronNetworkVLANRanges:
    default: 'datacentre:1:1000'
    description: >
      The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
      Neutron documentation for permitted values. Defaults to permitting any
      VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
    type: comma_delimited_list
  NeutronTunnelIdRanges:
    description: |
        Comma-separated list of <tun_min>:<tun_max> tuples enumerating ranges
        of GRE tunnel IDs that are available for tenant network allocation
    default: ["1:4094", ]
    type: comma_delimited_list
  NeutronVniRanges:
    description: |
        Comma-separated list of <vni_min>:<vni_max> tuples enumerating ranges
        of VXLAN VNI IDs that are available for tenant network allocation
    default: ["1:4094", ]
    type: comma_delimited_list
  NeutronNetworkType:
    default: 'vxlan'
    description: The tenant network type for Neutron.
    type: comma_delimited_list
  NeutronSupportedPCIVendorDevs:
    description: |
        List of supported pci vendor devices in the format VendorID:ProductID.
        By default Intel & Mellanox SR-IOV capable NICs are supported.
    type: comma_delimited_list
    default: ['15b3:1004','8086:10ca']
resources:

  NeutronBase:
    type: ./neutron-base.yaml
    properties:
      ServiceNetMap: {get_param: ServiceNetMap}
      DefaultPasswords: {get_param: DefaultPasswords}
      EndpointMap: {get_param: EndpointMap}

outputs:
  role_data:
    description: Role data for the Neutron ML2 plugin.
    value:
      service_name: neutron_plugin_ml2
      config_settings:
        map_merge:
          - get_attr: [NeutronBase, role_data, config_settings]
          - neutron::plugins::ml2::mechanism_drivers:
              str_replace:
                template: MECHANISMS
                params:
                  MECHANISMS: {get_param: NeutronMechanismDrivers}
            neutron::plugins::ml2::type_drivers:
              str_replace:
                template: DRIVERS
                params:
                  DRIVERS: {get_param: NeutronTypeDrivers}
            neutron::plugins::ml2::flat_networks:
              str_replace:
                template: NETWORKS
                params:
                  NETWORKS: {get_param: NeutronFlatNetworks}
            neutron::plugins::ml2::extension_drivers:
              str_replace:
                template: PLUGIN_EXTENSIONS
                params:
                  PLUGIN_EXTENSIONS: {get_param: NeutronPluginExtensions}
            neutron::plugins::ml2::network_vlan_ranges:
              str_replace:
                template: RANGES
                params:
                  RANGES: {get_param: NeutronNetworkVLANRanges}
            neutron::plugins::ml2::tunnel_id_ranges:
              str_replace:
                template: RANGES
                params:
                  RANGES: {get_param: NeutronTunnelIdRanges}
            neutron::plugins::ml2::vni_ranges:
              str_replace:
                template: RANGES
                params:
                  RANGES: {get_param: NeutronVniRanges}
            neutron::plugins::ml2::tenant_network_types:
              str_replace:
                template: TYPES
                params:
                  TYPES: {get_param: NeutronNetworkType}
            neutron::plugins::ml2::supported_pci_vendor_devs: {get_param: NeutronSupportedPCIVendorDevs}

      step_config: |
        include ::tripleo::profile::base::neutron::plugins::ml2