X-Git-Url: https://git.donarmstrong.com/?p=dsa-puppet.git;a=blobdiff_plain;f=3rdparty%2Fmodules%2Fneutron%2Fmanifests%2Fagents%2Fml2%2Fsriov.pp;fp=3rdparty%2Fmodules%2Fneutron%2Fmanifests%2Fagents%2Fml2%2Fsriov.pp;h=68e58000591d3ab456b383260e8680d0d2cbf446;hp=0000000000000000000000000000000000000000;hb=4631045ebb77ee8622f6fa09277a50c372bcc02e;hpb=3d4dc4fd9e59bd0e07646c99f6b356c7d9d859aa diff --git a/3rdparty/modules/neutron/manifests/agents/ml2/sriov.pp b/3rdparty/modules/neutron/manifests/agents/ml2/sriov.pp new file mode 100644 index 00000000..68e58000 --- /dev/null +++ b/3rdparty/modules/neutron/manifests/agents/ml2/sriov.pp @@ -0,0 +1,88 @@ +# +# Copyright (C) 2014 eNovance SAS +# +# Author: Emilien Macchi +# +# 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 : +# 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 : 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'], + } + +}