MidoNet heat templates
Deploy a TripleO overcloud with networking midonet. MidoNet is a monolithic plugin and quite changes on the puppet manifest must be done. Depends-On: I72f21036fda795b54312a7d39f04c30bbf16c41b Depends-On: I6f1ac659297b8cf6671e11ad23284f8f543568b0 Depends-On: Icea9bd96e4c80a26b9e813d383f84099c736d7bf Change-Id: I9692e2ef566ea37e0235a6059b1ae1ceeb9725ba
This commit is contained in:
parent
0284f863a9
commit
de90b568fc
20
environments/neutron-midonet.yaml
Normal file
20
environments/neutron-midonet.yaml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# A Heat environment that can be used to deploy MidoNet Services
|
||||||
|
resource_registry:
|
||||||
|
OS::TripleO::AllNodesExtraConfig: ../puppet/extraconfig/all_nodes/neutron-midonet-all-nodes.yaml
|
||||||
|
OS::TripleO::Controller::Net::SoftwareConfig: ../net-config-linux-bridge.yaml # We have to avoid any ovs bridge. MidoNet is incompatible with its datapath
|
||||||
|
|
||||||
|
parameter_defaults:
|
||||||
|
EnableZookeeperOnController: true
|
||||||
|
EnableCassandraOnController: true
|
||||||
|
NeutronCorePlugin: 'midonet.neutron.plugin_v1.MidonetPluginV2' # Overriding default core_plugin in Neutron. Don't touch it
|
||||||
|
NeutronEnableIsolatedMetadata: true # MidoNet 1.9 needs this one to work. Don't change it
|
||||||
|
NeutronEnableL3Agent: false
|
||||||
|
NeutronEnableOVSAgent: false
|
||||||
|
|
||||||
|
# Other available options for MidoNet Services
|
||||||
|
# TunnelZoneName: 'tunnelname'
|
||||||
|
# TunnelZoneType: 'gre'
|
||||||
|
# CassandraStoragePort: 7000
|
||||||
|
# CassandraSslStoragePort: 7009
|
||||||
|
# CassandraClientPort: 9042
|
||||||
|
# CassandraClientPortThrift: 9160
|
@ -404,6 +404,7 @@ resources:
|
|||||||
- common
|
- common
|
||||||
- cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
|
- cisco_n1kv_data # Optionally provided by ComputeExtraConfigPre
|
||||||
- nova_nuage_data # Optionally provided by ComputeExtraConfigPre
|
- nova_nuage_data # Optionally provided by ComputeExtraConfigPre
|
||||||
|
- midonet_data # Optionally provided by AllNodesExtraConfig
|
||||||
datafiles:
|
datafiles:
|
||||||
compute_extraconfig:
|
compute_extraconfig:
|
||||||
mapped_data: {get_param: NovaComputeExtraConfig}
|
mapped_data: {get_param: NovaComputeExtraConfig}
|
||||||
|
@ -1119,6 +1119,7 @@ resources:
|
|||||||
- neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
|
- neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
|
||||||
- cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
|
- cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
|
||||||
- neutron_nuage_data # Optionally provided by ControllerExtraConfigPre
|
- neutron_nuage_data # Optionally provided by ControllerExtraConfigPre
|
||||||
|
- midonet_data #Optionally provided by AllNodesExtraConfig
|
||||||
datafiles:
|
datafiles:
|
||||||
controller_extraconfig:
|
controller_extraconfig:
|
||||||
mapped_data: {get_param: ControllerExtraConfig}
|
mapped_data: {get_param: ControllerExtraConfig}
|
||||||
|
119
puppet/extraconfig/all_nodes/neutron-midonet-all-nodes.yaml
Normal file
119
puppet/extraconfig/all_nodes/neutron-midonet-all-nodes.yaml
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
heat_template_version: 2015-10-15
|
||||||
|
|
||||||
|
description: Configure hieradata for all MidoNet nodes
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
# Parameters passed from the parent template
|
||||||
|
controller_servers:
|
||||||
|
type: json
|
||||||
|
compute_servers:
|
||||||
|
type: json
|
||||||
|
blockstorage_servers:
|
||||||
|
type: json
|
||||||
|
objectstorage_servers:
|
||||||
|
type: json
|
||||||
|
cephstorage_servers:
|
||||||
|
type: json
|
||||||
|
|
||||||
|
EnableZookeeperOnController:
|
||||||
|
label: Enable Zookeeper On Controller
|
||||||
|
description: 'Whether enable Zookeeper cluster on Controller'
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
EnableCassandraOnController:
|
||||||
|
label: Enable Cassandra On Controller
|
||||||
|
description: 'Whether enable Cassandra cluster on Controller'
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
CassandraStoragePort:
|
||||||
|
label: Cassandra Storage Port
|
||||||
|
description: 'The Cassandra port for inter-node communication'
|
||||||
|
type: string
|
||||||
|
default: '7000'
|
||||||
|
CassandraSslStoragePort:
|
||||||
|
label: Cassandra SSL Storage Port
|
||||||
|
description: 'The SSL port for encrypted communication. Unused unless enabled in encryption_options'
|
||||||
|
type: string
|
||||||
|
default: '7001'
|
||||||
|
CassandraClientPort:
|
||||||
|
label: Cassandra Client Port
|
||||||
|
description: 'Native Transport Port'
|
||||||
|
type: string
|
||||||
|
default: '9042'
|
||||||
|
CassandraClientPortThrift:
|
||||||
|
label: Cassandra Client Thrift Port
|
||||||
|
description: 'The port for the Thrift RPC service, which is used for client connections'
|
||||||
|
type: string
|
||||||
|
default: '9160'
|
||||||
|
TunnelZoneName:
|
||||||
|
label: Name of the Tunnelzone
|
||||||
|
description: 'Name of the tunnel zone used to tunnel packages'
|
||||||
|
type: string
|
||||||
|
default: 'tunnelzone_tripleo'
|
||||||
|
TunnelZoneType:
|
||||||
|
label: Type of the Tunnel
|
||||||
|
description: 'Type of the tunnels on the overlay. Choose between `gre` and `vxlan`'
|
||||||
|
type: string
|
||||||
|
default: 'vxlan'
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
NetworkMidoNetConfig:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
group: os-apply-config
|
||||||
|
config:
|
||||||
|
hiera:
|
||||||
|
datafiles:
|
||||||
|
midonet_data:
|
||||||
|
mapped_data:
|
||||||
|
enable_zookeeper_on_controller: {get_param: EnableZookeeperOnController}
|
||||||
|
enable_cassandra_on_controller: {get_param: EnableCassandraOnController}
|
||||||
|
midonet_tunnelzone_name: {get_param: TunnelZoneName}
|
||||||
|
midonet_tunnelzone_type: {get_param: TunnelZoneType}
|
||||||
|
midonet_libvirt_qemu_data: |
|
||||||
|
user = "root"
|
||||||
|
group = "root"
|
||||||
|
cgroup_device_acl = [
|
||||||
|
"/dev/null", "/dev/full", "/dev/zero",
|
||||||
|
"/dev/random", "/dev/urandom",
|
||||||
|
"/dev/ptmx", "/dev/kvm", "/dev/kqemu",
|
||||||
|
"/dev/rtc","/dev/hpet", "/dev/vfio/vfio",
|
||||||
|
"/dev/net/tun"
|
||||||
|
]
|
||||||
|
tripleo::cluster::cassandra::storage_port: {get_param: CassandraStoragePort}
|
||||||
|
tripleo::cluster::cassandra::ssl_storage_port: {get_param: CassandraSslStoragePort}
|
||||||
|
tripleo::cluster::cassandra::client_port: {get_param: CassandraClientPort}
|
||||||
|
tripleo::cluster::cassandra::client_port_thrift: {get_param: CassandraClientPortThrift}
|
||||||
|
tripleo::loadbalancer::midonet_api: true
|
||||||
|
# Missed Neutron Puppet data
|
||||||
|
neutron::agents::dhcp::interface_driver: 'neutron.agent.linux.interface.MidonetInterfaceDriver'
|
||||||
|
neutron::agents::dhcp::dhcp_driver: 'midonet.neutron.agent.midonet_driver.DhcpNoOpDriver'
|
||||||
|
neutron::plugins::midonet::midonet_api_port: 8081
|
||||||
|
neutron::params::midonet_server_package: 'python-networking-midonet'
|
||||||
|
|
||||||
|
# Make sure the l3 agent does not run
|
||||||
|
l3_agent_service: false
|
||||||
|
neutron::agents::l3::manage_service: false
|
||||||
|
neutron::agents::l3::enabled: false
|
||||||
|
|
||||||
|
|
||||||
|
NetworkMidonetDeploymentControllers:
|
||||||
|
type: OS::Heat::StructuredDeploymentGroup
|
||||||
|
properties:
|
||||||
|
config: {get_resource: NetworkMidoNetConfig}
|
||||||
|
servers: {get_param: controller_servers}
|
||||||
|
|
||||||
|
NetworkMidonetDeploymentComputes:
|
||||||
|
type: OS::Heat::StructuredDeploymentGroup
|
||||||
|
properties:
|
||||||
|
config: {get_resource: NetworkMidoNetConfig}
|
||||||
|
servers: {get_param: compute_servers}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
config_identifier:
|
||||||
|
value:
|
||||||
|
list_join:
|
||||||
|
- ' '
|
||||||
|
- - {get_attr: [NetworkMidonetDeploymentControllers, deploy_stdouts]}
|
||||||
|
- {get_attr: [NetworkMidonetDeploymentComputes, deploy_stdouts]}
|
@ -68,11 +68,19 @@ if hiera('cinder_enable_nfs_backend', false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
include ::nova::compute::libvirt
|
include ::nova::compute::libvirt
|
||||||
|
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
file {'/etc/libvirt/qemu.conf':
|
||||||
|
ensure => present,
|
||||||
|
content => hiera('midonet_libvirt_qemu_data')
|
||||||
|
}
|
||||||
|
}
|
||||||
include ::nova::network::neutron
|
include ::nova::network::neutron
|
||||||
include ::neutron
|
include ::neutron
|
||||||
|
|
||||||
# If the value of core plugin is set to 'nuage',
|
# If the value of core plugin is set to 'nuage',
|
||||||
# include nuage agent,
|
# include nuage agent,
|
||||||
|
# If the value of core plugin is set to 'midonet',
|
||||||
|
# include midonet agent,
|
||||||
# else use the default value of 'ml2'
|
# else use the default value of 'ml2'
|
||||||
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
||||||
include ::nuage::vrs
|
include ::nuage::vrs
|
||||||
@ -84,7 +92,20 @@ if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
|||||||
nova_metadata_ip => hiera('nova_metadata_node_ips'),
|
nova_metadata_ip => hiera('nova_metadata_node_ips'),
|
||||||
nova_auth_ip => hiera('keystone_public_api_virtual_ip'),
|
nova_auth_ip => hiera('keystone_public_api_virtual_ip'),
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
elsif hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
|
||||||
|
# TODO(devvesa) provide non-controller ips for these services
|
||||||
|
$zookeeper_node_ips = hiera('neutron_api_node_ips')
|
||||||
|
$cassandra_node_ips = hiera('neutron_api_node_ips')
|
||||||
|
|
||||||
|
class {'::tripleo::network::midonet::agent':
|
||||||
|
zookeeper_servers => $zookeeper_node_ips,
|
||||||
|
cassandra_seeds => $cassandra_node_ips
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
include ::neutron::plugins::ml2
|
include ::neutron::plugins::ml2
|
||||||
include ::neutron::agents::ml2::ovs
|
include ::neutron::agents::ml2::ovs
|
||||||
|
|
||||||
|
@ -230,13 +230,61 @@ if hiera('step') >= 3 {
|
|||||||
include ::nova::scheduler
|
include ::nova::scheduler
|
||||||
include ::nova::scheduler::filter
|
include ::nova::scheduler::filter
|
||||||
|
|
||||||
|
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
|
||||||
|
# TODO(devvesa) provide non-controller ips for these services
|
||||||
|
$zookeeper_node_ips = hiera('neutron_api_node_ips')
|
||||||
|
$cassandra_node_ips = hiera('neutron_api_node_ips')
|
||||||
|
|
||||||
|
# Run zookeeper in the controller if configured
|
||||||
|
if hiera('enable_zookeeper_on_controller') {
|
||||||
|
class {'::tripleo::cluster::zookeeper':
|
||||||
|
zookeeper_server_ips => $zookeeper_node_ips,
|
||||||
|
zookeeper_client_ip => $ipaddress,
|
||||||
|
zookeeper_hostnames => hiera('controller_node_names')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run cassandra in the controller if configured
|
||||||
|
if hiera('enable_cassandra_on_controller') {
|
||||||
|
class {'::tripleo::cluster::cassandra':
|
||||||
|
cassandra_servers => $cassandra_node_ips,
|
||||||
|
cassandra_ip => $ipaddress
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'::tripleo::network::midonet::agent':
|
||||||
|
zookeeper_servers => $zookeeper_node_ips,
|
||||||
|
cassandra_seeds => $cassandra_node_ips
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'::tripleo::network::midonet::api':
|
||||||
|
zookeeper_servers => $zookeeper_node_ips,
|
||||||
|
vip => $ipaddress,
|
||||||
|
keystone_ip => $ipaddress,
|
||||||
|
keystone_admin_token => hiera('keystone::admin_token'),
|
||||||
|
bind_address => $ipaddress,
|
||||||
|
admin_password => hiera('admin_password')
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO: find a way to get an empty list from hiera
|
||||||
|
class {'::neutron':
|
||||||
|
service_plugins => []
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
|
||||||
|
# ML2 plugin
|
||||||
include ::neutron
|
include ::neutron
|
||||||
|
}
|
||||||
|
|
||||||
include ::neutron::server
|
include ::neutron::server
|
||||||
include ::neutron::server::notifications
|
include ::neutron::server::notifications
|
||||||
|
|
||||||
# If the value of core plugin is set to 'nuage',
|
# If the value of core plugin is set to 'nuage',
|
||||||
# include nuage core plugin,
|
# include nuage core plugin, and it does not
|
||||||
# else use the default value of 'ml2'
|
# need the l3, dhcp and metadata agents
|
||||||
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
||||||
include ::neutron::plugins::nuage
|
include ::neutron::plugins::nuage
|
||||||
} else {
|
} else {
|
||||||
@ -252,6 +300,17 @@ if hiera('step') >= 3 {
|
|||||||
require => Package['neutron'],
|
require => Package['neutron'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# If the value of core plugin is set to 'midonet',
|
||||||
|
# skip all the ML2 configuration
|
||||||
|
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
|
||||||
|
class {'::neutron::plugins::midonet':
|
||||||
|
midonet_api_ip => $ipaddress,
|
||||||
|
keystone_tenant => hiera('neutron::server::auth_tenant'),
|
||||||
|
keystone_password => hiera('neutron::server::auth_password')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
include ::neutron::plugins::ml2
|
include ::neutron::plugins::ml2
|
||||||
include ::neutron::agents::ml2::ovs
|
include ::neutron::agents::ml2::ovs
|
||||||
|
|
||||||
@ -287,10 +346,11 @@ if hiera('step') >= 3 {
|
|||||||
neutron_dhcp_agent_config {
|
neutron_dhcp_agent_config {
|
||||||
'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false);
|
'DEFAULT/ovs_use_veth': value => hiera('neutron_ovs_use_veth', false);
|
||||||
}
|
}
|
||||||
|
Service['neutron-server'] -> Service['neutron-ovs-agent-service']
|
||||||
|
}
|
||||||
|
|
||||||
Service['neutron-server'] -> Service['neutron-dhcp-service']
|
Service['neutron-server'] -> Service['neutron-dhcp-service']
|
||||||
Service['neutron-server'] -> Service['neutron-l3']
|
Service['neutron-server'] -> Service['neutron-l3']
|
||||||
Service['neutron-server'] -> Service['neutron-ovs-agent-service']
|
|
||||||
Service['neutron-server'] -> Service['neutron-metadata']
|
Service['neutron-server'] -> Service['neutron-metadata']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,8 +592,54 @@ if hiera('step') >= 3 {
|
|||||||
}
|
}
|
||||||
include ::nova::network::neutron
|
include ::nova::network::neutron
|
||||||
|
|
||||||
|
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
|
||||||
|
# TODO(devvesa) provide non-controller ips for these services
|
||||||
|
$zookeeper_node_ips = hiera('neutron_api_node_ips')
|
||||||
|
$cassandra_node_ips = hiera('neutron_api_node_ips')
|
||||||
|
|
||||||
|
# Run zookeeper in the controller if configured
|
||||||
|
if hiera('enable_zookeeper_on_controller') {
|
||||||
|
class {'::tripleo::cluster::zookeeper':
|
||||||
|
zookeeper_server_ips => $zookeeper_node_ips,
|
||||||
|
zookeeper_client_ip => $ipaddress,
|
||||||
|
zookeeper_hostnames => hiera('controller_node_names')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run cassandra in the controller if configured
|
||||||
|
if hiera('enable_cassandra_on_controller') {
|
||||||
|
class {'::tripleo::cluster::cassandra':
|
||||||
|
cassandra_servers => $cassandra_node_ips,
|
||||||
|
cassandra_ip => $ipaddress
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'::tripleo::network::midonet::agent':
|
||||||
|
zookeeper_servers => $zookeeper_node_ips,
|
||||||
|
cassandra_seeds => $cassandra_node_ips
|
||||||
|
}
|
||||||
|
|
||||||
|
class {'::tripleo::network::midonet::api':
|
||||||
|
zookeeper_servers => hiera('neutron_api_node_ips'),
|
||||||
|
vip => $public_vip,
|
||||||
|
keystone_ip => $public_vip,
|
||||||
|
keystone_admin_token => hiera('keystone::admin_token'),
|
||||||
|
bind_address => $ipaddress,
|
||||||
|
admin_password => hiera('admin_password')
|
||||||
|
}
|
||||||
|
|
||||||
|
# Configure Neutron
|
||||||
|
class {'::neutron':
|
||||||
|
service_plugins => []
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
# Neutron class definitions
|
# Neutron class definitions
|
||||||
include ::neutron
|
include ::neutron
|
||||||
|
}
|
||||||
|
|
||||||
class { '::neutron::server' :
|
class { '::neutron::server' :
|
||||||
sync_db => $sync_db,
|
sync_db => $sync_db,
|
||||||
manage_service => false,
|
manage_service => false,
|
||||||
@ -603,6 +649,13 @@ if hiera('step') >= 3 {
|
|||||||
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
if hiera('neutron::core_plugin') == 'neutron.plugins.nuage.plugin.NuagePlugin' {
|
||||||
include ::neutron::plugins::nuage
|
include ::neutron::plugins::nuage
|
||||||
}
|
}
|
||||||
|
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
class {'::neutron::plugins::midonet':
|
||||||
|
midonet_api_ip => $public_vip,
|
||||||
|
keystone_tenant => hiera('neutron::server::auth_tenant'),
|
||||||
|
keystone_password => hiera('neutron::server::auth_password')
|
||||||
|
}
|
||||||
|
}
|
||||||
if hiera('neutron::enable_dhcp_agent',true) {
|
if hiera('neutron::enable_dhcp_agent',true) {
|
||||||
class { '::neutron::agents::dhcp' :
|
class { '::neutron::agents::dhcp' :
|
||||||
manage_service => false,
|
manage_service => false,
|
||||||
@ -1095,6 +1148,11 @@ if hiera('step') >= 4 {
|
|||||||
clone_params => 'interleave=true',
|
clone_params => 'interleave=true',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
pacemaker::resource::service {'tomcat':
|
||||||
|
clone_params => 'interleave=true',
|
||||||
|
}
|
||||||
|
}
|
||||||
if hiera('neutron::enable_metadata_agent', true) {
|
if hiera('neutron::enable_metadata_agent', true) {
|
||||||
pacemaker::resource::service { $::neutron::params::metadata_agent_service:
|
pacemaker::resource::service { $::neutron::params::metadata_agent_service:
|
||||||
clone_params => 'interleave=true',
|
clone_params => 'interleave=true',
|
||||||
@ -1145,7 +1203,6 @@ if hiera('step') >= 4 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#another chain keystone-->neutron-server-->ovs-agent-->dhcp-->l3
|
|
||||||
pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
|
pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
|
||||||
constraint_type => 'order',
|
constraint_type => 'order',
|
||||||
first_resource => "${::keystone::params::service_name}-clone",
|
first_resource => "${::keystone::params::service_name}-clone",
|
||||||
@ -1221,6 +1278,43 @@ if hiera('step') >= 4 {
|
|||||||
Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]]
|
Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if hiera('neutron::core_plugin') == 'midonet.neutron.plugin_v1.MidonetPluginV2' {
|
||||||
|
#midonet-chain chain keystone-->neutron-server-->dhcp-->metadata->tomcat
|
||||||
|
pacemaker::constraint::base { 'neutron-server-to-dhcp-agent-constraint':
|
||||||
|
constraint_type => 'order',
|
||||||
|
first_resource => "${::neutron::params::server_service}-clone",
|
||||||
|
second_resource => "${::neutron::params::dhcp_agent_service}-clone",
|
||||||
|
first_action => 'start',
|
||||||
|
second_action => 'start',
|
||||||
|
require => [Pacemaker::Resource::Service[$::neutron::params::server_service],
|
||||||
|
Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service]],
|
||||||
|
}
|
||||||
|
pacemaker::constraint::base { 'neutron-dhcp-agent-to-metadata-agent-constraint':
|
||||||
|
constraint_type => 'order',
|
||||||
|
first_resource => "${::neutron::params::dhcp_agent_service}-clone",
|
||||||
|
second_resource => "${::neutron::params::metadata_agent_service}-clone",
|
||||||
|
first_action => 'start',
|
||||||
|
second_action => 'start',
|
||||||
|
require => [Pacemaker::Resource::Service[$::neutron::params::dhcp_agent_service],
|
||||||
|
Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service]],
|
||||||
|
}
|
||||||
|
pacemaker::constraint::base { 'neutron-metadata-agent-to-tomcat-constraint':
|
||||||
|
constraint_type => 'order',
|
||||||
|
first_resource => "${::neutron::params::metadata_agent_service}-clone",
|
||||||
|
second_resource => 'tomcat-clone',
|
||||||
|
first_action => 'start',
|
||||||
|
second_action => 'start',
|
||||||
|
require => [Pacemaker::Resource::Service[$::neutron::params::metadata_agent_service],
|
||||||
|
Pacemaker::Resource::Service['tomcat']],
|
||||||
|
}
|
||||||
|
pacemaker::constraint::colocation { 'neutron-dhcp-agent-to-metadata-agent-colocation':
|
||||||
|
source => "${::neutron::params::metadata_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::metadata_agent_service]],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Nova
|
# Nova
|
||||||
pacemaker::resource::service { $::nova::params::api_service_name :
|
pacemaker::resource::service { $::nova::params::api_service_name :
|
||||||
|
Loading…
Reference in New Issue
Block a user