Refactor code of LB backends waiting pieces
This commit introduces a couple of classes and a function to allow a user to specify for which load balancing checkers to wait. Change-Id: I9548ae440111fb0c2356ccb897318d30a8e264ff Related-bug: #1533279
This commit is contained in:
parent
b19507b9a7
commit
cbcb81d343
@ -212,6 +212,5 @@ class openstack::keystone (
|
||||
}
|
||||
|
||||
Exec <| title == 'keystone-manage db_sync' |> -> Class['keystone::endpoint']
|
||||
Haproxy_backend_status<||> -> Class['keystone::endpoint']
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,32 @@
|
||||
module Puppet::Parser::Functions
|
||||
newfunction(:ensure_resource_with_default, :type => :statement,
|
||||
:doc => <<-EOS
|
||||
Gets a hash of resources and default params, merges default params
|
||||
into each hash and calls ensure_resource puppet function
|
||||
EOS
|
||||
) do |arguments|
|
||||
|
||||
raise(Puppet::ParseError, 'Not enough arguments provided. Expected 2 Hashes') if
|
||||
arguments.size < 3 or !arguments[1].is_a?(Hash) or !arguments[2].is_a?(Hash)
|
||||
|
||||
resource_type = arguments[0]
|
||||
resources_hash = arguments[1]
|
||||
defaults_hash = arguments[2]
|
||||
debug("Defaults hash: #{defaults_hash.inspect}")
|
||||
debug("Resources hash: #{resources_hash.inspect}")
|
||||
resources_hash.each do |resource,resource_params|
|
||||
merged_hash = defaults_hash.merge(resource_params) do |key, defval, val|
|
||||
if val.to_sym == :undef or val.nil? or val.empty?
|
||||
defval
|
||||
else
|
||||
val
|
||||
end
|
||||
end
|
||||
debug("Merge results: #{merged_hash.inspect}")
|
||||
resources_hash[resource] = merged_hash
|
||||
function_ensure_resource([resource_type,resource,merged_hash])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# vim: set ts=2 sw=2 et :
|
@ -0,0 +1,24 @@
|
||||
# == Class: osnailyfacter::wait_for_backend
|
||||
#
|
||||
# Class which wraps around haproxy_backend_status
|
||||
# and allows one to pass a hash to it and merge
|
||||
# it with a default hash in order to create
|
||||
# a set of similar checks for load balancer backends
|
||||
#
|
||||
# == Parameters
|
||||
#
|
||||
# [*lb_hash*]
|
||||
# A hash of haproxy_backend_status resources to ensure
|
||||
#
|
||||
# [*lb_defaults*]
|
||||
# A hash of load balancer default settings which should be merged
|
||||
#
|
||||
|
||||
|
||||
define osnailyfacter::wait_for_backend (
|
||||
$lb_hash = {},
|
||||
$lb_defaults = {},
|
||||
)
|
||||
{
|
||||
ensure_resource_with_default('haproxy_backend_status',$lb_hash,$lb_defaults)
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
# == Class: osnailyfacter::wait_for_keystone_backends
|
||||
#
|
||||
# This class is created to introduce one entry
|
||||
# point to check for keystone backends
|
||||
#
|
||||
class osnailyfacter::wait_for_keystone_backends
|
||||
{
|
||||
$management_vip = hiera('management_vip')
|
||||
$service_endpoint = hiera('service_endpoint')
|
||||
$external_lb = hiera('external_lb', false)
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
|
||||
$admin_identity_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'protocol', 'http')
|
||||
$admin_identity_address = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint, $management_vip])
|
||||
$admin_identity_url = "${admin_identity_protocol}://${admin_identity_address}:35357/v3"
|
||||
$internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http')
|
||||
$internal_auth_address = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$internal_auth_url = "${internal_auth_protocol}://${internal_auth_address}:5000/v3"
|
||||
|
||||
$haproxy_stats_url = "http://${service_endpoint}:10000/;csv"
|
||||
|
||||
$lb_defaults = {
|
||||
step => 6,
|
||||
count => 200,
|
||||
provider => 'haproxy',
|
||||
url => $haproxy_stats_url
|
||||
}
|
||||
|
||||
if $external_lb {
|
||||
$lb_keystone_admin =
|
||||
{
|
||||
provider => 'http',
|
||||
url => $admin_identity_url
|
||||
}
|
||||
$lb_keystone_public = {
|
||||
provider => 'http',
|
||||
url => $internal_auth_url
|
||||
}
|
||||
}
|
||||
$lb_hash = {
|
||||
'keystone-admin' => merge(
|
||||
{ name => 'keystone-2' },
|
||||
$lb_keystone_admin
|
||||
),
|
||||
'keystone-public' => merge(
|
||||
{ name => 'keystone-1' },
|
||||
$lb_keystone_public
|
||||
)
|
||||
}
|
||||
|
||||
::osnailyfacter::wait_for_backend {'keystone':
|
||||
lb_hash => $lb_hash,
|
||||
lb_defaults => $lb_defaults
|
||||
}
|
||||
|
||||
}
|
@ -6,6 +6,8 @@ $management_vip = hiera('management_vip')
|
||||
$public_ssl_hash = hiera('public_ssl')
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::ceilometer::keystone::auth']
|
||||
|
||||
$public_protocol = get_ssl_property($ssl_hash, $public_ssl_hash, 'ceilometer', 'public', 'protocol', 'http')
|
||||
$public_address = get_ssl_property($ssl_hash, $public_ssl_hash, 'ceilometer', 'public', 'hostname', [$public_vip])
|
||||
|
||||
@ -23,7 +25,6 @@ $configure_user = pick($ceilometer_hash['configure_user'], true)
|
||||
$configure_user_role = pick($ceilometer_hash['configure_user_role'], true)
|
||||
$service_name = pick($ceilometer_hash['service_name'], 'ceilometer')
|
||||
$tenant = pick($ceilometer_hash['tenant'], 'services')
|
||||
|
||||
validate_string($public_address)
|
||||
validate_string($password)
|
||||
|
||||
@ -31,6 +32,8 @@ $public_url = "${public_protocol}://${public_address}:8777"
|
||||
$internal_url = "${internal_protocol}://${internal_address}:8777"
|
||||
$admin_url = "${admin_protocol}://${admin_address}:8777"
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
|
||||
class { '::ceilometer::keystone::auth':
|
||||
password => $password,
|
||||
auth_name => $auth_name,
|
||||
|
@ -50,37 +50,14 @@ if $use_ceph and $storage_hash['objects_ceph'] {
|
||||
|
||||
$haproxy_stats_url = "http://${service_endpoint}:10000/;csv"
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
$internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http')
|
||||
$internal_auth_address = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$internal_auth_url = "${internal_auth_protocol}://${internal_auth_address}:5000"
|
||||
}
|
||||
$internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http')
|
||||
$internal_auth_address = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$internal_auth_url = "${internal_auth_protocol}://${internal_auth_address}:5000"
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
count => '200',
|
||||
step => '6',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $admin_identity_url,
|
||||
},
|
||||
}
|
||||
class { '::osnailyfacter::wait_for_keystone_backends': }
|
||||
|
||||
haproxy_backend_status { 'keystone-public' :
|
||||
name => 'keystone-1',
|
||||
count => '200',
|
||||
step => '6',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $internal_auth_url,
|
||||
},
|
||||
}
|
||||
|
||||
Haproxy_backend_status['keystone-admin'] -> Class['ceph::keystone']
|
||||
Haproxy_backend_status['keystone-public'] -> Class['ceph::keystone']
|
||||
Class[::Osnailyfacter::Wait_for_keystone_backends] -> Class['ceph::keystone']
|
||||
|
||||
class { 'ceph::radosgw':
|
||||
# SSL
|
||||
|
@ -116,20 +116,24 @@ if $enabled {
|
||||
only_from => "127.0.0.1 240.0.0.2 ${management_networks}",
|
||||
}
|
||||
|
||||
$lb_defaults = { 'provider' => 'haproxy', 'url' => $haproxy_stats_url }
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
$lb_backend_provider = 'http'
|
||||
$lb_url = "http://${database_vip}:49000"
|
||||
}
|
||||
|
||||
$lb_hash = {
|
||||
mysql => {
|
||||
name => 'mysqld',
|
||||
provider => $lb_backend_provider,
|
||||
url => $lb_url
|
||||
}
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'mysql':
|
||||
name => 'mysqld',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
# You should setup HTTP frontend for mysqld-status on yout external LB.
|
||||
# Otherwise it's impossible to wait for mysql cluster to sync.
|
||||
true => "http://${database_vip}:49000",
|
||||
},
|
||||
::osnailyfacter::wait_for_backend {'mysql':
|
||||
lb_hash => $lb_hash,
|
||||
lb_defaults => $lb_defaults
|
||||
}
|
||||
|
||||
class { 'osnailyfacter::mysql_access':
|
||||
@ -140,7 +144,7 @@ if $enabled {
|
||||
Class['osnailyfacter::mysql_user'] ->
|
||||
Exec['initial_access_config'] ->
|
||||
Class['openstack::galera::status'] ->
|
||||
Haproxy_backend_status['mysql'] ->
|
||||
::Osnailyfacter::Wait_for_backend['mysql'] ->
|
||||
Class['osnailyfacter::mysql_access']
|
||||
|
||||
}
|
||||
|
@ -14,6 +14,8 @@ $service_name = pick($glance_hash['service_name'], 'glance')
|
||||
$tenant = pick($glance_hash['tenant'], 'services')
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::glance::keystone::auth']
|
||||
|
||||
$public_protocol = get_ssl_property($ssl_hash, $public_ssl_hash, 'glance', 'public', 'protocol', 'http')
|
||||
$public_address = get_ssl_property($ssl_hash, $public_ssl_hash, 'glance', 'public', 'hostname', [$public_vip])
|
||||
$internal_protocol = get_ssl_property($ssl_hash, {}, 'glance', 'internal', 'protocol', 'http')
|
||||
@ -28,6 +30,8 @@ $admin_url = "${admin_protocol}://${admin_address}:9292"
|
||||
validate_string($public_address)
|
||||
validate_string($password)
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
|
||||
class { '::glance::keystone::auth':
|
||||
password => $password,
|
||||
auth_name => $auth_name,
|
||||
|
@ -172,21 +172,7 @@ if !$::os_package_type or $::os_package_type != 'ubuntu' {
|
||||
|
||||
$haproxy_stats_url = "http://${service_endpoint}:10000/;csv"
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
count => '200',
|
||||
step => '6',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $identity_uri,
|
||||
},
|
||||
}
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
|
||||
class { 'heat::keystone::domain' :
|
||||
domain_name => 'heat',
|
||||
@ -197,14 +183,14 @@ class { 'heat::keystone::domain' :
|
||||
}
|
||||
|
||||
Class['heat'] ->
|
||||
Haproxy_backend_status['keystone-admin'] ->
|
||||
Class['heat::keystone::domain'] ~>
|
||||
Service<| title == 'heat-engine' |>
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] ->
|
||||
Class['heat::keystone::domain'] ~>
|
||||
Service<| title == 'heat-engine' |>
|
||||
|
||||
######################
|
||||
|
||||
exec { 'wait_for_heat_config' :
|
||||
command => 'sync && sleep 3',
|
||||
command => 'sync && sleep 3',
|
||||
provider => 'shell',
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,9 @@ $configure_user_role = pick($heat_hash['configure_user_role'], true)
|
||||
$service_name = pick($heat_hash['service_name'], 'heat')
|
||||
$tenant = pick($heat_hash['tenant'], 'services')
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::heat::keystone::auth']
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::heat::keystone::auth_cfn']
|
||||
|
||||
validate_string($public_address)
|
||||
validate_string($password)
|
||||
|
||||
@ -34,6 +37,7 @@ $public_url_cfn = "${public_protocol}://${public_address}:8000/v1"
|
||||
$internal_url_cfn = "${internal_protocol}://${internal_address}:8000/v1"
|
||||
$admin_url_cfn = "${admin_protocol}://${admin_address}:8000/v1"
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends': }
|
||||
|
||||
class { '::heat::keystone::auth' :
|
||||
password => $password,
|
||||
@ -60,3 +64,4 @@ class { '::heat::keystone::auth_cfn' :
|
||||
internal_url => $internal_url_cfn,
|
||||
admin_url => $admin_url_cfn,
|
||||
}
|
||||
|
||||
|
@ -79,39 +79,9 @@ class { 'openstack::horizon':
|
||||
file_upload_max_size => $file_upload_max_size,
|
||||
}
|
||||
|
||||
$haproxy_stats_url = "http://${service_endpoint}:10000/;csv"
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
$admin_identity_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'protocol', 'http')
|
||||
$admin_identity_address = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint, $management_vip])
|
||||
$admin_identity_url = "${admin_identity_protocol}://${admin_identity_address}:35357"
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'keystone-public' :
|
||||
name => 'keystone-1',
|
||||
count => '30',
|
||||
step => '3',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $keystone_url,
|
||||
},
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
count => '30',
|
||||
step => '3',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $admin_identity_url,
|
||||
},
|
||||
}
|
||||
|
||||
Class['openstack::horizon'] -> Haproxy_backend_status['keystone-admin']
|
||||
Class['openstack::horizon'] -> Haproxy_backend_status['keystone-public']
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
Class['openstack::horizon'] -> Class['::osnailyfacter::wait_for_keystone_backends']
|
||||
|
||||
# TODO(aschultz): remove this if openstack-dashboard stops installing
|
||||
# openstack-dashboard-apache
|
||||
|
@ -12,6 +12,8 @@ $configure_user = pick($ironic_hash['configure_user'], true)
|
||||
$configure_user_role = pick($ironic_hash['configure_user_role'], true)
|
||||
$service_name = pick($ironic_hash['service_name'], 'ironic')
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['ironic::keystone::auth']
|
||||
|
||||
$public_address = $public_ssl_hash['services'] ? {
|
||||
true => $public_ssl_hash['hostname'],
|
||||
default => $public_vip,
|
||||
@ -27,6 +29,7 @@ $public_url = "${public_protocol}://${public_address}:6385"
|
||||
$admin_url = "http://${management_vip}:6385"
|
||||
$internal_url = "http://${management_vip}:6385"
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
class { 'ironic::keystone::auth':
|
||||
password => $ironic_user_password,
|
||||
region => $region,
|
||||
|
@ -235,31 +235,12 @@ Class['openstack::auth_file']
|
||||
|
||||
$haproxy_stats_url = "http://${service_endpoint}:10000/;csv"
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
}
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
|
||||
haproxy_backend_status { 'keystone-public' :
|
||||
name => 'keystone-1',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $internal_url,
|
||||
},
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $admin_url,
|
||||
},
|
||||
}
|
||||
|
||||
Service['keystone'] -> Haproxy_backend_status<||>
|
||||
Service<| title == 'httpd' |> -> Haproxy_backend_status<||>
|
||||
Haproxy_backend_status<||> -> Class['keystone::roles::admin']
|
||||
Service['keystone'] -> Class['::osnailyfacter::wait_for_keystone_backends']
|
||||
Service<| title == 'httpd' |> -> Class['::osnailyfacter::wait_for_keystone_backends']
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['keystone::roles::admin']
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['keystone::endpoint']
|
||||
|
||||
####### Disable upstart startup on install #######
|
||||
if ($::operatingsystem == 'Ubuntu') {
|
||||
|
@ -1,31 +1,13 @@
|
||||
notice('MODULAR: keystone/workloads_collector_add.pp')
|
||||
|
||||
$workloads_hash = hiera('workloads_collector', {})
|
||||
$service_endpoint = hiera('service_endpoint')
|
||||
$external_lb = hiera('external_lb', false)
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
$management_vip = hiera('management_vip')
|
||||
|
||||
$haproxy_stats_url = "http://${service_endpoint}:10000/;csv"
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
$admin_identity_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'protocol', 'http')
|
||||
$admin_identity_address = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint, $management_vip])
|
||||
$admin_identity_url = "${admin_identity_protocol}://${admin_identity_address}:35357"
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
count => '200',
|
||||
step => '6',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $admin_identity_url,
|
||||
},
|
||||
} ->
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::openstack::workloads_collector']
|
||||
|
||||
class { 'openstack::workloads_collector':
|
||||
enabled => $workloads_hash['enabled'],
|
||||
|
@ -1,33 +1,12 @@
|
||||
notice('MODULAR: keystone/workloads_collector_remove.pp')
|
||||
|
||||
$workloads_hash = hiera('workloads_collector', {})
|
||||
$service_endpoint = hiera('service_endpoint')
|
||||
$external_lb = hiera('external_lb', false)
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
$management_vip = hiera('management_vip')
|
||||
|
||||
$haproxy_stats_url = "http://${service_endpoint}:10000/;csv"
|
||||
$workloads_username = $workloads_hash['username']
|
||||
$workloads_tenant = $workloads_hash['tenant']
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
$admin_identity_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'protocol', 'http')
|
||||
$admin_identity_address = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint, $management_vip])
|
||||
$admin_identity_url = "${admin_identity_protocol}://${admin_identity_address}:35357"
|
||||
}
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
count => '200',
|
||||
step => '6',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $admin_identity_url,
|
||||
},
|
||||
} ->
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Keystone_user_role <||>
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Keystone_user <||>
|
||||
|
||||
keystone_user_role { "$workloads_username@$workloads_tenant" :
|
||||
ensure => 'absent',
|
||||
|
@ -46,25 +46,32 @@ if $murano_cfapi_hash['enabled'] {
|
||||
|
||||
$haproxy_stats_url = "http://${management_ip}:10000/;csv"
|
||||
|
||||
$murano_cfapi_protocol = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'protocol', 'http')
|
||||
$murano_cfapi_address = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$murano_cfapi_url = "${murano_cfapi_protocol}://${murano_cfapi_address}:${cfapi_bind_port}"
|
||||
|
||||
$lb_defaults = { 'provider' => 'haproxy', 'url' => $haproxy_stats_url }
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
$murano_cfapi_protocol = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'protocol', 'http')
|
||||
$murano_cfapi_address = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$murano_cfapi_url = "${murano_cfapi_protocol}://${murano_cfapi_address}:${cfapi_bind_port}"
|
||||
$lb_backend_provider = 'http'
|
||||
$lb_url = $murano_cfapi_url
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'murano-cfapi' :
|
||||
name => 'murano-cfapi',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $murano_cfapi_url,
|
||||
},
|
||||
$lb_hash = {
|
||||
'murano-cfapi' => {
|
||||
name => 'murano-cfapi',
|
||||
provider => $lb_backend_provider,
|
||||
url => $lb_url
|
||||
}
|
||||
}
|
||||
|
||||
::osnailyfacter::wait_for_backend {'murano-cfapi':
|
||||
lb_hash => $lb_hash,
|
||||
lb_defaults => $lb_defaults
|
||||
}
|
||||
|
||||
Firewall[$firewall_rule] -> Class['murano::cfapi']
|
||||
Service['murano-cfapi'] -> Haproxy_backend_status['murano-cfapi']
|
||||
Service['murano-cfapi'] -> ::Osnailyfacter::Wait_for_backend['murano-cfapi']
|
||||
}
|
||||
#########################
|
||||
|
||||
|
@ -7,6 +7,8 @@ $region = hiera('region', 'RegionOne')
|
||||
$public_ssl_hash = hiera('public_ssl')
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['murano::keystone::auth']
|
||||
|
||||
$public_protocol = get_ssl_property($ssl_hash, $public_ssl_hash, 'murano', 'public', 'protocol', 'http')
|
||||
$public_address = get_ssl_property($ssl_hash, $public_ssl_hash, 'murano', 'public', 'hostname', [$public_ip])
|
||||
|
||||
@ -24,6 +26,7 @@ $admin_url = "${admin_protocol}://${admin_address}:${api_bind_port}"
|
||||
|
||||
#################################################################
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
class { 'murano::keystone::auth':
|
||||
password => $murano_hash['user_password'],
|
||||
service_type => 'application_catalog',
|
||||
|
@ -7,6 +7,8 @@ $region = hiera('region', 'RegionOne')
|
||||
$public_ssl_hash = hiera('public_ssl')
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['murano::keystone::cfapi_auth']
|
||||
|
||||
$public_protocol = get_ssl_property($ssl_hash, $public_ssl_hash, 'murano', 'public', 'protocol', 'http')
|
||||
$public_address = get_ssl_property($ssl_hash, $public_ssl_hash, 'murano', 'public', 'hostname', [$public_ip])
|
||||
|
||||
@ -24,6 +26,7 @@ $admin_url = "${admin_protocol}://${admin_address}:${api_bind_port}"
|
||||
|
||||
#################################################################
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
class { 'murano::keystone::cfapi_auth':
|
||||
password => $murano_hash['user_password'],
|
||||
service_type => 'service_broker',
|
||||
|
@ -170,21 +170,28 @@ if $murano_hash['enabled'] {
|
||||
|
||||
$haproxy_stats_url = "http://${management_ip}:10000/;csv"
|
||||
|
||||
$murano_protocol = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'protocol', 'http')
|
||||
$murano_address = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$murano_url = "${murano_protocol}://${murano_address}:${api_bind_port}"
|
||||
|
||||
$lb_defaults = { 'provider' => 'haproxy', 'url' => $haproxy_stats_url }
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
$murano_protocol = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'protocol', 'http')
|
||||
$murano_address = get_ssl_property($ssl_hash, {}, 'murano', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$murano_url = "${murano_protocol}://${murano_address}:${api_bind_port}"
|
||||
$lb_backend_provider = 'http'
|
||||
$lb_url = $murano_url
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'murano-api' :
|
||||
name => 'murano-api',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $murano_url,
|
||||
},
|
||||
$lb_hash = {
|
||||
'murano-api' => {
|
||||
name => 'murano-api',
|
||||
provider => $lb_backend_provider,
|
||||
url => $lb_url
|
||||
}
|
||||
}
|
||||
|
||||
::osnailyfacter::wait_for_backend {'murano-api':
|
||||
lb_hash => $lb_hash,
|
||||
lb_defaults => $lb_defaults
|
||||
}
|
||||
|
||||
if roles_include('primary-controller') {
|
||||
@ -192,33 +199,17 @@ if $murano_hash['enabled'] {
|
||||
$internal_auth_url = "${internal_auth_protocol}://${internal_auth_address}:5000"
|
||||
$admin_identity_url = "${admin_auth_protocol}://${admin_auth_address}:35357"
|
||||
|
||||
haproxy_backend_status { 'keystone-public' :
|
||||
name => 'keystone-1',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $internal_auth_url,
|
||||
},
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $admin_identity_url,
|
||||
},
|
||||
}
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
murano::application { 'io.murano' : }
|
||||
|
||||
Haproxy_backend_status['keystone-admin'] -> Haproxy_backend_status['murano-api']
|
||||
Haproxy_backend_status['keystone-public'] -> Haproxy_backend_status['murano-api']
|
||||
Haproxy_backend_status['murano-api'] -> Murano::Application['io.murano']
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> ::Osnailyfacter::Wait_for_backend['murano-api']
|
||||
::Osnailyfacter::Wait_for_backend['murano-api'] -> Murano::Application['io.murano']
|
||||
|
||||
Service['murano-api'] -> Murano::Application['io.murano']
|
||||
}
|
||||
|
||||
Firewall[$firewall_rule] -> Class['murano::api']
|
||||
Service['murano-api'] -> Haproxy_backend_status['murano-api']
|
||||
Service['murano-api'] -> ::Osnailyfacter::Wait_for_backend['murano-api']
|
||||
}
|
||||
#########################
|
||||
|
||||
|
@ -6,6 +6,8 @@ $ssl_hash = hiera_hash('use_ssl', {})
|
||||
$public_vip = hiera('public_vip')
|
||||
$management_vip = hiera('management_vip')
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::cinder::keystone::auth']
|
||||
|
||||
$public_protocol = get_ssl_property($ssl_hash, $public_ssl_hash, 'cinder', 'public', 'protocol', 'http')
|
||||
$public_address = get_ssl_property($ssl_hash, $public_ssl_hash, 'cinder', 'public', 'hostname', [$public_vip])
|
||||
|
||||
@ -35,6 +37,7 @@ validate_string($internal_address)
|
||||
validate_string($admin_address)
|
||||
validate_string($password)
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
class { '::cinder::keystone::auth':
|
||||
password => $password,
|
||||
auth_name => $auth_name,
|
||||
|
@ -38,6 +38,7 @@ $tenant = pick($nova_hash['tenant'], 'services')
|
||||
validate_string($public_address)
|
||||
validate_string($password)
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}->
|
||||
class { '::nova::keystone::auth':
|
||||
password => $password,
|
||||
auth_name => $auth_name,
|
||||
|
@ -179,24 +179,37 @@ if $primary_controller {
|
||||
$nova_internal_endpoint = get_ssl_property($ssl_hash, {}, 'nova', 'internal', 'hostname', [$nova_endpoint])
|
||||
$nova_url = "${nova_internal_protocol}://${nova_internal_endpoint}:8774"
|
||||
|
||||
$lb_defaults = { 'provider' => 'haproxy', 'url' => $haproxy_stats_url }
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
$lb_backend_provider = 'http'
|
||||
$lb_url = $nova_url
|
||||
}
|
||||
|
||||
$lb_hash = {
|
||||
'nova-api' => {
|
||||
name => 'nova-api',
|
||||
provider => $lb_backend_provider,
|
||||
url => $lb_url
|
||||
}
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'nova-api' :
|
||||
name => 'nova-api',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $nova_url,
|
||||
},
|
||||
::osnailyfacter::wait_for_backend {'nova-api':
|
||||
lb_hash => $lb_hash,
|
||||
lb_defaults => $lb_defaults
|
||||
}
|
||||
|
||||
|
||||
Openstack::Ha::Haproxy_service <| |> -> Haproxy_backend_status <| |>
|
||||
|
||||
Class['nova::api'] -> Haproxy_backend_status['nova-api']
|
||||
Class['nova::api'] -> ::Osnailyfacter::Wait_for_backend['nova-api']
|
||||
::Osnailyfacter::Wait_for_backend['nova-api'] -> Exec<| title == 'create-m1.micro-flavor' |>
|
||||
::Osnailyfacter::Wait_for_backend['nova-api'] -> Nova_floating <| |>
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Exec<| title == 'create-m1.micro-flavor' |>
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Nova_floating <| |>
|
||||
|
||||
class {"::osnailyfacter::wait_for_keystone_backends":}
|
||||
exec { 'create-m1.micro-flavor' :
|
||||
path => '/sbin:/usr/sbin:/bin:/usr/bin',
|
||||
environment => [
|
||||
@ -226,14 +239,12 @@ if $primary_controller {
|
||||
require => Class['nova'],
|
||||
}
|
||||
|
||||
Haproxy_backend_status <| |> -> Exec<| title == 'create-m1.micro-flavor' |>
|
||||
|
||||
if ! $use_neutron {
|
||||
nova_floating { $floating_ips_range:
|
||||
ensure => 'present',
|
||||
pool => 'nova',
|
||||
}
|
||||
Haproxy_backend_status['nova-api'] -> Nova_floating <| |>
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,12 +32,15 @@ $public_url = "${public_protocol}://${public_address}:${port}"
|
||||
$internal_url = "${internal_protocol}://${internal_address}:${port}"
|
||||
$admin_url = "${admin_protocol}://${admin_address}:${port}"
|
||||
|
||||
|
||||
validate_string($public_address)
|
||||
validate_string($internal_address)
|
||||
validate_string($password)
|
||||
|
||||
if $use_neutron {
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::neutron::keystone::auth']
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
class { '::neutron::keystone::auth':
|
||||
password => $password,
|
||||
auth_name => $auth_name,
|
||||
|
@ -21,6 +21,9 @@ $public_protocol = $public_ssl_hash['services'] ? {
|
||||
$public_url = "${public_protocol}://${public_address}:${api_bind_port}/v1.1/%(tenant_id)s"
|
||||
$admin_url = "http://${admin_address}:${api_bind_port}/v1.1/%(tenant_id)s"
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['sahara::keystone::auth']
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
class { 'sahara::keystone::auth':
|
||||
auth_name => $sahara_user,
|
||||
password => $sahara_password,
|
||||
|
@ -142,42 +142,34 @@ if $sahara_hash['enabled'] {
|
||||
}
|
||||
|
||||
$haproxy_stats_url = "http://${management_vip}:10000/;csv"
|
||||
$sahara_protocol = get_ssl_property($ssl_hash, {}, 'sahara', 'internal', 'protocol', 'http')
|
||||
$sahara_address = get_ssl_property($ssl_hash, {}, 'sahara', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$sahara_url = "${sahara_protocol}://${sahara_address}:${api_bind_port}"
|
||||
|
||||
$lb_defaults = { 'provider' => 'haproxy', 'url' => $haproxy_stats_url }
|
||||
|
||||
if $external_lb {
|
||||
Haproxy_backend_status<||> {
|
||||
provider => 'http',
|
||||
}
|
||||
$sahara_protocol = get_ssl_property($ssl_hash, {}, 'sahara', 'internal', 'protocol', 'http')
|
||||
$sahara_address = get_ssl_property($ssl_hash, {}, 'sahara', 'internal', 'hostname', [$service_endpoint, $management_vip])
|
||||
$sahara_url = "${sahara_protocol}://${sahara_address}:${api_bind_port}"
|
||||
$lb_backend_provider = 'http'
|
||||
$lb_url = $sahara_url
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'sahara' :
|
||||
name => 'sahara',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $sahara_url,
|
||||
},
|
||||
$lb_hash = {
|
||||
sahara => {
|
||||
name => 'sahara',
|
||||
provider => $lb_backend_provider,
|
||||
url => $lb_url
|
||||
}
|
||||
}
|
||||
|
||||
::osnailyfacter::wait_for_backend {'sahara':
|
||||
lb_hash => $lb_hash,
|
||||
lb_defaults => $lb_defaults
|
||||
}
|
||||
|
||||
|
||||
if $primary_controller {
|
||||
|
||||
haproxy_backend_status { 'keystone-public' :
|
||||
name => 'keystone-1',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $internal_auth_url,
|
||||
},
|
||||
}
|
||||
|
||||
haproxy_backend_status { 'keystone-admin' :
|
||||
name => 'keystone-2',
|
||||
url => $external_lb ? {
|
||||
default => $haproxy_stats_url,
|
||||
true => $admin_identity_uri,
|
||||
},
|
||||
}
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':} ->
|
||||
class { 'sahara_templates::create_templates' :
|
||||
use_neutron => $use_neutron,
|
||||
auth_user => $access_admin['user'],
|
||||
@ -187,13 +179,12 @@ if $sahara_hash['enabled'] {
|
||||
internal_net => try_get_value($neutron_config, 'default_private_net', 'admin_internal_net'),
|
||||
}
|
||||
|
||||
Haproxy_backend_status['keystone-admin'] -> Haproxy_backend_status['sahara']
|
||||
Haproxy_backend_status['keystone-public'] -> Haproxy_backend_status['sahara']
|
||||
Haproxy_backend_status['sahara'] -> Class['sahara_templates::create_templates']
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> ::Osnailyfacter::Wait_for_backend['sahara']
|
||||
::Osnailyfacter::Wait_for_backend['sahara'] -> Class['sahara_templates::create_templates']
|
||||
}
|
||||
|
||||
Firewall[$firewall_rule] -> Class['sahara::service::api']
|
||||
Service['sahara-api'] -> Haproxy_backend_status['sahara']
|
||||
Service['sahara-api'] -> ::Osnailyfacter::Wait_for_backend['sahara']
|
||||
}
|
||||
#########################
|
||||
|
||||
|
@ -23,6 +23,8 @@ $configure_endpoint = pick($swift_hash['configure_endpoint'], true)
|
||||
$service_name = pick($swift_hash['service_name'], 'swift')
|
||||
$tenant = pick($swift_hash['tenant'], 'services')
|
||||
|
||||
Class['::osnailyfacter::wait_for_keystone_backends'] -> Class['::swift::keystone::auth']
|
||||
|
||||
validate_string($public_address)
|
||||
validate_string($password)
|
||||
|
||||
@ -35,6 +37,7 @@ $public_url_s3 = "${public_protocol}://${public_address}:8080"
|
||||
$internal_url_s3 = "${internal_protocol}://${internal_address}:8080"
|
||||
$admin_url_s3 = "${admin_protocol}://${admin_address}:8080"
|
||||
|
||||
class {'::osnailyfacter::wait_for_keystone_backends':}
|
||||
class { '::swift::keystone::auth':
|
||||
password => $password,
|
||||
auth_name => $auth_name,
|
||||
|
@ -75,13 +75,17 @@ describe manifest do
|
||||
)
|
||||
end
|
||||
|
||||
it { should contain_haproxy_backend_status('keystone-public').that_comes_before('Class[ceph::keystone]') }
|
||||
it { should contain_haproxy_backend_status('keystone-admin').that_comes_before('Class[ceph::keystone]') }
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]", "Class[ceph::keystone]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]", "Class[ceph::keystone]")
|
||||
end
|
||||
|
||||
it { should contain_service('httpd').with(
|
||||
:hasrestart => true,
|
||||
:restart => 'sleep 30 && apachectl graceful || apachectl restart',
|
||||
)
|
||||
}
|
||||
|
||||
it { should contain_exec("Create #{rgw_large_pool_name} pool").with(
|
||||
:command => "ceph -n #{radosgw_auth_key} osd pool create #{rgw_large_pool_name} #{rgw_large_pool_pg_nums} #{rgw_large_pool_pg_nums}",
|
||||
:unless => "rados lspools | grep '^#{rgw_large_pool_name}$'"
|
||||
@ -94,7 +98,7 @@ describe manifest do
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('keystone-public').with(
|
||||
:url => url,
|
||||
@ -108,7 +112,7 @@ describe manifest do
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('keystone-admin').with(
|
||||
:url => url,
|
||||
|
@ -53,9 +53,12 @@ describe manifest do
|
||||
).that_comes_before('Osnailyfacter::Mysql_user')
|
||||
end
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Class[openstack::galera::status]", "Haproxy_backend_status[mysql]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[mysql]", "Class[osnailyfacter::mysql_access]")
|
||||
end
|
||||
|
||||
it { should contain_class('osnailyfacter::mysql_access') }
|
||||
it { should contain_class('openstack::galera::status').that_comes_before('Haproxy_backend_status[mysql]') }
|
||||
it { should contain_haproxy_backend_status('mysql').that_comes_before('Class[osnailyfacter::mysql_access]') }
|
||||
|
||||
it 'should create grant with right privileges' do
|
||||
should contain_database_grant("clustercheck@#{galera_node_address}/*.*").with(
|
||||
@ -69,7 +72,7 @@ describe manifest do
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
|
||||
it {
|
||||
|
@ -134,12 +134,18 @@ describe manifest do
|
||||
)
|
||||
end
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[heat::keystone::domain]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[heat::keystone::domain]")
|
||||
end
|
||||
if Noop.hiera('external_lb', false)
|
||||
url = "#{admin_auth_protocol}://#{admin_auth_address}:35357/"
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
|
||||
it {
|
||||
|
@ -50,6 +50,17 @@ describe manifest do
|
||||
should contain_class('heat::keystone::auth_cfn').with('admin_url' => admin_url_cfn)
|
||||
end
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[heat::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[heat::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[heat::keystone::auth_cfn]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[heat::keystone::auth_cfn]")
|
||||
end
|
||||
|
||||
it 'class heat::keystone::auth should contain tenant' do
|
||||
should contain_class('heat::keystone::auth').with('tenant' => tenant)
|
||||
end
|
||||
|
@ -115,6 +115,13 @@ describe manifest do
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Class[openstack::horizon]", "Haproxy_backend_status[keystone-public]")
|
||||
expect(graph).to ensure_transitive_dependency("Class[openstack::horizon]", "Haproxy_backend_status[keystone-admin]")
|
||||
end
|
||||
|
||||
|
||||
it {
|
||||
should contain_service('httpd').with(
|
||||
'hasrestart' => true,
|
||||
@ -122,18 +129,6 @@ describe manifest do
|
||||
)
|
||||
}
|
||||
|
||||
it {
|
||||
should contain_class('openstack::horizon').that_comes_before(
|
||||
'Haproxy_backend_status[keystone-admin]'
|
||||
)
|
||||
}
|
||||
|
||||
it {
|
||||
should contain_class('openstack::horizon').that_comes_before(
|
||||
'Haproxy_backend_status[keystone-public]'
|
||||
)
|
||||
}
|
||||
|
||||
it "should handle openstack-dashboard-apache package based on osfamily" do
|
||||
if facts[:osfamily] == 'Debian'
|
||||
should contain_package('openstack-dashboard-apache').with_ensure('absent')
|
||||
|
@ -30,6 +30,13 @@ describe manifest do
|
||||
public_url = "#{public_protocol}://#{public_address}:6385"
|
||||
admin_url = "http://#{admin_address}:6385"
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[ironic::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[ironic::keystone::auth]")
|
||||
end
|
||||
|
||||
it 'should declare ironic::keystone::auth class correctly' do
|
||||
should contain_class('ironic::keystone::auth').with(
|
||||
'auth_name' => auth_name,
|
||||
|
@ -274,13 +274,20 @@ describe manifest do
|
||||
should contain_keystone_config('DEFAULT/secure_proxy_ssl_header').with(:value => 'HTTP_X_FORWARDED_PROTO')
|
||||
end
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[keystone::roles::admin]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[keystone::endpoint]")
|
||||
end
|
||||
|
||||
it {
|
||||
if Noop.hiera('external_lb', false)
|
||||
url = internal_url
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('keystone-public').with(
|
||||
:url => url,
|
||||
|
@ -20,13 +20,19 @@ describe manifest do
|
||||
|
||||
let(:admin_url) { "#{admin_auth_protocol}://#{admin_auth_address}:35357" }
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[openstack::workloads_collector]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[openstack::workloads_collector]")
|
||||
end
|
||||
it {
|
||||
if Noop.hiera('external_lb', false)
|
||||
url = admin_url
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('keystone-admin').with(
|
||||
:url => url,
|
||||
|
@ -26,7 +26,7 @@ describe manifest do
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('keystone-admin').with(
|
||||
:url => url,
|
||||
|
@ -80,7 +80,7 @@ describe manifest do
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('murano-cfapi').with(
|
||||
:url => url,
|
||||
|
@ -32,6 +32,12 @@ describe manifest do
|
||||
internal_url = "#{internal_protocol}://#{internal_address}:#{api_bind_port}"
|
||||
admin_url = "#{admin_protocol}://#{admin_address}:#{api_bind_port}"
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[murano::keystone::cfapi_auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[murano::keystone::cfapi_auth]")
|
||||
end
|
||||
|
||||
let(:region) { Noop.hiera('region', 'RegionOne') }
|
||||
let(:tenant) { Noop.hiera_structure('murano_hash/tenant', 'services') }
|
||||
|
@ -40,6 +40,13 @@ describe manifest do
|
||||
|
||||
##########################################################################
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[murano::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[murano::keystone::auth]")
|
||||
end
|
||||
|
||||
it 'should declare murano::keystone::auth class correctly' do
|
||||
should contain_class('murano::keystone::auth').with(
|
||||
'password' => murano_password,
|
||||
|
@ -206,25 +206,22 @@ describe manifest do
|
||||
should contain_murano__application('io.murano')
|
||||
end
|
||||
|
||||
it {
|
||||
should contain_haproxy_backend_status('keystone-public').that_comes_before('Haproxy_backend_status[murano-api]')
|
||||
}
|
||||
|
||||
it {
|
||||
should contain_haproxy_backend_status('keystone-admin').that_comes_before('Haproxy_backend_status[murano-api]')
|
||||
}
|
||||
|
||||
it {
|
||||
should contain_haproxy_backend_status('murano-api').that_comes_before('Murano::Application[io.murano]')
|
||||
}
|
||||
# Test for non-haproxy backend
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Haproxy_backend_status[murano-api]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Haproxy_backend_status[murano-api]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[murano-api]",
|
||||
"Murano::Application[io.murano]")
|
||||
end
|
||||
# Test for non-haproxy backend
|
||||
it {
|
||||
if Noop.hiera('external_lb', false)
|
||||
url = admin_url
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('keystone-admin').with(
|
||||
:url => url,
|
||||
@ -239,7 +236,7 @@ describe manifest do
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('murano-api').with(
|
||||
:url => url,
|
||||
|
@ -43,6 +43,13 @@ describe manifest do
|
||||
region = Noop.hiera_structure 'cinder/region', 'RegionOne'
|
||||
tenant = Noop.hiera_structure 'cinder/tenant', 'services'
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[cinder::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[cinder::keystone::auth]")
|
||||
end
|
||||
|
||||
it 'should declare cinder::keystone::auth class with propper parameters' do
|
||||
should contain_class('cinder::keystone::auth').with(
|
||||
'password' => password,
|
||||
|
@ -41,6 +41,13 @@ describe manifest do
|
||||
ec2_internal_url = "#{internal_protocol}://#{internal_address}:#{ec2_port}/services/Cloud"
|
||||
ec2_admin_url = "#{admin_protocol}://#{admin_address}:#{ec2_port}/services/Admin"
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[nova::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[nova::keystone::auth]")
|
||||
end
|
||||
|
||||
it 'class nova::keystone::auth should contain correct *_url' do
|
||||
should contain_class('nova::keystone::auth').with(
|
||||
'public_url' => "#{public_base_url}/v2/%(tenant_id)s",
|
||||
|
@ -206,12 +206,29 @@ describe manifest do
|
||||
end
|
||||
|
||||
if primary_controller
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Class[nova::api]","Haproxy_backend_status[nova-api]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[nova-api]",
|
||||
"Exec[create-m1.micro-flavor]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]","Exec[create-m1.micro-flavor]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]","Exec[create-m1.micro-flavor]")
|
||||
franges = graph.vertices.find_all {|v| v.type == :nova_floating_range }
|
||||
if !franges.to_a.empty?
|
||||
franges.each do
|
||||
|frange|
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[nova-api]",frange.ref)
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",frange.ref)
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",frange.ref)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if Noop.hiera('external_lb', false)
|
||||
url = "#{nova_internal_protocol}://#{nova_internal_endpoint}:8774"
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
|
||||
it {
|
||||
|
@ -37,6 +37,13 @@ describe manifest do
|
||||
use_neutron = Noop.hiera('use_neutron', false)
|
||||
|
||||
if use_neutron
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[neutron::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[neutron::keystone::auth]")
|
||||
end
|
||||
it 'should declare neutron::keystone::auth class' do
|
||||
should contain_class('neutron::keystone::auth').with(
|
||||
'password' => password,
|
||||
|
@ -21,6 +21,13 @@ describe manifest do
|
||||
let(:public_url) { "#{public_protocol}://#{public_address}:#{api_bind_port}/v1.1/%(tenant_id)s" }
|
||||
let(:admin_url) { "http://#{admin_address}:#{api_bind_port}/v1.1/%(tenant_id)s" }
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[sahara::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[sahara::keystone::auth]")
|
||||
end
|
||||
|
||||
it 'should declare sahara::keystone::auth class correctly' do
|
||||
should contain_class('sahara::keystone::auth').with(
|
||||
'auth_name' => sahara_user,
|
||||
|
@ -187,17 +187,14 @@ describe manifest do
|
||||
)
|
||||
end
|
||||
|
||||
it {
|
||||
should contain_haproxy_backend_status('keystone-public').that_comes_before('Haproxy_backend_status[sahara]')
|
||||
}
|
||||
|
||||
it {
|
||||
should contain_haproxy_backend_status('keystone-admin').that_comes_before('Haproxy_backend_status[sahara]')
|
||||
}
|
||||
|
||||
it {
|
||||
should contain_haproxy_backend_status('sahara').that_comes_before('Class[sahara_templates::create_templates]')
|
||||
}
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Haproxy_backend_status[sahara]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Haproxy_backend_status[sahara]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[sahara]",
|
||||
"Class[sahara_templates::create_templates]")
|
||||
end
|
||||
end
|
||||
|
||||
it {
|
||||
@ -206,7 +203,7 @@ describe manifest do
|
||||
provider = 'http'
|
||||
else
|
||||
url = 'http://' + Noop.hiera('service_endpoint').to_s + ':10000/;csv'
|
||||
provider = nil
|
||||
provider = Puppet::Type.type(:haproxy_backend_status).defaultprovider.name
|
||||
end
|
||||
should contain_haproxy_backend_status('sahara').with(
|
||||
:url => url,
|
||||
|
@ -68,6 +68,13 @@ describe manifest do
|
||||
should contain_class('swift::keystone::auth').with('internal_url' => internal_url)
|
||||
end
|
||||
|
||||
it 'should have explicit ordering between LB classes and particular actions' do
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-public]",
|
||||
"Class[swift::keystone::auth]")
|
||||
expect(graph).to ensure_transitive_dependency("Haproxy_backend_status[keystone-admin]",
|
||||
"Class[swift::keystone::auth]")
|
||||
end
|
||||
|
||||
it 'class swift::keystone::auth should contain correct S3 endpoints' do
|
||||
should contain_class('swift::keystone::auth').with('public_url_s3' => public_url_s3)
|
||||
should contain_class('swift::keystone::auth').with('admin_url_s3' => admin_url_s3)
|
||||
|
Loading…
Reference in New Issue
Block a user