Add neutron agent ovs with ml2 plugin resource
Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
This commit is contained in:
parent
696e0445ed
commit
1d990bb341
74
resources/neutron_agents_ml2_ovs_puppet/README.md
Normal file
74
resources/neutron_agents_ml2_ovs_puppet/README.md
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# Neutron OVS agent with ML2 plugin puppet resource
|
||||||
|
|
||||||
|
Setups OVS neutron agent when using ML2 plugin
|
||||||
|
|
||||||
|
# === Parameters
|
||||||
|
|
||||||
|
source https://github.com/openstack/puppet-neutron/blob/5.1.0/manifests/agents/ml2/ovs.pp
|
||||||
|
|
||||||
|
``package_ensure``
|
||||||
|
(optional) The state of the package
|
||||||
|
Defaults to 'present'
|
||||||
|
|
||||||
|
``enabled``
|
||||||
|
(required) Whether or not to enable the OVS Agent
|
||||||
|
Defaults to true
|
||||||
|
|
||||||
|
``bridge_uplinks``
|
||||||
|
(optional) List of interfaces to connect to the bridge when doing
|
||||||
|
bridge mapping.
|
||||||
|
Defaults to empty list
|
||||||
|
|
||||||
|
``bridge_mapping``
|
||||||
|
(optional) List of <physical_network>:<bridge>
|
||||||
|
Defaults to empty list
|
||||||
|
|
||||||
|
``integration_bridge``
|
||||||
|
(optional) Integration bridge in OVS
|
||||||
|
Defaults to 'br-int'
|
||||||
|
|
||||||
|
``enable_tunneling``
|
||||||
|
(optional) Enable or not tunneling
|
||||||
|
Defaults to false
|
||||||
|
|
||||||
|
``tunnel_types``
|
||||||
|
(optional) List of types of tunnels to use when utilizing tunnels,
|
||||||
|
either 'gre' or 'vxlan'.
|
||||||
|
Defaults to false
|
||||||
|
|
||||||
|
``local_ip``
|
||||||
|
(optional) Local IP address of GRE tunnel endpoints.
|
||||||
|
Required when enabling tunneling
|
||||||
|
Defaults to false
|
||||||
|
|
||||||
|
``tunnel_bridge``
|
||||||
|
(optional) Bridge used to transport tunnels
|
||||||
|
Defaults to 'br-tun'
|
||||||
|
|
||||||
|
``vxlan_udp_port``
|
||||||
|
(optional) The UDP port to use for VXLAN tunnels.
|
||||||
|
Defaults to '4789'
|
||||||
|
|
||||||
|
``polling_interval``
|
||||||
|
(optional) The number of seconds the agent will wait between
|
||||||
|
polling for local device changes.
|
||||||
|
Defaults to '2"
|
||||||
|
|
||||||
|
``l2_population``
|
||||||
|
(optional) Extension to use alongside ml2 plugin's l2population
|
||||||
|
mechanism driver.
|
||||||
|
Defaults to false
|
||||||
|
|
||||||
|
``arp_responder``
|
||||||
|
(optional) Enable or not the ARP responder.
|
||||||
|
Recommanded when using l2 population mechanism driver.
|
||||||
|
Defaults to false
|
||||||
|
|
||||||
|
``firewall_driver``
|
||||||
|
(optional) Firewall driver for realizing neutron security group function.
|
||||||
|
Defaults to 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver'.
|
||||||
|
|
||||||
|
``enable_distributed_routing``
|
||||||
|
(optional) Set to True on L2 agents to enable support
|
||||||
|
for distributed virtual routing.
|
||||||
|
Defaults to false
|
@ -0,0 +1,4 @@
|
|||||||
|
class { 'neutron::agents::ml2::ovs':
|
||||||
|
package_ensure => 'absent',
|
||||||
|
enabled => false,
|
||||||
|
}
|
45
resources/neutron_agents_ml2_ovs_puppet/actions/run.pp
Normal file
45
resources/neutron_agents_ml2_ovs_puppet/actions/run.pp
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
$resource = hiera($::resource_name)
|
||||||
|
|
||||||
|
$ip = $resource['input']['ip']['value']
|
||||||
|
|
||||||
|
$package_ensure = $resource['input']['package_ensure']['value']
|
||||||
|
$enabled = $resource['input']['enabled']['value']
|
||||||
|
$bridge_uplinks = $resource['input']['bridge_uplinks']['value']
|
||||||
|
$bridge_mappings = $resource['input']['bridge_mappings']['value']
|
||||||
|
$integration_bridge = $resource['input']['integration_bridge']['value']
|
||||||
|
$enable_tunneling = $resource['input']['enable_tunneling']['value']
|
||||||
|
$tunnel_types = $resource['input']['tunnel_types']['value']
|
||||||
|
$local_ip = $resource['input']['local_ip']['value']
|
||||||
|
$tunnel_bridge = $resource['input']['tunnel_bridge']['value']
|
||||||
|
$vxlan_udp_port = $resource['input']['vxlan_udp_port']['value']
|
||||||
|
$polling_interval = $resource['input']['polling_interval']['value']
|
||||||
|
$l2_population = $resource['input']['l2_population']['value']
|
||||||
|
$arp_responder = $resource['input']['arp_responder']['value']
|
||||||
|
$firewall_driver = $resource['input']['firewall_driver']['value']
|
||||||
|
$enable_distributed_routing = $resource['input']['enable_distributed_routing']['value']
|
||||||
|
|
||||||
|
class { 'neutron::agents::ml2::ovs':
|
||||||
|
enabled => true,
|
||||||
|
package_ensure => $package_ensure,
|
||||||
|
bridge_uplinks => $bridge_uplinks,
|
||||||
|
bridge_mappings => $bridge_mappings,
|
||||||
|
integration_bridge => $integration_bridge,
|
||||||
|
enable_tunneling => $enable_tunneling,
|
||||||
|
tunnel_types => $tunnel_types,
|
||||||
|
local_ip => $local_ip,
|
||||||
|
tunnel_bridge => $tunnel_bridge,
|
||||||
|
vxlan_udp_port => $vxlan_udp_port,
|
||||||
|
polling_interval => $polling_interval,
|
||||||
|
l2_population => $l2_population,
|
||||||
|
arp_responder => $arp_responder,
|
||||||
|
firewall_driver => $firewall_driver,
|
||||||
|
enable_distributed_routing => $enable_distributed_routing,
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove external class dependency and restore required ones
|
||||||
|
Service <| title == 'neutron-ovs-agent-service' |> {
|
||||||
|
require => undef
|
||||||
|
}
|
||||||
|
Neutron_plugin_ml2<||> ~> Service['neutron-ovs-agent-service']
|
||||||
|
File['/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini'] ~>
|
||||||
|
Service<| title == 'neutron-ovs-agent-service' |>
|
66
resources/neutron_agents_ml2_ovs_puppet/meta.yaml
Normal file
66
resources/neutron_agents_ml2_ovs_puppet/meta.yaml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
handler: puppet
|
||||||
|
id: 'neutron_agents_ml2_ovs_puppet'
|
||||||
|
input:
|
||||||
|
ip:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
ssh_key:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
ssh_user:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
|
||||||
|
package_ensure:
|
||||||
|
schema: str
|
||||||
|
value: 'present'
|
||||||
|
enabled:
|
||||||
|
schema: bool
|
||||||
|
value: true
|
||||||
|
bridge_uplinks:
|
||||||
|
schema: [str]
|
||||||
|
value: []
|
||||||
|
bridge_mappings:
|
||||||
|
schema: [str]
|
||||||
|
value: []
|
||||||
|
integration_bridge:
|
||||||
|
schema: str
|
||||||
|
value: 'br-int'
|
||||||
|
enable_tunneling:
|
||||||
|
schema: bool
|
||||||
|
value: false
|
||||||
|
tunnel_types:
|
||||||
|
schema: [str]
|
||||||
|
value: []
|
||||||
|
local_ip:
|
||||||
|
schema: bool
|
||||||
|
value: false
|
||||||
|
tunnel_bridge:
|
||||||
|
schema: str
|
||||||
|
value: 'br-tun'
|
||||||
|
vxlan_udp_port:
|
||||||
|
schema: int
|
||||||
|
value: 4789
|
||||||
|
polling_interval:
|
||||||
|
schema: int
|
||||||
|
value: 2
|
||||||
|
l2_population:
|
||||||
|
schema: bool
|
||||||
|
value: false
|
||||||
|
arp_responder:
|
||||||
|
schema: bool
|
||||||
|
value: false
|
||||||
|
firewall_driver:
|
||||||
|
schema: str
|
||||||
|
value: 'neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver'
|
||||||
|
enable_distributed_routing:
|
||||||
|
schema: bool
|
||||||
|
value: false
|
||||||
|
|
||||||
|
git:
|
||||||
|
schema: {repository: str!, branch: str!}
|
||||||
|
value: {repository: 'https://github.com/openstack/puppet-neutron', branch: '5.1.0'}
|
||||||
|
|
||||||
|
puppet_module: 'neutron'
|
||||||
|
tags: [resource/neutron, resource/neutron_agents_ml2_ovs]
|
||||||
|
version: 1.0.0
|
Loading…
x
Reference in New Issue
Block a user