Merge "Retiring TripleO-UI"
This commit is contained in:
238
manifests/ui.pp
238
manifests/ui.pp
@@ -1,238 +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::ui
|
||||
#
|
||||
# Configure TripleO UI.
|
||||
#
|
||||
# === Parameters:
|
||||
#
|
||||
# [*servername*]
|
||||
# The servername for the virtualhost.
|
||||
# Optional. Defaults to $::fqdn
|
||||
#
|
||||
# [*bind_host*]
|
||||
# The host/ip address Apache will listen on.
|
||||
# Optional. Defaults to hiera('controller_host')
|
||||
#
|
||||
# [*ui_port*]
|
||||
# The port on which the UI is listening.
|
||||
# Defaults to 3000
|
||||
#
|
||||
# [*excluded_languages*]
|
||||
# A list of languages that shouldn't be enabled in the UI, e.g. ['en', 'de']
|
||||
# Defaults to []
|
||||
#
|
||||
# [*endpoint_proxy_keystone*]
|
||||
# The keystone proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_keystone*]
|
||||
# The keystone config endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_proxy_heat*]
|
||||
# The heat proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_heat*]
|
||||
# The heat config endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_proxy_ironic*]
|
||||
# The ironic proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_proxy_ironic_inspector*]
|
||||
# The ironic inspector proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_ironic*]
|
||||
# The ironic config endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_ironic_inspector*]
|
||||
# The ironic inspector config endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_proxy_mistral*]
|
||||
# The mistral proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_proxy_nova*]
|
||||
# The nova proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_mistral*]
|
||||
# The mistral config endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_nova*]
|
||||
# The nova config endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_proxy_swift*]
|
||||
# The swift proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_swift*]
|
||||
# The swift config endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_proxy_zaqar*]
|
||||
# The zaqar proxy endpoint url
|
||||
# Defaults to undef
|
||||
#
|
||||
# [*endpoint_config_zaqar*]
|
||||
# The zaqar config endpoint url
|
||||
# Defaults to undf
|
||||
#
|
||||
# [*zaqar_default_queue*]
|
||||
# The zaqar default queue
|
||||
# A string.
|
||||
# Defaults to 'tripleo'
|
||||
#
|
||||
# [*enabled_loggers*]
|
||||
# List of enabled loggers
|
||||
# Defaults to ['console', 'zaqar']
|
||||
#
|
||||
# [*httpd_expires*]
|
||||
# A list of strings passed to ::apache::vhost::directories::expires_by_type
|
||||
# [
|
||||
# 'text/javascript "access plus 1 months"'
|
||||
# ]
|
||||
#
|
||||
class tripleo::ui (
|
||||
$servername = $::fqdn,
|
||||
$bind_host = hiera('controller_host'),
|
||||
$ui_port = 3000,
|
||||
$zaqar_default_queue = 'tripleo',
|
||||
$excluded_languages = [],
|
||||
$endpoint_proxy_zaqar = undef,
|
||||
$endpoint_proxy_keystone = undef,
|
||||
$endpoint_proxy_heat = undef,
|
||||
$endpoint_proxy_ironic = undef,
|
||||
$endpoint_proxy_ironic_inspector = undef,
|
||||
$endpoint_proxy_mistral = undef,
|
||||
$endpoint_proxy_nova = undef,
|
||||
$endpoint_proxy_swift = undef,
|
||||
$endpoint_config_zaqar = undef,
|
||||
$endpoint_config_keystone = undef,
|
||||
$endpoint_config_heat = undef,
|
||||
$endpoint_config_ironic = undef,
|
||||
$endpoint_config_ironic_inspector = undef,
|
||||
$endpoint_config_mistral = undef,
|
||||
$endpoint_config_nova = undef,
|
||||
$endpoint_config_swift = undef,
|
||||
$enabled_loggers = ['console', 'zaqar'],
|
||||
$httpd_expires = [
|
||||
'text/javascript "access plus 1 months"'
|
||||
]
|
||||
|
||||
) {
|
||||
package {'openstack-tripleo-ui': }
|
||||
|
||||
include ::apache
|
||||
include ::apache::mod::proxy
|
||||
include ::apache::mod::proxy_http
|
||||
include ::apache::mod::proxy_wstunnel
|
||||
|
||||
::apache::vhost { 'tripleo-ui':
|
||||
ensure => 'present',
|
||||
require => Package['openstack-tripleo-ui'],
|
||||
servername => $servername,
|
||||
ip => $bind_host,
|
||||
port => $ui_port,
|
||||
docroot => '/var/www/openstack-tripleo-ui/dist',
|
||||
options => ['Indexes', 'FollowSymLinks'],
|
||||
fallbackresource => '/index.html',
|
||||
directories => [
|
||||
{
|
||||
path => '/var/www/openstack-tripleo-ui/dist',
|
||||
provider => 'directory',
|
||||
options => ['Indexes', 'FollowSymLinks'],
|
||||
expires_active => bool2str(!empty($httpd_expires), 'On', 'Off'),
|
||||
expires_by_type => $httpd_expires
|
||||
}
|
||||
],
|
||||
proxy_pass => [
|
||||
{
|
||||
'path' => '/zaqar',
|
||||
'url' => $endpoint_proxy_zaqar,
|
||||
'params' => { 'disablereuse' => 'On' }
|
||||
},
|
||||
{
|
||||
'path' => '/keystone',
|
||||
'url' => $endpoint_proxy_keystone,
|
||||
'reverse_urls' => $endpoint_proxy_keystone
|
||||
},
|
||||
{
|
||||
'path' => '/heat',
|
||||
'url' => $endpoint_proxy_heat,
|
||||
'reverse_urls' => $endpoint_proxy_heat
|
||||
},
|
||||
{
|
||||
'path' => '/ironic',
|
||||
'url' => $endpoint_proxy_ironic,
|
||||
'reverse_urls' => $endpoint_proxy_ironic
|
||||
},
|
||||
{
|
||||
'path' => '/ironic-inspector',
|
||||
'url' => $endpoint_proxy_ironic_inspector,
|
||||
'reverse_urls' => $endpoint_proxy_ironic_inspector
|
||||
},
|
||||
{
|
||||
'path' => '/mistral',
|
||||
'url' => $endpoint_proxy_mistral,
|
||||
'reverse_urls' => $endpoint_proxy_mistral
|
||||
},
|
||||
{
|
||||
'path' => '/nova',
|
||||
'url' => $endpoint_proxy_nova,
|
||||
'reverse_urls' => $endpoint_proxy_nova
|
||||
},
|
||||
{
|
||||
'path' => '/swift',
|
||||
'url' => $endpoint_proxy_swift,
|
||||
'reverse_urls' => $endpoint_proxy_swift
|
||||
},
|
||||
],
|
||||
|
||||
}
|
||||
|
||||
# We already use apache::vhost to generate our own
|
||||
# configuration file, let's clean the configuration
|
||||
# embedded within the package
|
||||
file { "${apache::confd_dir}/openstack-tripleo-ui.conf" :
|
||||
ensure => present,
|
||||
content => "#
|
||||
# This file has been cleaned by Puppet.
|
||||
#
|
||||
# OpenStack TripleO UI configuration has been moved to:
|
||||
# - 25-tripleo-ui.conf
|
||||
#",
|
||||
require => Package['openstack-tripleo-ui'],
|
||||
before => Service[$::apache::params::service_name],
|
||||
}
|
||||
|
||||
file { '/var/www/openstack-tripleo-ui/dist/tripleo_ui_config.js' :
|
||||
ensure => file,
|
||||
content => template('tripleo/ui/tripleo_ui_config.js.erb'),
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0644',
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,133 +0,0 @@
|
||||
#
|
||||
# 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',
|
||||
:endpoint_proxy_keystone => 'http://127.0.0.1:5000',
|
||||
:endpoint_proxy_zaqar => 'ws://127.0.0.1:9000/zaqar',
|
||||
:endpoint_proxy_heat => 'http://127.0.0.1:8004',
|
||||
:endpoint_proxy_ironic => 'http://127.0.0.1:6385',
|
||||
:endpoint_proxy_mistral => 'http://127.0.0.1:8989',
|
||||
:endpoint_proxy_swift => 'http://127.0.0.1:8080',
|
||||
:endpoint_config_keystone => 'https://127.0.0.1:443/keystone/v2.0',
|
||||
:endpoint_config_zaqar => 'wss://127.0.0.1:443/zaqar',
|
||||
:endpoint_config_heat => 'https://127.0.0.1:443/heat/v1/%(tenant_id)s',
|
||||
:endpoint_config_ironic => 'https://127.0.0.1:443/ironic',
|
||||
:endpoint_config_mistral => 'https://127.0.0.1:443/mistral/v2',
|
||||
:endpoint_config_swift => 'https://127.0.0.1:443/swift/v1/AUTH_%(tenant_id)s'
|
||||
} }
|
||||
|
||||
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',
|
||||
:directories => [
|
||||
{
|
||||
"path" => '/var/www/openstack-tripleo-ui/dist',
|
||||
"provider" => 'directory',
|
||||
"options" => ['Indexes', 'FollowSymLinks'],
|
||||
"expires_active" => 'On',
|
||||
"expires_by_type" => [
|
||||
'text/javascript "access plus 1 months"'
|
||||
]
|
||||
}
|
||||
]
|
||||
)
|
||||
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': 'https:\/\/127.0.0.1:443\/keystone\/v2.0'/)
|
||||
.with_content(/'heat': 'https:\/\/127.0.0.1:443\/heat\/v1\/%\(tenant_id\)s'/)
|
||||
.with_content(/'zaqar-websocket': 'wss:\/\/127.0.0.1:443\/zaqar'/)
|
||||
.with_content(/'ironic': 'https:\/\/127.0.0.1:443\/ironic'/)
|
||||
.with_content(/'mistral': 'https:\/\/127.0.0.1:443\/mistral\/v2'/)
|
||||
.with_content(/'swift': 'https:\/\/127.0.0.1:443\/swift\/v1\/AUTH_%\(tenant_id\)s'/)
|
||||
.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,
|
||||
:endpoint_proxy_keystone => 'http://127.0.0.1:5000',
|
||||
:endpoint_proxy_zaqar => 'ws://127.0.0.1:9000/zaqar',
|
||||
:endpoint_proxy_heat => 'http://127.0.0.1:8004',
|
||||
:endpoint_proxy_ironic => 'http://127.0.0.1:6385',
|
||||
:endpoint_proxy_mistral => 'http://127.0.0.1:8989',
|
||||
:endpoint_proxy_swift => 'http://127.0.0.1:8080',
|
||||
:endpoint_config_keystone => 'https://127.0.0.1:443/keystone/v2.0',
|
||||
:endpoint_config_zaqar => 'wss://127.0.0.1:443/zaqar',
|
||||
:endpoint_config_heat => 'https://127.0.0.1:443/heat/v1/%(tenant_id)s',
|
||||
:endpoint_config_ironic => 'https://127.0.0.1:443/ironic',
|
||||
:endpoint_config_mistral => 'https://127.0.0.1:443/mistral/v2',
|
||||
:endpoint_config_swift => 'https://127.0.0.1:443/swift/v1/AUTH_%(tenant_id)s',
|
||||
:zaqar_default_queue => 'tripleo'
|
||||
} }
|
||||
|
||||
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': 'https:\/\/127.0.0.1:443\/keystone\/v2.0'/)
|
||||
.with_content(/'heat': 'https:\/\/127.0.0.1:443\/heat\/v1\/%\(tenant_id\)s'/)
|
||||
.with_content(/'zaqar-websocket': 'wss:\/\/127.0.0.1:443\/zaqar'/)
|
||||
.with_content(/'ironic': 'https:\/\/127.0.0.1:443\/ironic'/)
|
||||
.with_content(/'mistral': 'https:\/\/127.0.0.1:443\/mistral\/v2'/)
|
||||
.with_content(/'swift': 'https:\/\/127.0.0.1:443\/swift\/v1\/AUTH_%\(tenant_id\)s'/)
|
||||
.with_content(/'zaqar_default_queue': 'tripleo'/)
|
||||
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
|
||||
Reference in New Issue
Block a user