89 lines
2.8 KiB
Puppet
89 lines
2.8 KiB
Puppet
#
|
|
# Copyright (C) 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.
|
|
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'],
|
|
}
|
|
|
|
}
|