diff options
-rw-r--r-- | manifests/haproxy.pp | 11 | ||||
-rw-r--r-- | manifests/vip_hosts.pp | 39 | ||||
-rw-r--r-- | metadata.json | 2 | ||||
-rw-r--r-- | spec/classes/tripleo_ui_spec.rb | 99 |
4 files changed, 106 insertions, 45 deletions
diff --git a/manifests/haproxy.pp b/manifests/haproxy.pp index a4ab0cc..58b73e0 100644 --- a/manifests/haproxy.pp +++ b/manifests/haproxy.pp @@ -580,6 +580,7 @@ class tripleo::haproxy ( keystone_public_api_ssl_port => 13000, manila_api_port => 8786, manila_api_ssl_port => 13786, + midonet_cluster_port => 8181, neutron_api_port => 9696, neutron_api_ssl_port => 13696, nova_api_port => 8774, @@ -1250,10 +1251,10 @@ class tripleo::haproxy ( } } - $midonet_api_vip = hiera('midonet_api_vip', $controller_virtual_ip) + $midonet_cluster_vip = hiera('midonet_cluster_vip', $controller_virtual_ip) $midonet_bind_opts = { - "${midonet_api_vip}:8081" => [], - "${public_virtual_ip}:8081" => [], + "${midonet_cluster_vip}:${ports[midonet_cluster_port]}" => [], + "${public_virtual_ip}:${ports[midonet_cluster_port]}" => [], } if $midonet_api { @@ -1263,7 +1264,7 @@ class tripleo::haproxy ( } haproxy::balancermember { 'midonet_api': listening_service => 'midonet_api', - ports => '8081', + ports => $ports[midonet_cluster_port], ipaddresses => hiera('midonet_api_node_ips', $controller_hosts_real), server_names => hiera('midonet_api_node_names', $controller_hosts_names_real), options => $haproxy_member_options, @@ -1330,7 +1331,7 @@ class tripleo::haproxy ( # NOTE(jaosorior): Websockets have more overhead in establishing # connections than regular HTTP connections. Also, since it begins # as an HTTP connection and then "upgrades" to a TCP connection, some - # timeouts get overriden by others at certain times of the connection. + # timeouts get overridden by others at certain times of the connection. # The following values were taken from the following site: # http://blog.haproxy.com/2012/11/07/websockets-load-balancing-with-haproxy/ 'timeout' => ['connect 5s', 'client 25s', 'server 25s', 'tunnel 3600s'], diff --git a/manifests/vip_hosts.pp b/manifests/vip_hosts.pp deleted file mode 100644 index 7b260fd..0000000 --- a/manifests/vip_hosts.pp +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 2016 Red Hat, Inc. -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# -# == Class: tripleo::vip_hosts -# -# Write the overcloud VIPs into /etc/hosts -# -# === Parameters -# -# [*hosts_spec*] -# The specification of the hosts that will be added to the /etc/hosts file. -# These come in the form of a hash that will be consumed by create_resources. -# e.g.: -# tripleo::hosts_spec: -# host-1: -# name: host1.domain -# ip: 127.0.0.1 -# host-2: -# name: host2.domain -# ip: 127.0.0.2 -# -class tripleo::vip_hosts ( - $hosts_spec -) { - create_resources('host', $hosts_spec) -} - diff --git a/metadata.json b/metadata.json index a417f95..1aa1b4d 100644 --- a/metadata.json +++ b/metadata.json @@ -1,6 +1,6 @@ { "name": "openstack-tripleo", - "version": "6.0.0", + "version": "6.1.0", "author": "OpenStack Contributors", "summary": "Puppet module for TripleO", "license": "Apache-2.0", diff --git a/spec/classes/tripleo_ui_spec.rb b/spec/classes/tripleo_ui_spec.rb new file mode 100644 index 0000000..588a944 --- /dev/null +++ b/spec/classes/tripleo_ui_spec.rb @@ -0,0 +1,99 @@ +# +# Copyright (C) 2016 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +require 'spec_helper' + +describe 'tripleo::ui' do + shared_examples_for 'tripleo::ui' do + let(:pre_condition) do + 'include ::apache' + end + + context 'with required parameters' do + let(:params) { { + :servername => facts[:hostname], + :bind_host => '127.0.0.1', + :keystone_url => 'http://127.0.0.1:5000/' + } } + + it 'should configure tripleo ui' do + is_expected.to contain_class('tripleo::ui') + is_expected.to contain_apache__vhost('tripleo-ui').with( + :ensure => 'present', + :servername => facts[:hostname], + :ip => '127.0.0.1', + :port => 3000, + :docroot => '/var/www/openstack-tripleo-ui/dist', + :options => [ 'Indexes', 'FollowSymLinks' ], + :fallbackresource => '/index.html' + ) + is_expected.to contain_file('/etc/httpd/conf.d/openstack-tripleo-ui.conf').with_content(/cleaned by Puppet/) + is_expected.to contain_file('/var/www/openstack-tripleo-ui/dist/tripleo_ui_config.js') + .with_content(/"keystone": "http:\/\/127.0.0.1:5000\/"/) + .with_content(/"zaqar_default_queue": "tripleo"/) + end + end + + context 'with all parameters' do + let(:params) { { + :servername => 'custom.example.com', + :bind_host => '127.0.0.2', + :ui_port => 3001, + :keystone_url => 'http://127.0.0.1:1111/', + :heat_url => 'http://127.0.0.1:2222/', + :ironic_url => 'http://127.0.0.1:3333/', + :mistral_url => 'http://127.0.0.1:4444/', + :swift_url => 'http://127.0.0.1:5555/', + :zaqar_websocket_url => 'http://127.0.0.1:6666/', + :zaqar_default_queue => 'myqueue' + } } + + it 'should configure tripleo ui' do + is_expected.to contain_class('tripleo::ui') + is_expected.to contain_apache__vhost('tripleo-ui').with( + :ensure => 'present', + :servername => 'custom.example.com', + :ip => '127.0.0.2', + :port => 3001, + :docroot => '/var/www/openstack-tripleo-ui/dist', + :options => [ 'Indexes', 'FollowSymLinks' ], + :fallbackresource => '/index.html' + ) + is_expected.to contain_file('/etc/httpd/conf.d/openstack-tripleo-ui.conf').with_content(/cleaned by Puppet/) + is_expected.to contain_file('/var/www/openstack-tripleo-ui/dist/tripleo_ui_config.js') + .with_content(/"keystone": "http:\/\/127.0.0.1:1111\/"/) + .with_content(/"heat": "http:\/\/127.0.0.1:2222\/"/) + .with_content(/"ironic": "http:\/\/127.0.0.1:3333\/"/) + .with_content(/"mistral": "http:\/\/127.0.0.1:4444\/"/) + .with_content(/"swift": "http:\/\/127.0.0.1:5555\/"/) + .with_content(/"zaqar-websocket": "http:\/\/127.0.0.1:6666\/"/) + .with_content(/"zaqar_default_queue": "myqueue"/) + end + end + + end + + + on_supported_os.each do |os, facts| + context "on #{os}" do + let(:facts) do + facts.merge({ :hostname => 'node.example.com' }) + end + + it_behaves_like 'tripleo::ui' + end + end +end |