splitting: Volume services
Split cloud::volume::controller to * cloud::volume::api * cloud::volume::backup * cloud::volume::scheduler Maintains backward compatibility and warn the end user about deprecation. Bug #346
This commit is contained in:
parent
4881139ec6
commit
3ea47e873b
63
manifests/volume/api.pp
Normal file
63
manifests/volume/api.pp
Normal file
@ -0,0 +1,63 @@
|
||||
#
|
||||
# Copyright (C) 2014 eNovance SAS <licensing@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Volume API node
|
||||
#
|
||||
|
||||
class cloud::volume::api(
|
||||
$ks_cinder_internal_port = 8776,
|
||||
$ks_cinder_password = 'cinderpassword',
|
||||
$ks_keystone_internal_host = '127.0.0.1',
|
||||
$ks_glance_internal_host = '127.0.0.1',
|
||||
$ks_glance_api_internal_port = 9292,
|
||||
$api_eth = '127.0.0.1',
|
||||
$default_volume_type = undef,
|
||||
# Maintain backward compatibility for multi-backend
|
||||
$volume_multi_backend = false
|
||||
) {
|
||||
|
||||
include 'cloud::volume'
|
||||
|
||||
if ! $volume_multi_backend {
|
||||
$default_volume_type_real = undef
|
||||
} else {
|
||||
if ! $default_volume_type {
|
||||
fail('when using multi-backend, you should define a default_volume_type value in cloud::volume::controller')
|
||||
} else {
|
||||
$default_volume_type_real = $default_volume_type
|
||||
}
|
||||
}
|
||||
|
||||
class { 'cinder::api':
|
||||
keystone_password => $ks_cinder_password,
|
||||
keystone_auth_host => $ks_keystone_internal_host,
|
||||
bind_host => $api_eth,
|
||||
default_volume_type => $default_volume_type_real
|
||||
}
|
||||
|
||||
class { 'cinder::glance':
|
||||
glance_api_servers => "${ks_glance_internal_host}:${ks_glance_api_internal_port}",
|
||||
glance_request_timeout => '10'
|
||||
}
|
||||
|
||||
@@haproxy::balancermember{"${::fqdn}-cinder_api":
|
||||
listening_service => 'cinder_api_cluster',
|
||||
server_names => $::hostname,
|
||||
ipaddresses => $api_eth,
|
||||
ports => $ks_cinder_internal_port,
|
||||
options => 'check inter 2000 rise 2 fall 5'
|
||||
}
|
||||
|
||||
}
|
35
manifests/volume/backup.pp
Normal file
35
manifests/volume/backup.pp
Normal file
@ -0,0 +1,35 @@
|
||||
#
|
||||
# Copyright (C) 2014 eNovance SAS <licensing@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Volume Backup node
|
||||
#
|
||||
|
||||
class cloud::volume::backup(
|
||||
# TODO(EmilienM) Disabled for now: http://git.io/kfTmcA
|
||||
# $backup_ceph_pool = $os_params::cinder_rbd_backup_pool,
|
||||
# $backup_ceph_user = $os_params::cinder_rbd_backup_user
|
||||
) {
|
||||
|
||||
include 'cloud::volume'
|
||||
|
||||
class { 'cinder::backup': }
|
||||
|
||||
# TODO(EmilienM) Disabled for now: http://git.io/kfTmcA
|
||||
# class { 'cinder::backup::ceph':
|
||||
# backup_ceph_user => $backup_ceph_user,
|
||||
# backup_ceph_pool => $backup_ceph_pool
|
||||
# }
|
||||
|
||||
}
|
@ -23,59 +23,31 @@ class cloud::volume::controller(
|
||||
$ks_glance_internal_host = '127.0.0.1',
|
||||
$ks_glance_api_internal_port = 9292,
|
||||
$api_eth = '127.0.0.1',
|
||||
# Maintain backward compatibility for multi-backend
|
||||
$volume_multi_backend = false,
|
||||
$default_volume_type = undef,
|
||||
# TODO(EmilienM) Disabled for now: http://git.io/kfTmcA
|
||||
# $backup_ceph_pool = 'backup',
|
||||
# $backup_ceph_user = 'cinder'
|
||||
# Maintain backward compatibility for multi-backend
|
||||
$volume_multi_backend = false
|
||||
) {
|
||||
|
||||
warning('This class is deprecated. You should use cloud::volume::api,backup,scheduler.')
|
||||
|
||||
include 'cloud::volume'
|
||||
|
||||
if ! $volume_multi_backend {
|
||||
$scheduler_driver_real = false
|
||||
$default_volume_type_real = undef
|
||||
} else {
|
||||
$scheduler_driver_real = 'cinder.scheduler.filter_scheduler.FilterScheduler'
|
||||
|
||||
if ! $default_volume_type {
|
||||
fail('when using multi-backend, you should define a default_volume_type value in cloud::volume::controller')
|
||||
} else {
|
||||
$default_volume_type_real = $default_volume_type
|
||||
}
|
||||
# Maintain backward compatibility
|
||||
class { 'cloud::volume::api':
|
||||
ks_cinder_internal_port => $ks_cinder_internal_port,
|
||||
ks_cinder_password => $ks_cinder_password,
|
||||
ks_keystone_internal_host => $ks_keystone_internal_host,
|
||||
ks_glance_internal_host => $ks_glance_internal_host,
|
||||
ks_glance_api_internal_port => $ks_glance_api_internal_port,
|
||||
api_eth => $api_eth,
|
||||
default_volume_type => $default_volume_type,
|
||||
# Maintain backward compatibility for multi-backend
|
||||
volume_multi_backend => $volume_multi_backend
|
||||
}
|
||||
class { 'cloud::volume::scheduler':
|
||||
volume_multi_backend => $volume_multi_backend
|
||||
}
|
||||
|
||||
class { 'cinder::scheduler':
|
||||
scheduler_driver => $scheduler_driver_real
|
||||
}
|
||||
|
||||
class { 'cinder::api':
|
||||
keystone_password => $ks_cinder_password,
|
||||
keystone_auth_host => $ks_keystone_internal_host,
|
||||
bind_host => $api_eth,
|
||||
default_volume_type => $default_volume_type_real
|
||||
}
|
||||
|
||||
class { 'cinder::backup': }
|
||||
|
||||
# TODO(EmilienM) Disabled for now: http://git.io/kfTmcA
|
||||
# class { 'cinder::backup::ceph':
|
||||
# backup_ceph_user => $backup_ceph_user,
|
||||
# backup_ceph_pool => $backup_ceph_pool
|
||||
# }
|
||||
|
||||
class { 'cinder::glance':
|
||||
glance_api_servers => "${ks_glance_internal_host}:${ks_glance_api_internal_port}",
|
||||
glance_request_timeout => '10'
|
||||
}
|
||||
|
||||
@@haproxy::balancermember{"${::fqdn}-cinder_api":
|
||||
listening_service => 'cinder_api_cluster',
|
||||
server_names => $::hostname,
|
||||
ipaddresses => $api_eth,
|
||||
ports => $ks_cinder_internal_port,
|
||||
options => 'check inter 2000 rise 2 fall 5'
|
||||
}
|
||||
class { 'cloud::volume::backup': }
|
||||
|
||||
}
|
||||
|
36
manifests/volume/scheduler.pp
Normal file
36
manifests/volume/scheduler.pp
Normal file
@ -0,0 +1,36 @@
|
||||
#
|
||||
# Copyright (C) 2014 eNovance SAS <licensing@enovance.com>
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
# Volume Scheduler node
|
||||
#
|
||||
|
||||
class cloud::volume::scheduler(
|
||||
# Maintain backward compatibility for multi-backend
|
||||
$volume_multi_backend = false
|
||||
) {
|
||||
|
||||
include 'cloud::volume'
|
||||
|
||||
if ! $volume_multi_backend {
|
||||
$scheduler_driver_real = false
|
||||
} else {
|
||||
$scheduler_driver_real = 'cinder.scheduler.filter_scheduler.FilterScheduler'
|
||||
}
|
||||
|
||||
class { 'cinder::scheduler':
|
||||
scheduler_driver => $scheduler_driver_real
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user