Puppet Class: neutron::agents::ml2::sriov

Defined in:
manifests/agents/ml2/sriov.pp

Overview

Copyright © 2014 eNovance SAS <licensing@enovance.com>

Author: Emilien Macchi <emilien.macchi@enovance.com>

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: neutron::agents::ml2::sriov

Setups SR-IOV neutron agent when using ML2 plugin

Parameters

package_ensure

(optional) The state of the package Defaults to ‘present’

enabled

(required) Whether or not to enable the OVS Agent Defaults to true

physical_device_mappings

(optional) List of <physical_network>:<physical device> All physical networks listed in network_vlan_ranges on the server should have mappings to appropriate interfaces on each agent. Defaults to empty list

polling_interval

(optional) The number of seconds the agent will wait between polling for local device changes. Defaults to ‘2“

exclude_devices

(optional) List of <network_device>:<excluded_devices> mapping network_device to the agent’s node-specific list of virtual functions that should not be used for virtual networking. excluded_devices is a semicolon separated list of virtual functions to exclude from network_device. The network_device in the mapping should appear in the physical_device_mappings list.

Parameters:

  • package_ensure (Any) (defaults to: 'present')
  • enabled (Any) (defaults to: true)
  • physical_device_mappings (Any) (defaults to: [])
  • polling_interval (Any) (defaults to: 2)
  • exclude_devices (Any) (defaults to: [])


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
# File 'manifests/agents/ml2/sriov.pp', line 50

class neutron::agents::ml2::sriov (
  $package_ensure             = 'present',
  $enabled                    = true,
  $physical_device_mappings   = [],
  $polling_interval           = 2,
  $exclude_devices            = [],
) {

  include neutron::params

  Neutron_plugin_ml2<||> ~> Service['neutron-sriov-nic-agent-service']

  neutron_plugin_ml2 {
    'sriov_nic/polling_interval':         value => $polling_interval;
    'sriov_nic/exclude_devices':          value => join($exclude_devices, ',');
    'sriov_nic/physical_device_mappings': value => join($physical_device_mappings, ',');
  }


  Package['neutron-sriov-nic-agent'] -> Neutron_plugin_ml2<||>
  package { 'neutron-sriov-nic-agent':
    ensure  => $package_ensure,
    name    => $::neutron::params::sriov_nic_agent_package,
  }

  if $enabled {
    $service_ensure = 'running'
  } else {
    $service_ensure = 'stopped'
  }

  service { 'neutron-sriov-nic-agent-service':
    ensure  => $service_ensure,
    name    => $::neutron::params::sriov_nic_agent_service,
    enable  => $enabled,
    require => Class['neutron'],
  }

}