Merge "Make enabling of controller services configurable."

This commit is contained in:
Jenkins
2015-12-02 14:39:59 +00:00
committed by Gerrit Code Review
2 changed files with 179 additions and 127 deletions

View File

@@ -330,6 +330,22 @@ parameters:
default: 'dhcp-option-force=26,1400'
description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the gre tunnel overhead.
type: string
NeutronEnableDHCPAgent:
description: Knob to enable/disable DHCP Agent
type: boolean
default: true
NeutronEnableL3Agent:
description: Knob to enable/disable L3 agent
type: boolean
default: true
NeutronEnableMetadataAgent:
description: Knob to enable/disable Metadata agent
type: boolean
default: true
NeutronEnableOVSAgent:
description: Knob to enable/disable OVS Agent
type: boolean
default: true
NeutronAgentMode:
default: 'dvr_snat'
description: Agent mode for the neutron-l3-agent on the controller hosts
@@ -873,6 +889,10 @@ resources:
list_join:
- "','"
- {get_param: NeutronTypeDrivers}
neutron_enable_dhcp_agent: {get_param: NeutronEnableDHCPAgent}
neutron_enable_l3_agent: {get_param: NeutronEnableL3Agent}
neutron_enable_metadata_agent: {get_param: NeutronEnableMetadataAgent}
neutron_enable_ovs_agent: {get_param: NeutronEnableOVSAgent}
neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
neutron_l3_ha: {get_param: NeutronL3HA}
@@ -1213,6 +1233,10 @@ resources:
neutron_router_distributed: {get_input: neutron_router_distributed}
neutron::core_plugin: {get_input: neutron_core_plugin}
neutron::service_plugins: {get_input: neutron_service_plugins}
neutron::enable_dhcp_agent: {get_input: neutron_enable_dhcp_agent}
neutron::enable_l3_agent: {get_input: neutron_enable_l3_agent}
neutron::enable_metadata_agent: {get_input: neutron_enable_metadata_agent}
neutron::enable_ovs_agent: {get_input: neutron_enable_ovs_agent}
neutron::plugins::ml2::type_drivers: {get_input: neutron_type_drivers}
neutron_mechanism_drivers: {get_input: neutron_mechanism_drivers}
neutron::server::allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}

View File

