Introduce scenario004

Introduce scenario004 that will test Ceph RGW with OpenStack.

Co-Authored-by: Emilien Macchi <emilien@redhat.com>
Co-Authored-by: Keith Schincke <keith.schincke@gmail.com>
Co-Authored-by: Andrew Woodward <awoodward@mirantis.com>

Change-Id: I0dc1ad61a5f7e4f149e368055f045846ce88c21c
This commit is contained in:
Emilien Macchi 2016-07-07 12:08:01 -04:00 committed by Keith Schincke
parent e4c6f48efa
commit 4f9710d9ca
4 changed files with 152 additions and 33 deletions

View File

@ -22,43 +22,43 @@ Infrastructure environment.
Description Description
----------- -----------
OpenStack Infrastructure is deploying three jobs per supported Operating System OpenStack Infrastructure is deploying four jobs per supported Operating System
(Ubuntu and CentOS): scenario001, scenario002 and scenario003. (Ubuntu and CentOS): scenario001, scenario002, scenario003 and scenario004.
OpenStack services are balanced between three scenarios because OpenStack OpenStack services are balanced between four scenarios because OpenStack
Infastructure Jenkins slaves can not afford the load of running everything on Infastructure Jenkins slaves can not afford the load of running everything on
the same node. the same node.
One manifest (scenario-aio) is used for people who want to [run a simple All-In-One One manifest (scenario-aio) is used for people who want to [run a simple All-In-One
scenario](#all-in-one). scenario](#all-in-one).
| - | scenario001 | scenario002 | scenario003 | scenario-aio | | - | scenario001 | scenario002 | scenario003 | scenario004 | scenario-aio |
|:----------:|:-----------:|:-----------:|:-----------:|:-------------: |:----------:|:-----------:|:-----------:|:-----------:|:-----------:|:------------:|
| ssl | yes | yes | yes | no | | ssl | yes | yes | yes | yes | no |
| ipv6 | centos7 | centos7 | centos7 | no | | ipv6 | centos7 | centos7 | centos7 | no | no |
| keystone | X | X | X | X | | keystone | X | X | X | X | X |
| tokens | uuid | uuid | fernet | uuid | | tokens | uuid | uuid | fernet | fernet | uuid |
| glance | rbd | swift | file | file | | glance | rbd | swift | file | swift+rgw | file |
| nova | rbd | X | X | X | | nova | rbd | X | X | rbd | X |
| neutron | ovs | ovs | linuxbridge | ovs | | neutron | ovs | ovs | linuxbridge | ovs | ovs |
| lbaas | v2 | v2 | v2 | v2 | | lbaas | v2 | v2 | v2 | | v2 |
| cinder | rbd | iscsi | | iscsi | | cinder | rbd | iscsi | | | iscsi |
| ceilometer | X | | | | | ceilometer | X | | | | |
| aodh | X | | | | | aodh | X | | | | |
| designate | | | bind | | | designate | | | bind | | |
| backup | | swift | | | | backup | | swift | | | |
| gnocchi | rbd | | | | | gnocchi | rbd | | | | |
| ec2api | | X | | | | ec2api | | X | | | |
| heat | | | X | | | heat | | | X | | |
| swift | | X | | | | swift | | X | | | |
| sahara | | | X | | | sahara | | | X | | |
| trove | | | X | | | trove | | | X | | |
| horizon | | | X | X | | horizon | | | X | | X |
| ironic | | X | | | | ironic | | X | | | |
| zaqar | | X | | | | zaqar | | X | | | |
| barbican | | X | | | | barbican | | X | | | |
| murano | | | X | | | ceph | X | | | X | |
| ceph | X | | | | | ceph rgw | | | | X | |
| mongodb | | X | | | | mongodb | | X | | | |
When the Jenkins slave is created, the *run_tests.sh* script will executed. When the Jenkins slave is created, the *run_tests.sh* script will executed.
This script will execute *install_modules.sh* that prepare /etc/puppet/modules This script will execute *install_modules.sh* that prepare /etc/puppet/modules

54
fixtures/scenario004.pp Normal file
View File

@ -0,0 +1,54 @@
#
# Copyright 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.
#
# Disable SSL (workaround for Xenial)
if $::operatingsystem == 'Ubuntu' {
$ssl_enabled = false
} else {
$ssl_enabled = true
}
include ::openstack_integration
class { '::openstack_integration::config':
ssl => $ssl_enabled,
ipv6 => true,
}
include ::openstack_integration::cacert
include ::openstack_integration::memcached
include ::openstack_integration::rabbitmq
include ::openstack_integration::mysql
class { '::openstack_integration::keystone':
token_provider => 'fernet',
}
class { '::openstack_integration::glance':
backend => 'swift',
}
include ::openstack_integration::neutron
class { '::openstack_integration::nova':
libvirt_rbd => true,
}
class { '::openstack_integration::ceph':
deploy_rgw => true,
swift_dropin => true,
}
include ::openstack_integration::provision
# Don't test swift, radosgw won't pass the current tests
# Glance, nova, neutron are true by default.
include ::openstack_integration::tempest

View File

@ -1,4 +1,19 @@
class openstack_integration::ceph { # Configure the Ceph services
#
# [*deploy_rgw*]
# (optional) Setting flag to enable the deployment
# of Ceph RadosGW and configure various services
# to use Swift provided by RGW as a backend.
# Defaults to false
#
# [*swift_dropin*]
# (optional) Flag if Ceph RGW will provide swift
# services for openstack
#
class openstack_integration::ceph (
$deploy_rgw = false,
$swift_dropin = false,
) {
include ::openstack_integration::config include ::openstack_integration::config
@ -43,6 +58,11 @@ class openstack_integration::ceph {
osds => { osds => {
'/var/lib/ceph/data' => {}, '/var/lib/ceph/data' => {},
}, },
# Configure Ceph RadosGW
# These could be always set in the above call to ceph::profile::params
frontend_type => 'civetweb',
rgw_frontends => "civetweb port=${::openstack_integration::config::ip_for_url}:8080",
rgw_user => 'ceph',
} }
$ceph_pools = ['glance', 'nova', 'cinder', 'gnocchi'] $ceph_pools = ['glance', 'nova', 'cinder', 'gnocchi']
@ -66,4 +86,50 @@ class openstack_integration::ceph {
class { '::ceph::conf': class { '::ceph::conf':
args => $ceph_extra_config, args => $ceph_extra_config,
} }
if $deploy_rgw {
ceph::key { 'client.radosgw.gateway':
user => 'ceph',
secret => 'AQD7kyJQQGoOBhAAqrPAqSopSwPrrfMMomzVdw==',
cap_mon => 'allow rwx',
cap_osd => 'allow rwx',
inject => true,
}
# FIXME(Xarses) switch to param when supported in puppet-ceph
class { '::ceph::profile::rgw':
# swift_dropin = $swift_dropin
}
$password = 'secret'
$auth_name = 'rgwuser'
$project = 'services'
$user_domain = 'default'
#configure rgw to use keystone
ceph::rgw::keystone { 'radosgw.gateway':
rgw_keystone_url => $::openstack_integration::config::keystone_admin_uri,
rgw_keystone_version => 'v3',
user => 'ceph',
use_pki => false,
rgw_keystone_accepted_roles => ['admin', 'Member'],
rgw_keystone_admin_domain => $user_domain,
rgw_keystone_admin_project => $project,
rgw_keystone_admin_user => $auth_name,
rgw_keystone_admin_password => $password,
}
if $swift_dropin {
class { '::ceph::rgw::keystone::auth':
password => $password,
public_url => "http://${::openstack_integration::config::ip_for_url}:8080/swift/v1",
admin_url => "http://${::openstack_integration::config::ip_for_url}:8080/swift/v1",
internal_url => "http://${::openstack_integration::config::ip_for_url}:8080/swift/v1",
}
# FIXME(Xarses) remove when supported in puppet-ceph
Service<| tag == 'ceph-radosgw' |> -> Service <| tag == 'glance-service' |>
}
}
} }

View File

@ -82,7 +82,6 @@ class openstack_integration::glance (
Exec['create-glance'] -> Service['glance-api'] Exec['create-glance'] -> Service['glance-api']
} }
'swift': { 'swift': {
Service<| tag == 'swift-service' |> -> Service['glance-api']
$backend_store = ['swift'] $backend_store = ['swift']
class { '::glance::backend::swift': class { '::glance::backend::swift':
swift_store_user => 'services:glance', swift_store_user => 'services:glance',