78 lines
3.4 KiB
Puppet
78 lines
3.4 KiB
Puppet
# Copyright 2015 Mirantis, Inc.
|
|
#
|
|
# 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.
|
|
|
|
$fuel_settings = parseyaml($astute_settings_yaml)
|
|
$nodes_hash = $::fuel_settings['nodes']
|
|
$primary_controller_nodes = filter_nodes($nodes_hash,'role','primary-controller')
|
|
$controllers = concat($primary_controller_nodes, filter_nodes($nodes_hash,'role','controller'))
|
|
$db_gateways = filter_nodes($nodes_hash,'role','midonet-gw')
|
|
$gateways = filter_nodes($nodes_hash,'role','midonet-simplegw')
|
|
$computes = filter_nodes($nodes_hash,'role','compute')
|
|
|
|
$midonet_nodes1 = concat($controllers,$db_gateways)
|
|
$midonet_nodes2 = concat($gateways,$computes)
|
|
$midonet_nodes = concat($midonet_nodes1,$midonet_nodes2)
|
|
|
|
$nodes_adresses = nodes_to_hash($midonet_nodes,'fqdn','internal_address')
|
|
$access_hash = $::fuel_settings['access']
|
|
$service_endpoint = $::fuel_settings['management_vip']
|
|
$neutron_config = $::fuel_settings['quantum_settings']
|
|
|
|
Nova_config<||> -> Exec['/etc/init.d/openstack-nova-api restart']
|
|
|
|
nova_config {
|
|
'DEFAULT/enabled_apis': value => 'ec2,osapi_compute,metadata';
|
|
'DEFAULT/service_neutron_metadata_proxy': value => 'true';
|
|
'DEFAULT/neutron_metadata_proxy_shared_secret': value => $neutron_config['metadata']['metadata_proxy_shared_secret'];
|
|
}
|
|
exec { '/etc/init.d/openstack-nova-api restart':
|
|
}
|
|
if $fuel_settings['role'] == 'primary-controller' {
|
|
$nodes_fqdn = keys($nodes_adresses)
|
|
midonet_tunnel_zone { 'default':
|
|
ensure => present,
|
|
} ->
|
|
midonet_host { $nodes_fqdn:
|
|
ensure => present,
|
|
nodes => $nodes_adresses,
|
|
tunnel_zone => 'default',
|
|
require => Midonet_tunnel_zone['default'],
|
|
}
|
|
# create_tunnel_zone($nodes_adresses)
|
|
}
|
|
|
|
Neutron_dhcp_agent_config<||> ~> Service['neutron-dhcp-agent']
|
|
Neutron_dhcp_agent_config<||> ~> Service['neutron-metadata-agent']
|
|
|
|
service { 'neutron-dhcp-agent':
|
|
ensure => running,
|
|
}
|
|
service { 'neutron-metadata-agent':
|
|
ensure => running,
|
|
}
|
|
neutron_dhcp_agent_config {
|
|
'DEFAULT/enable_isolated_metadata': value => 'True';
|
|
'DEFAULT/dhcp_driver': value => 'midonet.neutron.agent.midonet_driver.DhcpNoOpDriver';
|
|
'DEFAULT/interface_driver': value => 'neutron.agent.linux.interface.MidonetInterfaceDriver';
|
|
'DEFAULT/ovs_use_veth': value => 'False';
|
|
'DEFAULT/root_helper': value => 'sudo /usr/local/bin/neutron-rootwrap /etc/neutron/rootwrap.conf';
|
|
'DEFAULT/use_namespaces': value => 'True';
|
|
'DEFAULT/debug': value => 'False';
|
|
'midonet/midonet_uri': value => "http://${::service_endpoint}:8081/midonet-api";
|
|
'midonet/username': value => $::access_hash['user'];
|
|
'midonet/password': value => $::access_hash['password'];
|
|
'midonet/project_id': value => $::access_hash['tenant'];
|
|
'midonet/auth_url': value => "http://${::service_endpoint}:35357/v2.0";
|
|
}
|