Prepare Swift for using network-roles, instead of fixed networks
Modify some global constants as well. blueprint: templates-for-networking Change-Id: Ia2428b49a7192a2d7d56ffdc61a75de9ebc816c9
This commit is contained in:
parent
8f1bc80b6c
commit
1d59cedfd6
@ -75,9 +75,10 @@ class openstack::ha::haproxy (
|
|||||||
}
|
}
|
||||||
|
|
||||||
if $swift_proxies {
|
if $swift_proxies {
|
||||||
|
$swift_proxies_address_map = get_node_to_ipaddr_map_by_network_role($swift_proxies, 'swift/api')
|
||||||
class { 'openstack::ha::swift':
|
class { 'openstack::ha::swift':
|
||||||
server_names => hiera_array('swift_server_names', filter_hash($swift_proxies, 'name')),
|
server_names => hiera_array('swift_server_names', keys($swift_proxies_address_map)),
|
||||||
ipaddresses => hiera_array('swift_ipaddresses', filter_hash($swift_proxies, 'storage_address')),
|
ipaddresses => hiera_array('swift_ipaddresses', values($swift_proxies_address_map)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,8 @@ class openstack::swift::proxy (
|
|||||||
$swift_user_password = 'swift_pass',
|
$swift_user_password = 'swift_pass',
|
||||||
$swift_hash_suffix = 'swift_secret',
|
$swift_hash_suffix = 'swift_secret',
|
||||||
$swift_max_header_size = '32768',
|
$swift_max_header_size = '32768',
|
||||||
$swift_local_net_ip = $::ipaddress_eth0,
|
$swift_proxy_local_ipaddr = $::ipaddress_eth0,
|
||||||
|
$swift_replication_local_ipaddr = $::ipaddress_eth0,
|
||||||
$ring_part_power = 18,
|
$ring_part_power = 18,
|
||||||
$ring_replicas = 3,
|
$ring_replicas = 3,
|
||||||
$ring_min_part_hours = 1,
|
$ring_min_part_hours = 1,
|
||||||
@ -39,6 +40,7 @@ class openstack::swift::proxy (
|
|||||||
$primary_proxy = false,
|
$primary_proxy = false,
|
||||||
$swift_devices = undef,
|
$swift_devices = undef,
|
||||||
$master_swift_proxy_ip = undef,
|
$master_swift_proxy_ip = undef,
|
||||||
|
$master_swift_replication_ip = undef,
|
||||||
$collect_exported = false,
|
$collect_exported = false,
|
||||||
$rings = ['account', 'object', 'container'],
|
$rings = ['account', 'object', 'container'],
|
||||||
$debug = false,
|
$debug = false,
|
||||||
@ -83,7 +85,7 @@ class openstack::swift::proxy (
|
|||||||
}
|
}
|
||||||
|
|
||||||
class { '::swift::proxy':
|
class { '::swift::proxy':
|
||||||
proxy_local_net_ip => $swift_local_net_ip,
|
proxy_local_net_ip => $swift_proxy_local_ipaddr,
|
||||||
pipeline => $new_proxy_pipeline,
|
pipeline => $new_proxy_pipeline,
|
||||||
port => $proxy_port,
|
port => $proxy_port,
|
||||||
workers => $proxy_workers,
|
workers => $proxy_workers,
|
||||||
@ -156,7 +158,7 @@ class openstack::swift::proxy (
|
|||||||
|
|
||||||
# sets up an rsync db that can be used to sync the ring DB
|
# sets up an rsync db that can be used to sync the ring DB
|
||||||
class { 'swift::ringserver':
|
class { 'swift::ringserver':
|
||||||
local_net_ip => $swift_local_net_ip,
|
local_net_ip => $swift_replication_local_ipaddr,
|
||||||
}
|
}
|
||||||
|
|
||||||
# resource ordering
|
# resource ordering
|
||||||
@ -166,22 +168,22 @@ class openstack::swift::proxy (
|
|||||||
Ring_devices<||> ~>
|
Ring_devices<||> ~>
|
||||||
Swift::Ringbuilder::Rebalance <||>
|
Swift::Ringbuilder::Rebalance <||>
|
||||||
} else {
|
} else {
|
||||||
validate_string($master_swift_proxy_ip)
|
validate_string($master_swift_replication_ip)
|
||||||
|
|
||||||
if member($rings, 'account') and ! defined(Swift::Ringsync['account']) {
|
if member($rings, 'account') and ! defined(Swift::Ringsync['account']) {
|
||||||
swift::ringsync { 'account': ring_server => $master_swift_proxy_ip }
|
swift::ringsync { 'account': ring_server => $master_swift_replication_ip }
|
||||||
}
|
}
|
||||||
|
|
||||||
if member($rings, 'object') and ! defined(Swift::Ringsync['object']) {
|
if member($rings, 'object') and ! defined(Swift::Ringsync['object']) {
|
||||||
swift::ringsync { 'object': ring_server => $master_swift_proxy_ip }
|
swift::ringsync { 'object': ring_server => $master_swift_replication_ip }
|
||||||
}
|
}
|
||||||
|
|
||||||
if member($rings, 'container') and ! defined(Swift::Ringsync['container']) {
|
if member($rings, 'container') and ! defined(Swift::Ringsync['container']) {
|
||||||
swift::ringsync { 'container': ring_server => $master_swift_proxy_ip }
|
swift::ringsync { 'container': ring_server => $master_swift_replication_ip }
|
||||||
}
|
}
|
||||||
|
|
||||||
rsync::get { "/etc/swift/backups/":
|
rsync::get { "/etc/swift/backups/":
|
||||||
source => "rsync://${master_swift_proxy_ip}/swift_server/backups/",
|
source => "rsync://${master_swift_replication_ip}/swift_server/backups/",
|
||||||
recursive => true,
|
recursive => true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# === Parameters
|
# === Parameters
|
||||||
#
|
#
|
||||||
# [*master_swift_proxy_ip*]
|
# [*master_swift_replication_ip*]
|
||||||
# (required) IP of swift proxy master
|
# (required) IP of swift proxy master
|
||||||
#
|
#
|
||||||
# [*primary_proxy*]
|
# [*primary_proxy*]
|
||||||
@ -21,7 +21,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
class openstack::swift::rebalance_cronjob(
|
class openstack::swift::rebalance_cronjob(
|
||||||
$master_swift_proxy_ip,
|
$master_swift_replication_ip,
|
||||||
$primary_proxy = false,
|
$primary_proxy = false,
|
||||||
$rings = ['account', 'object', 'container'],
|
$rings = ['account', 'object', 'container'],
|
||||||
$ring_rebalance_period = 23,
|
$ring_rebalance_period = 23,
|
||||||
|
@ -14,6 +14,7 @@ class openstack::swift::storage_node (
|
|||||||
$package_ensure = 'present',
|
$package_ensure = 'present',
|
||||||
$loopback_size = '1048756',
|
$loopback_size = '1048756',
|
||||||
$master_swift_proxy_ip,
|
$master_swift_proxy_ip,
|
||||||
|
$master_swift_replication_ip,
|
||||||
$rings = [
|
$rings = [
|
||||||
'account',
|
'account',
|
||||||
'object',
|
'object',
|
||||||
@ -104,19 +105,19 @@ class openstack::swift::storage_node (
|
|||||||
log_name => 'swift-account-server',
|
log_name => 'swift-account-server',
|
||||||
}
|
}
|
||||||
|
|
||||||
validate_string($master_swift_proxy_ip)
|
validate_string($master_swift_replication_ip)
|
||||||
|
|
||||||
if $sync_rings {
|
if $sync_rings {
|
||||||
if member($rings, 'account') and !defined(Swift::Ringsync['account']) {
|
if member($rings, 'account') and !defined(Swift::Ringsync['account']) {
|
||||||
swift::ringsync { 'account': ring_server => $master_swift_proxy_ip }
|
swift::ringsync { 'account': ring_server => $master_swift_replication_ip }
|
||||||
}
|
}
|
||||||
|
|
||||||
if member($rings, 'object') and !defined(Swift::Ringsync['object']) {
|
if member($rings, 'object') and !defined(Swift::Ringsync['object']) {
|
||||||
swift::ringsync { 'object': ring_server => $master_swift_proxy_ip }
|
swift::ringsync { 'object': ring_server => $master_swift_replication_ip }
|
||||||
}
|
}
|
||||||
|
|
||||||
if member($rings, 'container') and !defined(Swift::Ringsync['container']) {
|
if member($rings, 'container') and !defined(Swift::Ringsync['container']) {
|
||||||
swift::ringsync { 'container': ring_server => $master_swift_proxy_ip }
|
swift::ringsync { 'container': ring_server => $master_swift_replication_ip }
|
||||||
}
|
}
|
||||||
Swift::Ringsync <| |> ~> Class["swift::storage::all"]
|
Swift::Ringsync <| |> ~> Class["swift::storage::all"]
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
<% @rings.each do |ring| -%>
|
<% @rings.each do |ring| -%>
|
||||||
rsync -q -a rsync://<%= @master_swift_proxy_ip %>/swift_server/<%= ring %>.ring.gz /etc/swift/<%= ring %>.ring.gz
|
rsync -q -a rsync://<%= @master_swift_replication_ip %>/swift_server/<%= ring %>.ring.gz /etc/swift/<%= ring %>.ring.gz
|
||||||
<% end -%>
|
<% end -%>
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
module Puppet::Parser::Functions
|
module Puppet::Parser::Functions
|
||||||
newfunction(:calc_ring_part_power, :type => :rvalue) do |args|
|
newfunction(:calc_ring_part_power, :type => :rvalue) do |args|
|
||||||
resize_value = args[1]
|
resize_value = args[1]
|
||||||
nodes = args[0].is_a?(Array) ? args[0] : [ args[0] ]
|
nodes = args[0].values()
|
||||||
dev_number = nodes.inject(0) do |num,node|
|
dev_number = nodes.inject(0) do |num,node|
|
||||||
if node['mountpoints']
|
if node['mountpoints']
|
||||||
add = node['mountpoints'].split('\n')[0].split.length
|
add = node['mountpoints'].split('\n')[0].split.length
|
||||||
num += add
|
num += add
|
||||||
@ -10,7 +10,7 @@ module Puppet::Parser::Functions
|
|||||||
num += 2
|
num += 2
|
||||||
end
|
end
|
||||||
num
|
num
|
||||||
end
|
end
|
||||||
ring_power = (Math.log(dev_number * 100)/Math.log(2)).to_int+args[1].to_i
|
ring_power = (Math.log(dev_number * 100)/Math.log(2)).to_int+args[1].to_i
|
||||||
end
|
end
|
||||||
end
|
end
|
@ -11,8 +11,9 @@ EOS
|
|||||||
raise(Puppet::ParseError, "#{errmsg}: 1st argument should be a valid network_metadata hash") if !n_metadata.has_key?('nodes')
|
raise(Puppet::ParseError, "#{errmsg}: 1st argument should be a valid network_metadata hash") if !n_metadata.has_key?('nodes')
|
||||||
raise(Puppet::ParseError, "#{errmsg}: 2nd argument should be an list of node roles") if !roles.is_a?(Array)
|
raise(Puppet::ParseError, "#{errmsg}: 2nd argument should be an list of node roles") if !roles.is_a?(Array)
|
||||||
nodes = n_metadata['nodes']
|
nodes = n_metadata['nodes']
|
||||||
nodes.reject do |node_name|
|
# Using unrequired node_property bellow -- is a workaround for ruby 1.8
|
||||||
(roles & nodes[node_name]['node_roles']).empty?
|
nodes.reject do |node_name, node_property|
|
||||||
|
(roles & node_property['node_roles']).empty?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -7,17 +7,13 @@ Puppet::Type.newtype(:ring_devices) do
|
|||||||
desc 'list of all swift storages'
|
desc 'list of all swift storages'
|
||||||
|
|
||||||
validate do |value|
|
validate do |value|
|
||||||
if value.is_a? Hash
|
if ! value.is_a? Hash
|
||||||
fail(Puppet::Error, "#{value} should be a Hash and include ip address") unless value['storage_address']
|
fail(Puppet::Error, "#{value} should be a Hash of nodes with network roles to IP address mapping")
|
||||||
else
|
|
||||||
value.each do |element|
|
|
||||||
fail(Puppet::Error, "#{element} should be a Hash and include ip address") unless element.is_a?(Hash) && element['storage_address']
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
munge do |value|
|
munge do |value|
|
||||||
value.is_a?(Hash) ? [value] : value
|
value.values.each {|h| h['storage_address']=h['network_roles']['swift/replication'].gsub(/\/\d+$/,''); h.delete('network_roles')}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,80 +0,0 @@
|
|||||||
define setup_main_interfaces (
|
|
||||||
$interface = $name,
|
|
||||||
$network_settings
|
|
||||||
) {
|
|
||||||
# Detect main interfaces, except bondXXX/brXXX/vlanXXX, XXX - pos int numbers with 0
|
|
||||||
if $interface =~ /^(?!bond|br|vlan)\w+\d+$/ {
|
|
||||||
if ! defined(L23network::L3::Ifconfig[$interface]) {
|
|
||||||
$ipaddr = $network_settings[$interface]['ipaddr']
|
|
||||||
$gateway = $network_settings[$interface]['gateway']
|
|
||||||
$default_gateway = $network_settings[$interface]['default_gateway']
|
|
||||||
# TODO implement bond slaves options support
|
|
||||||
#$bond_master = $network_settings[$interface]['bond_master']
|
|
||||||
notify{"${interface} => ${ipaddr}, ${gateway}":} ->
|
|
||||||
l23network::l3::ifconfig{$interface:
|
|
||||||
ipaddr => $ipaddr,
|
|
||||||
gateway => $gateway,
|
|
||||||
default_gateway => $default_gateway,
|
|
||||||
#bond_master => $bond_master,
|
|
||||||
check_by_ping => 'none'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define setup_bond_interfaces (
|
|
||||||
$interface = $name,
|
|
||||||
$network_settings
|
|
||||||
) {
|
|
||||||
# Detect main bond interfaces, allow bondXXX (alphanum only, XXX - pos int numbers with 0)
|
|
||||||
if $interface =~ /^bond\d+$/ {
|
|
||||||
if ! defined(L23network::L3::Ifconfig[$interface]) {
|
|
||||||
# TODO implement bond options support
|
|
||||||
#$bond_mode = $network_settings[$interface]['bond_mode']
|
|
||||||
#$bond_miimon = $network_settings[$interface]['bond_miimon']
|
|
||||||
#$bond_lacp_rate = $network_settings[$interface]['bond_lacp_rate']
|
|
||||||
notify{"Stub for bond interface ${interface}":} #->
|
|
||||||
#l23network::l3::ifconfig{$interface:
|
|
||||||
#ipaddr => $ipaddr,
|
|
||||||
#gateway => $gateway,
|
|
||||||
#bond_mode => $bond_mode,
|
|
||||||
#bond_miimon => $bond_miimon,
|
|
||||||
#bond_lacp_rate => $bond_lacp_rate,
|
|
||||||
#check_by_ping => 'none'
|
|
||||||
#}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
define setup_sub_interfaces (
|
|
||||||
$interface = $name,
|
|
||||||
$network_settings
|
|
||||||
) {
|
|
||||||
# Detect sub interfaces, allow vlanXXX, anythingXXX.YYY (alphanum only, XXX&YYY - pos int numbers with 0)
|
|
||||||
if $interface =~ /(^(\w+\d+)(\.)(\d+)$)|(^vlan\d+$)/ {
|
|
||||||
if ! defined(L23network::L3::Ifconfig[$interface]) {
|
|
||||||
$ipaddr = $network_settings[$interface]['ipaddr']
|
|
||||||
$gateway = $network_settings[$interface]['gateway']
|
|
||||||
$default_gateway = $network_settings[$interface]['default_gateway']
|
|
||||||
# TODO implement bond slaves options support
|
|
||||||
#$bond_master = $network_settings[$interface]['bond_master']
|
|
||||||
notify{"${interface} => ${ipaddr}, ${gateway}":} ->
|
|
||||||
l23network::l3::ifconfig{$interface:
|
|
||||||
ipaddr => $ipaddr,
|
|
||||||
gateway => $gateway,
|
|
||||||
default_gateway => $default_gateway,
|
|
||||||
#bond_master => $bond_master,
|
|
||||||
check_by_ping => 'none'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class osnailyfacter::network_setup (
|
|
||||||
$interfaces = keys($::fuel_settings['network_data']),
|
|
||||||
$network_settings = $::fuel_settings['network_data'],
|
|
||||||
) {
|
|
||||||
setup_bond_interfaces{$interfaces: network_settings=>$network_settings} ->
|
|
||||||
setup_main_interfaces{$interfaces: network_settings=>$network_settings} ->
|
|
||||||
setup_sub_interfaces{$interfaces: network_settings=>$network_settings}
|
|
||||||
}
|
|
@ -31,7 +31,7 @@ $swift_hash = hiera('swift', {})
|
|||||||
$cinder_hash = hiera('cinder', {})
|
$cinder_hash = hiera('cinder', {})
|
||||||
$ceilometer_hash = hiera('ceilometer',{})
|
$ceilometer_hash = hiera('ceilometer',{})
|
||||||
$access_hash = hiera('access', {})
|
$access_hash = hiera('access', {})
|
||||||
$network_scheme = hiera('network_scheme', {})
|
$network_scheme = hiera_hash('network_scheme')
|
||||||
$controllers = hiera('controllers')
|
$controllers = hiera('controllers')
|
||||||
$neutron_mellanox = hiera('neutron_mellanox', false)
|
$neutron_mellanox = hiera('neutron_mellanox', false)
|
||||||
$syslog_hash = hiera('syslog', {})
|
$syslog_hash = hiera('syslog', {})
|
||||||
@ -68,8 +68,8 @@ $primary_mon = $controllers[0]['name']
|
|||||||
|
|
||||||
if ($use_neutron) {
|
if ($use_neutron) {
|
||||||
prepare_network_config($network_scheme)
|
prepare_network_config($network_scheme)
|
||||||
$ceph_cluster_network = get_network_role_property('storage', 'cidr')
|
$ceph_cluster_network = get_network_role_property('ceph/replication', 'network')
|
||||||
$ceph_public_network = get_network_role_property('management', 'cidr')
|
$ceph_public_network = get_network_role_property('ceph/public', 'network')
|
||||||
} else {
|
} else {
|
||||||
$ceph_cluster_network = hiera('storage_network_range')
|
$ceph_cluster_network = hiera('storage_network_range')
|
||||||
$ceph_public_network = hiera('management_network_range')
|
$ceph_public_network = hiera('management_network_range')
|
||||||
|
@ -42,9 +42,9 @@ if $use_ceph {
|
|||||||
$primary_mon = $controllers[0]['name']
|
$primary_mon = $controllers[0]['name']
|
||||||
|
|
||||||
if ($use_neutron) {
|
if ($use_neutron) {
|
||||||
prepare_network_config(hiera('network_scheme', {}))
|
prepare_network_config(hiera_hash('network_scheme'))
|
||||||
$ceph_cluster_network = get_network_role_property('storage', 'cidr')
|
$ceph_cluster_network = get_network_role_property('ceph/replication', 'network')
|
||||||
$ceph_public_network = get_network_role_property('management', 'cidr')
|
$ceph_public_network = get_network_role_property('ceph/public', 'network')
|
||||||
} else {
|
} else {
|
||||||
$ceph_cluster_network = hiera('storage_network_range')
|
$ceph_cluster_network = hiera('storage_network_range')
|
||||||
$ceph_public_network = hiera('management_network_range')
|
$ceph_public_network = hiera('management_network_range')
|
||||||
|
@ -34,9 +34,9 @@ if $use_ceph {
|
|||||||
$primary_mon = $controllers[0]['name']
|
$primary_mon = $controllers[0]['name']
|
||||||
|
|
||||||
if ($use_neutron) {
|
if ($use_neutron) {
|
||||||
prepare_network_config(hiera('network_scheme', {}))
|
prepare_network_config(hiera_hash('network_scheme'))
|
||||||
$ceph_cluster_network = get_network_role_property('storage', 'cidr')
|
$ceph_cluster_network = get_network_role_property('ceph/replication', 'network')
|
||||||
$ceph_public_network = get_network_role_property('management', 'cidr')
|
$ceph_public_network = get_network_role_property('ceph/public', 'network')
|
||||||
} else {
|
} else {
|
||||||
$ceph_cluster_network = hiera('storage_network_range')
|
$ceph_cluster_network = hiera('storage_network_range')
|
||||||
$ceph_public_network = hiera('management_network_range')
|
$ceph_public_network = hiera('management_network_range')
|
||||||
|
@ -22,9 +22,9 @@ if $use_ceph and $storage_hash['objects_ceph'] {
|
|||||||
$primary_mon = $controllers[0]['name']
|
$primary_mon = $controllers[0]['name']
|
||||||
|
|
||||||
if ($use_neutron) {
|
if ($use_neutron) {
|
||||||
prepare_network_config(hiera('network_scheme', {}))
|
prepare_network_config(hiera_hash('network_scheme'))
|
||||||
$ceph_cluster_network = get_network_role_property('storage', 'cidr')
|
$ceph_cluster_network = get_network_role_property('ceph/replication', 'network')
|
||||||
$ceph_public_network = get_network_role_property('management', 'cidr')
|
$ceph_public_network = get_network_role_property('ceph/public', 'network')
|
||||||
} else {
|
} else {
|
||||||
$ceph_cluster_network = hiera('storage_network_range')
|
$ceph_cluster_network = hiera('storage_network_range')
|
||||||
$ceph_public_network = hiera('management_network_range')
|
$ceph_public_network = hiera('management_network_range')
|
||||||
|
@ -17,6 +17,8 @@ firewall {'004 remote puppet ':
|
|||||||
require => Class['openstack::firewall'],
|
require => Class['openstack::firewall'],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
prepare_network_config(hiera_hash('network_scheme'))
|
||||||
class { 'openstack::firewall' :
|
class { 'openstack::firewall' :
|
||||||
nova_vnc_ip_range => hiera('management_network_range'),
|
nova_vnc_ip_range => get_network_role_property('mgmt/vip', 'network'),
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,25 @@
|
|||||||
notice('MODULAR: globals.pp')
|
notice('MODULAR: globals.pp')
|
||||||
#FIXME(bogdando) make all evaluations/hardcode to come from a hiera
|
|
||||||
# For example, assume it is already calculated and use just:
|
|
||||||
# $roles=hiera('roles')
|
|
||||||
# instead of:
|
|
||||||
# $roles = node_roles($nodes_hash, hiera('uid'))
|
|
||||||
|
|
||||||
$fuel_settings = parseyaml($astute_settings_yaml)
|
$network_scheme = hiera_hash('network_scheme', {})
|
||||||
|
if empty($network_scheme) {
|
||||||
|
fail("Network_scheme not given in the astute.yaml")
|
||||||
|
}
|
||||||
|
$network_metadata = hiera_hash('network_metadata', {})
|
||||||
|
if empty($network_metadata) {
|
||||||
|
fail("Network_metadata not given in the astute.yaml")
|
||||||
|
}
|
||||||
|
|
||||||
$nodes_hash = hiera('nodes', {})
|
$node_name = regsubst(hiera('fqdn', $::hostname), '\..*$', '')
|
||||||
|
$node = $network_metadata['nodes'][$node_name]
|
||||||
|
if empty($node) {
|
||||||
|
fail("Node hostname is not defined in the astute.yaml")
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare_network_config($network_scheme)
|
||||||
|
|
||||||
|
$nodes_hash = hiera('nodes', {}) #todo(sv): remove using NODES list!
|
||||||
$deployment_mode = hiera('deployment_mode', 'ha_compact')
|
$deployment_mode = hiera('deployment_mode', 'ha_compact')
|
||||||
$roles = hiera('roles', node_roles($nodes_hash, hiera('uid')))
|
$roles = $node['node_roles']
|
||||||
$storage_hash = hiera('storage', {})
|
$storage_hash = hiera('storage', {})
|
||||||
$syslog_hash = hiera('syslog', {})
|
$syslog_hash = hiera('syslog', {})
|
||||||
$base_syslog_hash = hiera('base_syslog', {})
|
$base_syslog_hash = hiera('base_syslog', {})
|
||||||
@ -33,13 +43,10 @@ $cinder_nodes_array = hiera('cinder_nodes', [])
|
|||||||
$dns_nameservers = hiera('dns_nameservers', [])
|
$dns_nameservers = hiera('dns_nameservers', [])
|
||||||
$use_ceilometer = $ceilometer_hash['enabled']
|
$use_ceilometer = $ceilometer_hash['enabled']
|
||||||
$use_neutron = hiera('quantum', false)
|
$use_neutron = hiera('quantum', false)
|
||||||
$network_scheme = hiera('network_scheme', {})
|
|
||||||
$verbose = true
|
$verbose = true
|
||||||
$debug = hiera('debug', false)
|
$debug = hiera('debug', false)
|
||||||
$use_monit = false
|
$use_monit = false
|
||||||
$master_ip = hiera('master_ip')
|
$master_ip = hiera('master_ip')
|
||||||
$management_network_range = hiera('management_network_range')
|
|
||||||
|
|
||||||
$use_syslog = hiera('use_syslog', true)
|
$use_syslog = hiera('use_syslog', true)
|
||||||
$syslog_log_facility_glance = hiera('syslog_log_facility_glance', 'LOG_LOCAL2')
|
$syslog_log_facility_glance = hiera('syslog_log_facility_glance', 'LOG_LOCAL2')
|
||||||
$syslog_log_facility_cinder = hiera('syslog_log_facility_cinder', 'LOG_LOCAL3')
|
$syslog_log_facility_cinder = hiera('syslog_log_facility_cinder', 'LOG_LOCAL3')
|
||||||
@ -87,13 +94,8 @@ $cinder_rate_limits = hiera('cinder_rate_limits',
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
$node = hiera('node', filter_nodes($nodes_hash, 'name', $::hostname))
|
$default_gateway = get_default_gateways()
|
||||||
if empty($node) {
|
|
||||||
fail("Node hostname is not defined in the hash structure")
|
|
||||||
}
|
|
||||||
$default_gateway = hiera('default_gateway', $node[0]['default_gateway'])
|
|
||||||
|
|
||||||
prepare_network_config($network_scheme)
|
|
||||||
$internal_int = get_network_role_property('management', 'interface')
|
$internal_int = get_network_role_property('management', 'interface')
|
||||||
$public_int = get_network_role_property('ex', 'interface')
|
$public_int = get_network_role_property('ex', 'interface')
|
||||||
$internal_address = get_network_role_property('management', 'ipaddr')
|
$internal_address = get_network_role_property('management', 'ipaddr')
|
||||||
@ -102,6 +104,9 @@ $public_address = get_network_role_property('ex', 'ipaddr')
|
|||||||
$public_netmask = get_network_role_property('ex', 'netmask')
|
$public_netmask = get_network_role_property('ex', 'netmask')
|
||||||
$storage_address = get_network_role_property('storage', 'ipaddr')
|
$storage_address = get_network_role_property('storage', 'ipaddr')
|
||||||
$storage_netmask = get_network_role_property('storage', 'netmask')
|
$storage_netmask = get_network_role_property('storage', 'netmask')
|
||||||
|
$public_vip = $network_metadata['vips']['public_vip']
|
||||||
|
$management_vip = $network_metadata['vips']['management_vip']
|
||||||
|
$database_vip = pick($network_metadata['vips']['database'], $management_vip)
|
||||||
|
|
||||||
if $use_neutron {
|
if $use_neutron {
|
||||||
$novanetwork_params = {}
|
$novanetwork_params = {}
|
||||||
@ -111,6 +116,7 @@ if $use_neutron {
|
|||||||
$neutron_user_password = $neutron_config['keystone']['admin_password']
|
$neutron_user_password = $neutron_config['keystone']['admin_password']
|
||||||
$neutron_metadata_proxy_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
|
$neutron_metadata_proxy_secret = $neutron_config['metadata']['metadata_proxy_shared_secret']
|
||||||
$base_mac = $neutron_config['L2']['base_mac']
|
$base_mac = $neutron_config['L2']['base_mac']
|
||||||
|
$management_network_range = get_network_role_property('mgmt/vip', 'network')
|
||||||
} else {
|
} else {
|
||||||
$neutron_config = {}
|
$neutron_config = {}
|
||||||
$novanetwork_params = hiera('novanetwork_parameters')
|
$novanetwork_params = hiera('novanetwork_parameters')
|
||||||
@ -126,49 +132,35 @@ if $use_neutron {
|
|||||||
'vlan_start' => $vlan_start,
|
'vlan_start' => $vlan_start,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$network_manager = "nova.network.manager.${novanetwork_params['network_manager']}"
|
$network_manager = "nova.network.manager.${novanetwork_params['network_manager']}"
|
||||||
|
$management_network_range = hiera('management_network_range')
|
||||||
}
|
}
|
||||||
|
|
||||||
if $deployment_mode == 'ha_compact' {
|
$primary_controller = $node_role ? { 'primary-controller' => true, default =>false }
|
||||||
$primary_controller = $node_role ? { 'primary-controller' => true, default =>false }
|
$primary_controller_nodes = filter_nodes($nodes_hash,'role','primary-controller')
|
||||||
$primary_controller_nodes = filter_nodes($nodes_hash,'role','primary-controller')
|
$controllers = concat($primary_controller_nodes,
|
||||||
$controllers = concat($primary_controller_nodes,
|
filter_nodes($nodes_hash,'role','controller')
|
||||||
filter_nodes($nodes_hash,'role','controller')
|
)
|
||||||
)
|
$controller_internal_addresses = nodes_to_hash($controllers,'name','internal_address')
|
||||||
$controller_internal_addresses = nodes_to_hash($controllers,'name','internal_address')
|
$controller_public_addresses = nodes_to_hash($controllers,'name','public_address')
|
||||||
$controller_public_addresses = nodes_to_hash($controllers,'name','public_address')
|
$controller_storage_addresses = nodes_to_hash($controllers,'name','storage_address')
|
||||||
$controller_storage_addresses = nodes_to_hash($controllers,'name','storage_address')
|
$controller_hostnames = keys($controller_internal_addresses)
|
||||||
$controller_hostnames = keys($controller_internal_addresses)
|
$controller_nodes = ipsort(values($controller_internal_addresses))
|
||||||
$controller_nodes = ipsort(values($controller_internal_addresses))
|
$controller_node_public = $public_vip
|
||||||
$controller_node_public = hiera('public_vip')
|
$controller_node_address = $management_vip
|
||||||
$controller_node_address = hiera('management_vip')
|
$mountpoints = filter_hash($mp_hash,'point')
|
||||||
$mountpoints = filter_hash($mp_hash,'point')
|
|
||||||
} else {
|
|
||||||
# simple multinode
|
|
||||||
$controller = filter_nodes($nodes_hash, 'role', 'controller')
|
|
||||||
$controller_node_address = $controller[0]['internal_address']
|
|
||||||
$controller_node_public = $controller[0]['public_address']
|
|
||||||
}
|
|
||||||
|
|
||||||
# AMQP configuration
|
# AMQP configuration
|
||||||
$queue_provider = hiera('queue_provider','rabbitmq')
|
$queue_provider = hiera('queue_provider','rabbitmq')
|
||||||
|
|
||||||
if !$rabbit_hash['user'] {
|
if !$rabbit_hash['user'] {
|
||||||
$rabbit_hash['user'] = 'nova'
|
$rabbit_hash['user'] = 'nova'
|
||||||
}
|
}
|
||||||
|
|
||||||
if $deployment_mode == 'ha_compact' {
|
$amqp_port = '5673'
|
||||||
$amqp_port = '5673'
|
$amqp_hosts = amqp_hosts($controller_nodes, $amqp_port, $internal_address)
|
||||||
$amqp_hosts = amqp_hosts($controller_nodes, $amqp_port, $internal_address)
|
$rabbit_ha_queues = true
|
||||||
$rabbit_ha_queues = true
|
$rabbitmq_cluster_nodes = $controller_hostnames
|
||||||
$rabbitmq_cluster_nodes = $controller_hostnames
|
|
||||||
} else {
|
|
||||||
# simple multinode (deprecated)
|
|
||||||
$amqp_port = '5672'
|
|
||||||
$amqp_hosts = amqp_hosts($controller_node_address, $amqp_port)
|
|
||||||
$rabbitmq_cluster_nodes = [ $controller[0]['name'] ]
|
|
||||||
$rabbit_ha_queues = false
|
|
||||||
}
|
|
||||||
|
|
||||||
# MySQL and SQLAlchemy backend configuration
|
# MySQL and SQLAlchemy backend configuration
|
||||||
$custom_mysql_setup_class = hiera('custom_mysql_setup_class', 'galera')
|
$custom_mysql_setup_class = hiera('custom_mysql_setup_class', 'galera')
|
||||||
@ -177,8 +169,8 @@ $max_overflow = hiera('max_overflow', min($::processorcount * 5 + 0,
|
|||||||
$max_retries = hiera('max_retries', '-1')
|
$max_retries = hiera('max_retries', '-1')
|
||||||
$idle_timeout = hiera('idle_timeout','3600')
|
$idle_timeout = hiera('idle_timeout','3600')
|
||||||
$nova_db_password = $nova_hash['db_password']
|
$nova_db_password = $nova_hash['db_password']
|
||||||
$cinder_iscsi_bind_addr = $storage_address
|
$cinder_iscsi_bind_addr = get_network_role_property('cinder/iscsi', 'ipaddr')
|
||||||
$sql_connection = "mysql://nova:${nova_db_password}@${controller_node_address}/nova?read_timeout = 6 0"
|
$sql_connection = "mysql://nova:${nova_db_password}@${database_vip}/nova?read_timeout = 6 0"
|
||||||
$mirror_type = hiera('mirror_type', 'external')
|
$mirror_type = hiera('mirror_type', 'external')
|
||||||
$multi_host = hiera('multi_host', true)
|
$multi_host = hiera('multi_host', true)
|
||||||
|
|
||||||
@ -205,6 +197,18 @@ if ($storage_hash['images_ceph']) {
|
|||||||
$glance_known_stores = false
|
$glance_known_stores = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Define memcached-related variables:
|
||||||
|
# todo(sv): change to 'memcache' as soon as this node role was ready
|
||||||
|
$memcache_servers = values(get_node_to_ipaddr_map_by_network_role(get_nodes_hash_by_roles($network_metadata, ['primary-controller', 'controller']), 'mgmt/memcache'))
|
||||||
|
|
||||||
|
# Define swift-related variables
|
||||||
|
# todo(sv): use special node-roles instead controllers in the future
|
||||||
|
$swift_master_role = 'primary-controller'
|
||||||
|
$swift_nodes = get_nodes_hash_by_roles($network_metadata, ['primary-controller', 'controller'])
|
||||||
|
$swift_proxies = get_nodes_hash_by_roles($network_metadata, ['primary-controller', 'controller'])
|
||||||
|
$swift_proxy_caches = get_nodes_hash_by_roles($network_metadata, ['primary-controller', 'controller']) # memcache for swift
|
||||||
|
$is_primary_swift_proxy = $primary_controller
|
||||||
|
|
||||||
# save all these global variables into hiera yaml file for later use
|
# save all these global variables into hiera yaml file for later use
|
||||||
# by other manifests with hiera function
|
# by other manifests with hiera function
|
||||||
file { '/etc/hiera/globals.yaml' :
|
file { '/etc/hiera/globals.yaml' :
|
||||||
|
@ -15,7 +15,7 @@ if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$stora
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($use_swift) {
|
if ($use_swift) {
|
||||||
$swift_proxies = hiera('swift_proxies', $haproxy_nodes)
|
$swift_proxies = hiera_hash('swift_proxies', undef)
|
||||||
} elsif ($storage_hash['objects_ceph']) {
|
} elsif ($storage_hash['objects_ceph']) {
|
||||||
$rgw_servers = hiera('rgw_servers', $controllers)
|
$rgw_servers = hiera('rgw_servers', $controllers)
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ $keystone_hash = hiera('keystone', {})
|
|||||||
$cinder_hash = hiera_hash('cinder', {})
|
$cinder_hash = hiera_hash('cinder', {})
|
||||||
$ceilometer_hash = hiera('ceilometer',{})
|
$ceilometer_hash = hiera('ceilometer',{})
|
||||||
$access_hash = hiera('access', {})
|
$access_hash = hiera('access', {})
|
||||||
$network_scheme = hiera('network_scheme', {})
|
$network_scheme = hiera_hash('network_scheme')
|
||||||
$controllers = hiera('controllers')
|
$controllers = hiera('controllers')
|
||||||
$neutron_mellanox = hiera('neutron_mellanox', false)
|
$neutron_mellanox = hiera('neutron_mellanox', false)
|
||||||
$syslog_hash = hiera('syslog', {})
|
$syslog_hash = hiera('syslog', {})
|
||||||
@ -93,9 +93,9 @@ class { 'l23network' :
|
|||||||
}
|
}
|
||||||
|
|
||||||
if $use_neutron {
|
if $use_neutron {
|
||||||
$neutron_config = hiera('quantum_settings')
|
$neutron_config = hiera('quantum_settings')
|
||||||
} else {
|
} else {
|
||||||
$neutron_config = {}
|
$neutron_config = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
if !$ceilometer_hash {
|
if !$ceilometer_hash {
|
||||||
@ -295,9 +295,9 @@ if ($use_ceph and !$storage_hash['volumes_lvm']) {
|
|||||||
$primary_mon = $controllers[0]['name']
|
$primary_mon = $controllers[0]['name']
|
||||||
|
|
||||||
if ($use_neutron) {
|
if ($use_neutron) {
|
||||||
prepare_network_config($network_scheme)
|
prepare_network_config(hiera_hash('network_scheme'))
|
||||||
$ceph_cluster_network = get_network_role_property('storage', 'cidr')
|
$ceph_cluster_network = get_network_role_property('ceph/replication', 'network')
|
||||||
$ceph_public_network = get_network_role_property('management', 'cidr')
|
$ceph_public_network = get_network_role_property('ceph/public', 'network')
|
||||||
} else {
|
} else {
|
||||||
$ceph_cluster_network = hiera('storage_network_range')
|
$ceph_cluster_network = hiera('storage_network_range')
|
||||||
$ceph_public_network = hiera('management_network_range')
|
$ceph_public_network = hiera('management_network_range')
|
||||||
|
@ -1,18 +1,24 @@
|
|||||||
notice('MODULAR: swift/rebalance_cronjob.pp')
|
notice('MODULAR: swift/rebalance_cronjob.pp')
|
||||||
|
|
||||||
|
$network_metadata = hiera_hash('network_metadata')
|
||||||
|
# $network_scheme = hiera_hash('network_scheme')
|
||||||
|
# prepare_network_config($network_scheme)
|
||||||
|
|
||||||
$storage_hash = hiera('storage_hash')
|
$storage_hash = hiera('storage_hash')
|
||||||
$swift_master_role = hiera('swift_master_role', 'primary-controller')
|
$swift_master_role = hiera('swift_master_role', 'primary-controller')
|
||||||
$ring_min_part_hours = hiera('swift_ring_min_part_hours', 1)
|
$ring_min_part_hours = hiera('swift_ring_min_part_hours', 1)
|
||||||
|
|
||||||
# Use Swift if it isn't replaced by vCenter, Ceph for BOTH images and objects
|
# Use Swift if it isn't replaced by vCenter, Ceph for BOTH images and objects
|
||||||
if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$storage_hash['images_vcenter'] {
|
if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$storage_hash['images_vcenter'] {
|
||||||
$master_swift_proxy_nodes = filter_nodes(hiera('nodes_hash'),'role',$swift_master_role)
|
$master_swift_replication_nodes = get_nodes_hash_by_roles($network_metadata, [$swift_master_role])
|
||||||
$master_swift_proxy_ip = $master_swift_proxy_nodes[0]['storage_address']
|
$master_swift_replication_nodes_list = values($master_swift_replication_nodes)
|
||||||
|
$master_swift_replication_ip = $master_swift_replication_nodes_list[0]['network_roles']['swift/replication']
|
||||||
|
|
||||||
|
|
||||||
# setup a cronjob to rebalance and repush rings periodically
|
# setup a cronjob to rebalance and repush rings periodically
|
||||||
class { 'openstack::swift::rebalance_cronjob':
|
class { 'openstack::swift::rebalance_cronjob':
|
||||||
ring_rebalance_period => min($ring_min_part_hours * 2, 23),
|
ring_rebalance_period => min($ring_min_part_hours * 2, 23),
|
||||||
master_swift_proxy_ip => $master_swift_proxy_ip,
|
master_swift_replication_ip => $master_swift_replication_ip,
|
||||||
primary_proxy => hiera('primary_controller'),
|
primary_proxy => hiera('is_primary_swift_proxy'),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,58 +1,63 @@
|
|||||||
notice('MODULAR: swift.pp')
|
notice('MODULAR: swift.pp')
|
||||||
|
|
||||||
$swift_hash = hiera_hash('swift_hash')
|
$network_scheme = hiera_hash('network_scheme')
|
||||||
$swift_master_role = hiera('swift_master_role', 'primary-controller')
|
$network_metadata = hiera_hash('network_metadata')
|
||||||
$swift_nodes = pick(hiera('swift_nodes', undef), hiera('controllers', undef))
|
prepare_network_config($network_scheme)
|
||||||
$swift_proxies_cache = pick(hiera('swift_proxies_cache', undef), hiera('controller_nodes', undef))
|
|
||||||
$primary_swift = pick(hiera('primary_swift', undef), hiera('primary_controller', undef))
|
$swift_hash = hiera_hash('swift_hash')
|
||||||
$proxy_port = hiera('proxy_port', '8080')
|
$swift_master_role = hiera('swift_master_role', 'primary-controller')
|
||||||
$network_scheme = hiera('network_scheme', {})
|
$swift_nodes = hiera_hash('swift_nodes', {})
|
||||||
$storage_hash = hiera('storage_hash')
|
$swift_proxies_addr_list = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('swift_proxies', {}), 'swift/api'))
|
||||||
$mp_hash = hiera('mp')
|
# todo(sv) replace 'management' to mgmt/memcache
|
||||||
$management_vip = hiera('management_vip')
|
$memcaches_addr_list = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('swift_proxy_caches', {}), 'management'))
|
||||||
$debug = hiera('debug', false)
|
$is_primary_swift_proxy = hiera('is_primary_swift_proxy', false)
|
||||||
$verbose = hiera('verbose')
|
$proxy_port = hiera('proxy_port', '8080')
|
||||||
$storage_address = hiera('storage_address')
|
$storage_hash = hiera_hash('storage_hash')
|
||||||
$node = hiera('node')
|
$mp_hash = hiera('mp')
|
||||||
$ring_min_part_hours = hiera('swift_ring_min_part_hours', 1)
|
$management_vip = hiera('management_vip')
|
||||||
$deploy_swift_storage = hiera('deploy_swift_storage', true)
|
$public_vip = hiera('public_vip')
|
||||||
$deploy_swift_proxy = hiera('deploy_swift_proxy', true)
|
$swift_api_ipaddr = get_network_role_property('swift/api', 'ipaddr')
|
||||||
$create_keystone_auth = pick($swift_hash['create_keystone_auth'], true)
|
$swift_storage_ipaddr = get_network_role_property('swift/replication', 'ipaddr')
|
||||||
|
$debug = hiera('debug', false)
|
||||||
|
$verbose = hiera('verbose', false)
|
||||||
|
$ring_min_part_hours = hiera('swift_ring_min_part_hours', 1)
|
||||||
|
$deploy_swift_storage = hiera('deploy_swift_storage', true)
|
||||||
|
$deploy_swift_proxy = hiera('deploy_swift_proxy', true)
|
||||||
|
$create_keystone_auth = pick($swift_hash['create_keystone_auth'], true)
|
||||||
#Keystone settings
|
#Keystone settings
|
||||||
$service_endpoint = hiera('service_endpoint', $management_vip)
|
$service_endpoint = hiera('service_endpoint', $management_vip)
|
||||||
$keystone_endpoint = hiera('keystone_endpoint', $service_endpoint)
|
$keystone_endpoint = hiera('keystone_endpoint', $service_endpoint)
|
||||||
$keystone_user = pick($swift_hash['user'], 'swift')
|
$keystone_user = pick($swift_hash['user'], 'swift')
|
||||||
$keystone_password = pick($swift_hash['user_password'], 'passsword')
|
$keystone_password = pick($swift_hash['user_password'], 'passsword')
|
||||||
$keystone_tenant = pick($swift_hash['tenant'], 'services')
|
$keystone_tenant = pick($swift_hash['tenant'], 'services')
|
||||||
$keystone_protocol = pick($swift_hash['auth_protocol'], 'http')
|
$keystone_protocol = pick($swift_hash['auth_protocol'], 'http')
|
||||||
$region = hiera('region', 'RegionOne')
|
$region = hiera('region', 'RegionOne')
|
||||||
|
|
||||||
# Use Swift if it isn't replaced by vCenter, Ceph for BOTH images and objects
|
# Use Swift if it isn't replaced by vCenter, Ceph for BOTH images and objects
|
||||||
if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$storage_hash['images_vcenter'] {
|
if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$storage_hash['images_vcenter'] {
|
||||||
$swift_partition = hiera('swift_partition', '/var/lib/glance/node')
|
$master_swift_proxy_nodes = get_nodes_hash_by_roles($network_metadata, [$swift_master_role])
|
||||||
$master_swift_proxy_nodes = filter_nodes(hiera('nodes_hash'),'role',$swift_master_role)
|
$master_swift_proxy_nodes_list = values($master_swift_proxy_nodes)
|
||||||
$master_swift_proxy_ip = $master_swift_proxy_nodes[0]['storage_address']
|
$master_swift_proxy_ip = regsubst($master_swift_proxy_nodes_list[0]['network_roles']['swift/api'], '\/\d+$', '')
|
||||||
if ($primary_swift) {
|
$master_swift_replication_ip = regsubst($master_swift_proxy_nodes_list[0]['network_roles']['swift/replication'], '\/\d+$', '')
|
||||||
$primary_proxy = true
|
|
||||||
} else {
|
|
||||||
$primary_proxy = false
|
|
||||||
}
|
|
||||||
if ($deploy_swift_storage){
|
if ($deploy_swift_storage){
|
||||||
class { 'openstack::swift::storage_node':
|
class { 'openstack::swift::storage_node':
|
||||||
storage_type => false,
|
storage_type => false,
|
||||||
loopback_size => '5243780',
|
loopback_size => '5243780',
|
||||||
storage_mnt_base_dir => $swift_partition,
|
storage_mnt_base_dir => $swift_partition,
|
||||||
storage_devices => filter_hash($mp_hash,'point'),
|
storage_devices => filter_hash($mp_hash,'point'),
|
||||||
swift_zone => $node[0]['swift_zone'],
|
swift_zone => $master_swift_proxy_nodes_list[0]['swift_zone'],
|
||||||
swift_local_net_ip => $storage_address,
|
swift_local_net_ip => $swift_storage_ipaddr,
|
||||||
master_swift_proxy_ip => $master_swift_proxy_ip,
|
master_swift_proxy_ip => $master_swift_proxy_ip,
|
||||||
sync_rings => ! $primary_proxy,
|
master_swift_replication_ip => $master_swift_replication_ip,
|
||||||
|
sync_rings => ! $is_primary_swift_proxy,
|
||||||
debug => $debug,
|
debug => $debug,
|
||||||
verbose => $verbose,
|
verbose => $verbose,
|
||||||
log_facility => 'LOG_SYSLOG',
|
log_facility => 'LOG_SYSLOG',
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if $primary_proxy {
|
|
||||||
|
if $is_primary_swift_proxy {
|
||||||
ring_devices {'all':
|
ring_devices {'all':
|
||||||
storages => $swift_nodes,
|
storages => $swift_nodes,
|
||||||
require => Class['swift'],
|
require => Class['swift'],
|
||||||
@ -61,18 +66,19 @@ if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$stora
|
|||||||
|
|
||||||
if ($deploy_swift_proxy){
|
if ($deploy_swift_proxy){
|
||||||
$resize_value = pick($swift_hash['resize_value'], 2)
|
$resize_value = pick($swift_hash['resize_value'], 2)
|
||||||
|
|
||||||
$ring_part_power = calc_ring_part_power($swift_nodes,$resize_value)
|
$ring_part_power = calc_ring_part_power($swift_nodes,$resize_value)
|
||||||
$sto_net = $network_scheme['endpoints'][$network_scheme['roles']['storage']]['IP']
|
$sto_net = get_network_role_property('swift/replication', 'network')
|
||||||
$man_net = $network_scheme['endpoints'][$network_scheme['roles']['management']]['IP']
|
$man_net = get_network_role_property('swift/api', 'network')
|
||||||
|
|
||||||
class { 'openstack::swift::proxy':
|
class { 'openstack::swift::proxy':
|
||||||
swift_user_password => $swift_hash['user_password'],
|
swift_user_password => $swift_hash['user_password'],
|
||||||
swift_proxies_cache => $swift_proxies_cache,
|
swift_proxies_cache => $memcaches_addr_list,
|
||||||
ring_part_power => $ring_part_power,
|
ring_part_power => $ring_part_power,
|
||||||
primary_proxy => $primary_proxy,
|
primary_proxy => $is_primary_swift_proxy,
|
||||||
swift_local_net_ip => $storage_address,
|
swift_proxy_local_ipaddr => $swift_api_ipaddr,
|
||||||
master_swift_proxy_ip => $master_swift_proxy_ip,
|
swift_replication_local_ipaddr => $swift_storage_ipaddr,
|
||||||
|
master_swift_proxy_ip => $master_swift_proxy_ip,
|
||||||
|
master_swift_replication_ip => $master_swift_replication_ip,
|
||||||
proxy_port => $proxy_port,
|
proxy_port => $proxy_port,
|
||||||
debug => $debug,
|
debug => $debug,
|
||||||
verbose => $verbose,
|
verbose => $verbose,
|
||||||
@ -85,9 +91,8 @@ if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$stora
|
|||||||
auth_host => $keystone_endpoint,
|
auth_host => $keystone_endpoint,
|
||||||
auth_protocol => $keystone_protocol,
|
auth_protocol => $keystone_protocol,
|
||||||
} ->
|
} ->
|
||||||
|
|
||||||
class { 'openstack::swift::status':
|
class { 'openstack::swift::status':
|
||||||
endpoint => "http://${storage_address}:${proxy_port}",
|
endpoint => "http://${swift_api_ipaddr}:${proxy_port}",
|
||||||
vip => $management_vip,
|
vip => $management_vip,
|
||||||
only_from => "127.0.0.1 240.0.0.2 ${sto_net} ${man_net}",
|
only_from => "127.0.0.1 240.0.0.2 ${sto_net} ${man_net}",
|
||||||
con_timeout => 5
|
con_timeout => 5
|
||||||
@ -96,7 +101,7 @@ if !($storage_hash['images_ceph'] and $storage_hash['objects_ceph']) and !$stora
|
|||||||
if ($create_keystone_auth){
|
if ($create_keystone_auth){
|
||||||
class { 'swift::keystone::auth':
|
class { 'swift::keystone::auth':
|
||||||
password => $swift_hash['user_password'],
|
password => $swift_hash['user_password'],
|
||||||
public_address => hiera('public_vip'),
|
public_address => $public_vip,
|
||||||
region => $region,
|
region => $region,
|
||||||
internal_address => $management_vip,
|
internal_address => $management_vip,
|
||||||
admin_address => $management_vip,
|
admin_address => $management_vip,
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
<% globals.store "controller", @controller -%>
|
<% globals.store "controller", @controller -%>
|
||||||
<% globals.store "controller_hostnames", @controller_hostnames -%>
|
<% globals.store "controller_hostnames", @controller_hostnames -%>
|
||||||
<% globals.store "controller_internal_addresses", @controller_internal_addresses -%>
|
<% globals.store "controller_internal_addresses", @controller_internal_addresses -%>
|
||||||
<% globals.store "controller_node_address", @controller_node_address -%>
|
<% globals.store "controller_node_address", @management_vip -%>
|
||||||
<% globals.store "controller_node_public", @controller_node_public -%>
|
<% globals.store "controller_node_public", @public_vip -%>
|
||||||
<% globals.store "controller_nodes", @controller_nodes -%>
|
<% globals.store "controller_nodes", @controller_nodes -%>
|
||||||
<% globals.store "controller_public_addresses", @controller_public_addresses -%>
|
<% globals.store "controller_public_addresses", @controller_public_addresses -%>
|
||||||
<% globals.store "controller_storage_addresses", @controller_storage_addresses -%>
|
<% globals.store "controller_storage_addresses", @controller_storage_addresses -%>
|
||||||
@ -25,11 +25,11 @@
|
|||||||
<% globals.store "default_gateway", @default_gateway -%>
|
<% globals.store "default_gateway", @default_gateway -%>
|
||||||
<% globals.store "deployment_mode", @deployment_mode -%>
|
<% globals.store "deployment_mode", @deployment_mode -%>
|
||||||
<% globals.store "dns_nameservers", @dns_nameservers -%>
|
<% globals.store "dns_nameservers", @dns_nameservers -%>
|
||||||
<% globals.store "fuel_settings", @fuel_settings -%>
|
|
||||||
<% globals.store "glance_backend", @glance_backend -%>
|
<% globals.store "glance_backend", @glance_backend -%>
|
||||||
<% globals.store "glance_hash", @glance_hash -%>
|
<% globals.store "glance_hash", @glance_hash -%>
|
||||||
<% globals.store "glance_known_stores", @glance_known_stores -%>
|
<% globals.store "glance_known_stores", @glance_known_stores -%>
|
||||||
<% globals.store "heat_hash", @heat_hash -%>
|
<% globals.store "heat_hash", @heat_hash -%>
|
||||||
|
<% globals.store "node_name", @node_name -%>
|
||||||
<% globals.store "idle_timeout", @idle_timeout -%>
|
<% globals.store "idle_timeout", @idle_timeout -%>
|
||||||
<% globals.store "internal_address", @internal_address -%>
|
<% globals.store "internal_address", @internal_address -%>
|
||||||
<% globals.store "internal_int", @internal_int -%>
|
<% globals.store "internal_int", @internal_int -%>
|
||||||
@ -100,4 +100,14 @@
|
|||||||
<% globals.store "vcenter_hash", @vcenter_hash -%>
|
<% globals.store "vcenter_hash", @vcenter_hash -%>
|
||||||
<% globals.store "verbose", @verbose -%>
|
<% globals.store "verbose", @verbose -%>
|
||||||
<% globals.store "vlan_start", @vlan_start -%>
|
<% globals.store "vlan_start", @vlan_start -%>
|
||||||
|
<% globals.store "management_vip", @management_vip -%>
|
||||||
|
<% globals.store "database_vip", @database_vip -%>
|
||||||
|
<% globals.store "public_vip", @public_vip -%>
|
||||||
|
<% globals.store "memcache_servers", @memcache_servers -%>
|
||||||
|
<% globals.store "swift_master_role", @swift_master_role -%>
|
||||||
|
<% globals.store "swift_nodes", @swift_nodes -%>
|
||||||
|
<% globals.store "swift_proxies", @swift_proxies -%>
|
||||||
|
<% globals.store "swift_proxy_caches", @swift_proxy_caches -%>
|
||||||
|
<% globals.store "is_primary_swift_proxy", @is_primary_swift_proxy -%>
|
||||||
|
|
||||||
<%= YAML.dump globals %>
|
<%= YAML.dump globals %>
|
||||||
|
Loading…
Reference in New Issue
Block a user