@@ -599,37 +599,47 @@ if hiera('step') >= 3 {
enabled => false,
}
include ::neutron::server::notifications
class { '::neutron::agents::dhcp' :
manage_service => false,
enabled => false,
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
include ::neutron::plugins::nuage
}
class { '::neutron::agents::l3' :
manage_service => false,
enabled => false,
if hiera('neutron::enable_dhcp_agent',true) {
class { '::neutron::agents::dhcp' :
manage_service => false,
enabled => false,
}
file { '/etc/neutron/dnsmasq-neutron.conf':
content => hiera('neutron_dnsmasq_options'),
owner => 'neutron',
group => 'neutron',
notify => Service['neutron-dhcp-service'],
require => Package['neutron'],
}
}
class { '::neutron::agents::metadata':
manage_service => false,
enabled => false,
if hiera('neutron::enable_l3_agent',true) {
class { '::neutron::agents::l3' :
manage_service => false,
enabled => false,
}
}
file { '/etc/neutron/dnsmasq-neutron.conf':
content => hiera('neutron_dnsmasq_options'),
owner => 'neutron',
group => 'neutron',
notify => Service['neutron-dhcp-service'],
require => Package['neutron'],
if hiera('neutron::enable_metadata_agent',true) {
class { '::neutron::agents::metadata':
manage_service => false,
enabled => false,
}
}
class { '::neutron::plugins::ml2':
flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
mechanism_drivers => [hiera('neutron_mechanism_drivers')],
if hiera('neutron::core_plugin') == 'ml2' {
class { '::neutron::plugins::ml2':
flat_networks => split(hiera('neutron_flat_networks'), ','),
tenant_network_types => [hiera('neutron_tenant_network_type')],
mechanism_drivers => [hiera('neutron_mechanism_drivers')],
}
class { '::neutron::agents::ml2::ovs':
manage_service => false,
enabled => false,
bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
tunnel_types => split(hiera('neutron_tunnel_types'), ','),
}
}
class { '::neutron::agents::ml2::ovs':
manage_service => false,
enabled => false,
bridge_mappings => split(hiera('neutron_bridge_mappings'), ','),
tunnel_types => split(hiera('neutron_tunnel_types'), ','),
}
if 'cisco_ucsm' in hiera('neutron_mechanism_drivers') {
include ::neutron::plugins::ml2::cisco::ucsm
}
@@ -1067,59 +1077,69 @@ if hiera('step') >= 4 {
clone_params => 'interleave=true',
require => Pacemaker::Resource::Service[$::keystone::params::service_name],
}
pacemaker::resource::service { $::neutron::params::l3_agent_service:
clone_params => 'interleave=true',
if hiera('neutron::enable_l3_agent', true) {
pacemaker::resource::service { $::neutron::params::l3_agent_service:
clone_params => 'interleave=true',
}
}
pacemaker::resource::service { $::neutron::params::dhcp_agent_service:
clone_params => 'interleave=true',
if hiera('neutron::enable_dhcp_agent', true) {
pacemaker::resource::service { $::neutron::params::dhcp_agent_service:
clone_params => 'interleave=true',
}
}
pacemaker::resource::service { $::neutron::params::ovs_agent_service:
clone_params => 'interleave=true',
if hiera('neutron::enable_ovs_agent', true) {
pacemaker::resource::service { $::neutron::params::ovs_agent_service:
clone_params => 'interleave=true',
}
}
pacemaker::resource::service { $::neutron::params::metadata_agent_service:
clone_params => 'interleave=true',
}
pacemaker::resource::ocf { $::neutron::params::ovs_cleanup_service:
ocf_agent_name => 'neutron:OVSCleanup',
clone_params => 'interleave=true',
}
pacemaker::resource::ocf { 'neutron-netns-cleanup':
ocf_agent_name => 'neutron:NetnsCleanup',
clone_params => 'interleave=true',
if hiera('neutron::enable_metadata_agent', true) {
pacemaker::resource::service { $::neutron::params::metadata_agent_service:
clone_params => 'interleave=true',
}
}
if hiera('neutron::enable_ovs_agent', true) {
pacemaker::resource::ocf { $::neutron::params::ovs_cleanup_service:
ocf_agent_name => 'neutron:OVSCleanup',
clone_params => 'interleave=true',
}
pacemaker::resource::ocf { 'neutron-netns-cleanup':
ocf_agent_name => 'neutron:NetnsCleanup',
clone_params => 'interleave=true',
}
# neutron - one chain ovs-cleanup-->netns-cleanup-->ovs-agent
pacemaker::constraint::base { 'neutron-ovs-cleanup-to-netns-cleanup-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::ovs_cleanup_service}-clone",
second_resource => 'neutron-netns-cleanup-clone',
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Ocf[$::neutron::params::ovs_cleanup_service],
Pacemaker::Resource::Ocf['neutron-netns-cleanup']],
}
pacemaker::constraint::colocation { 'neutron-ovs-cleanup-to-netns-cleanup-colocation':
source => 'neutron-netns-cleanup-clone',
target => "${::neutron::params::ovs_cleanup_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Ocf[$::neutron::params::ovs_cleanup_service],
Pacemaker::Resource::Ocf['neutron-netns-cleanup']],
}
pacemaker::constraint::base { 'neutron-netns-cleanup-to-openvswitch-agent-constraint':
constraint_type => 'order',
first_resource => 'neutron-netns-cleanup-clone',
second_resource => "${::neutron::params::ovs_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Ocf['neutron-netns-cleanup'],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
}
pacemaker::constraint::colocation { 'neutron-netns-cleanup-to-openvswitch-agent-colocation':
source => "${::neutron::params::ovs_agent_service}-clone",
target => 'neutron-netns-cleanup-clone',
score => 'INFINITY',
require => [Pacemaker::Resource::Ocf['neutron-netns-cleanup'],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
# neutron - one chain ovs-cleanup-->netns-cleanup-->ovs-agent
pacemaker::constraint::base { 'neutron-ovs-cleanup-to-netns-cleanup-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::ovs_cleanup_service}-clone",
second_resource => 'neutron-netns-cleanup-clone',
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Ocf[$::neutron::params::ovs_cleanup_service],
Pacemaker::Resource::Ocf['neutron-netns-cleanup']],
}
pacemaker::constraint::colocation { 'neutron-ovs-cleanup-to-netns-cleanup-colocation':
source => 'neutron-netns-cleanup-clone',
target => "${::neutron::params::ovs_cleanup_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Ocf[$::neutron::params::ovs_cleanup_service],
Pacemaker::Resource::Ocf['neutron-netns-cleanup']],
}
pacemaker::constraint::base { 'neutron-netns-cleanup-to-openvswitch-agent-constraint':
constraint_type => 'order',
first_resource => 'neutron-netns-cleanup-clone',
second_resource => "${::neutron::params::ovs_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Ocf['neutron-netns-cleanup'],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
}
pacemaker::constraint::colocation { 'neutron-netns-cleanup-to-openvswitch-agent-colocation':
source => "${::neutron::params::ovs_agent_service}-clone",
target => 'neutron-netns-cleanup-clone',
score => 'INFINITY',
require => [Pacemaker::Resource::Ocf['neutron-netns-cleanup'],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
}
}
#another chain keystone-->neutron-server-->ovs-agent-->dhcp-->l3
@@ -1132,63 +1152,71 @@ if hiera('step') >= 4 {
require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
Pacemaker::Resource::Service[$::neutron::params::server_service]],
}
pacemaker::constraint::base { 'neutron-server-to-openvswitch-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::server_service}-clone",
second_resource => "${::neutron::params::ovs_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::server_service],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
if hiera('neutron::enable_ovs_agent',true) {
pacemaker::constraint::base { 'neutron-server-to-openvswitch-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::server_service}-clone",
second_resource => "${::neutron::params::ovs_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::server_service],
Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
}
}
pacemaker::constraint::base { 'neutron-openvswitch-agent-to-dhcp-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::ovs_agent_service}-clone",
second_resource => "${::neutron::params::dhcp_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service],
Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service]],
if hiera('neutron::enable_dhcp_agent',true) and hiera('neutron::enable_ovs_agent',true) {
pacemaker::constraint::base { 'neutron-openvswitch-agent-to-dhcp-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::ovs_agent_service}-clone",
second_resource => "${::neutron::params::dhcp_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service],
Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service]],
}
pacemaker::constraint::colocation { 'neutron-openvswitch-agent-to-dhcp-agent-colocation':
source => "${::neutron::params::dhcp_agent_service}-clone",
target => "${::neutron::params::ovs_agent_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service],
Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service]],
}
}
pacemaker::constraint::colocation { 'neutron-openvswitch-agent-to-dhcp-agent-colocation':
source => "${::neutron::params::dhcp_agent_service}-clone",
target => "${::neutron::params::ovs_agent_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service],
Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service]],
if hiera('neutron::enable_dhcp_agent',true) and hiera('l3_agent_service',true) {
pacemaker::constraint::base { 'neutron-dhcp-agent-to-l3-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::dhcp_agent_service}-clone",
second_resource => "${::neutron::params::l3_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]]
}
pacemaker::constraint::colocation { 'neutron-dhcp-agent-to-l3-agent-colocation':
source => "${::neutron::params::l3_agent_service}-clone",
target => "${::neutron::params::dhcp_agent_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]]
}
}
pacemaker::constraint::base { 'neutron-dhcp-agent-to-l3-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::dhcp_agent_service}-clone",
second_resource => "${::neutron::params::l3_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]],
}
pacemaker::constraint::colocation { 'neutron-dhcp-agent-to-l3-agent-colocation':
source => "${::neutron::params::l3_agent_service}-clone",
target => "${::neutron::params::dhcp_agent_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
Pacemaker::Resource::Service[$::neutron::params::l3_agent_service]],
}
pacemaker::constraint::base { 'neutron-l3-agent-to-metadata-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::l3_agent_service}-clone",
second_resource => "${::neutron::params::metadata_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]],
}
pacemaker::constraint::colocation { 'neutron-l3-agent-to-metadata-agent-colocation':
source => "${::neutron::params::metadata_agent_service}-clone",
target => "${::neutron::params::l3_agent_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]],
if hiera('neutron::enable_l3_agent',true) and hiera('neutron::enable_metadata_agent',true) {
pacemaker::constraint::base { 'neutron-l3-agent-to-metadata-agent-constraint':
constraint_type => 'order',
first_resource => "${::neutron::params::l3_agent_service}-clone",
second_resource => "${::neutron::params::metadata_agent_service}-clone",
first_action => 'start',
second_action => 'start',
require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]]
}
pacemaker::constraint::colocation { 'neutron-l3-agent-to-metadata-agent-colocation':
source => "${::neutron::params::metadata_agent_service}-clone",
target => "${::neutron::params::l3_agent_service}-clone",
score => 'INFINITY',
require => [Pacemaker::Resource::Service[$::neutron::params::l3_agent_service],
Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]]
}
}
# Nova