Add posibility to configure Glance backend settings for Glare service

This patch adds posibility to configure backend settings for Glare
service.

Since Glare service is experimental feature, it can be usually disabled
for deployment. Hence was added a optional parameter 'glare_enabled' for
each backend manifest. So, if Glare is enabled glance glare config
will (and should) have same backend options as main glance api config.

Change-Id: I112a332f490d2e57eef5fa7d41d465c0eb89da04
Related-bug: #1555697
changes/95/297795/2
Denis Egorenko 7 years ago
parent 3941da05fc
commit ea0c4d5b51

@ -56,7 +56,10 @@
# (optional) Boolean describing if multiple backends will be configured
# Defaults to false
#
# [*glare_enabled*]
# (optional) Whether enabled Glance Glare API.
# Defaults to false
#
class glance::backend::cinder(
$os_region_name = undef,
$cinder_ca_certificates_file = undef,
@ -65,7 +68,7 @@ class glance::backend::cinder(
$cinder_endpoint_template = undef,
$cinder_http_retries = '3',
$multi_store = false,
$glare_enabled = false,
) {
if $os_region_name {
@ -80,6 +83,9 @@ class glance::backend::cinder(
if !$multi_store {
glance_api_config { 'glance_store/default_store': value => 'cinder'; }
if $glare_enabled {
glance_glare_config { 'glance_store/default_store': value => 'cinder'; }
}
}
glance_cache_config {
@ -88,20 +94,40 @@ class glance::backend::cinder(
'glance_store/cinder_http_retries': value => $cinder_http_retries;
}
if $glare_enabled {
glance_glare_config {
'glance_store/cinder_api_insecure': value => $cinder_api_insecure;
'glance_store/cinder_catalog_info': value => $cinder_catalog_info;
'glance_store/cinder_http_retries': value => $cinder_http_retries;
}
}
if $cinder_endpoint_template {
glance_api_config { 'glance_store/cinder_endpoint_template': value => $cinder_endpoint_template; }
glance_cache_config { 'glance_store/cinder_endpoint_template': value => $cinder_endpoint_template; }
if $glare_enabled {
glance_glare_config { 'glance_store/cinder_endpoint_template': value => $cinder_endpoint_template; }
}
} else {
glance_api_config { 'glance_store/cinder_endpoint_template': ensure => absent; }
glance_cache_config { 'glance_store/cinder_endpoint_template': ensure => absent; }
if $glare_enabled {
glance_glare_config { 'glance_store/cinder_endpoint_template': ensure => absent; }
}
}
if $cinder_ca_certificates_file {
glance_api_config { 'glance_store/cinder_ca_certificates_file': value => $cinder_ca_certificates_file; }
glance_cache_config { 'glance_store/cinder_ca_certificates_file': value => $cinder_ca_certificates_file; }
if $glare_enabled {
glance_glare_config { 'glance_store/cinder_ca_certificates_file': value => $cinder_ca_certificates_file; }
}
} else {
glance_api_config { 'glance_store/cinder_ca_certificates_file': ensure => absent; }
glance_cache_config { 'glance_store/cinder_ca_certificates_file': ensure => absent; }
if $glare_enabled {
glance_glare_config { 'glance_store/cinder_ca_certificates_file': ensure => absent; }
}
}
}

@ -13,18 +13,33 @@
# (optional) Boolean describing if multiple backends will be configured
# Defaults to false
#
# [*glare_enabled*]
# (optional) Whether enabled Glance Glare API.
# Defaults to false
#
class glance::backend::file(
$filesystem_store_datadir = '/var/lib/glance/images/',
$multi_store = false,
$glare_enabled = false,
) {
glance_api_config {
'glance_store/filesystem_store_datadir': value => $filesystem_store_datadir;
}
if $glare_enabled {
glance_glare_config {
'glance_store/filesystem_store_datadir': value => $filesystem_store_datadir;
}
}
if !$multi_store {
glance_api_config { 'glance_store/default_store': value => 'file'; }
if $glare_enabled {
glance_glare_config {
'glance_store/default_store': value => 'file';
}
}
}
glance_cache_config {

@ -35,7 +35,10 @@
# (optional) Boolean describing if multiple backends will be configured
# Defaults to false
#
# [*glare_enabled*]
# (optional) Whether enabled Glance Glare API.
# Defaults to false
#
class glance::backend::rbd(
$rbd_store_user = undef,
$rbd_store_ceph_conf = '/etc/ceph/ceph.conf',
@ -45,6 +48,7 @@ class glance::backend::rbd(
$package_ensure = 'present',
$rados_connect_timeout = '0',
$multi_store = false,
$glare_enabled = false,
) {
include ::glance::params
@ -60,8 +64,21 @@ class glance::backend::rbd(
'glance_store/rados_connect_timeout': value => $rados_connect_timeout;
}
if $glare_enabled {
glance_glare_config {
'glance_store/rbd_store_ceph_conf': value => $rbd_store_ceph_conf;
'glance_store/rbd_store_user': value => $rbd_store_user;
'glance_store/rbd_store_pool': value => $rbd_store_pool;
'glance_store/rbd_store_chunk_size': value => $rbd_store_chunk_size;
'glance_store/rados_connect_timeout': value => $rados_connect_timeout;
}
}
if !$multi_store {
glance_api_config { 'glance_store/default_store': value => 'rbd'; }
if $glare_enabled {
glance_glare_config { 'glance_store/default_store': value => 'rbd'; }
}
}
package { 'python-ceph':

@ -50,6 +50,10 @@
# (optional) Boolean describing if multiple backends will be configured
# Defaults to false
#
# [*glare_enabled*]
# (optional) Whether enabled Glance Glare API.
# Defaults to false
#
# === deprecated parameters:
#
# [*default_store*]
@ -68,6 +72,7 @@ class glance::backend::s3(
$object_buffer_dir = undef,
$thread_pools = 10,
$multi_store = false,
$glare_enabled = false,
# deprecated parameters
$default_store = undef,
) {
@ -96,14 +101,37 @@ class glance::backend::s3(
'glance_store/s3_store_thread_pools': value => $thread_pools;
}
if $glare_enabled {
glance_glare_config {
'glance_store/s3_store_access_key': value => $access_key;
'glance_store/s3_store_secret_key': value => $secret_key;
'glance_store/s3_store_host': value => $host;
'glance_store/s3_store_bucket': value => $bucket;
'glance_store/s3_store_bucket_url_format': value => $bucket_url_format;
'glance_store/s3_store_create_bucket_on_put': value => $create_bucket_on_put;
'glance_store/s3_store_large_object_size': value => $large_object_size;
'glance_store/s3_store_large_object_chunk_size': value => $large_object_chunk_size;
'glance_store/s3_store_thread_pools': value => $thread_pools;
}
}
if !$multi_store {
glance_api_config { 'glance_store/default_store': value => 's3'; }
if $glare_enabled {
glance_glare_config { 'glance_store/default_store': value => 's3'; }
}
}
if $object_buffer_dir {
glance_api_config { 'glance_store/s3_store_object_buffer_dir': value => $object_buffer_dir; }
glance_api_config { 'glance_store/s3_store_object_buffer_dir': value => $object_buffer_dir; }
if $glare_enabled {
glance_glare_config { 'glance_store/s3_store_object_buffer_dir': value => $object_buffer_dir; }
}
} else {
glance_api_config { 'glance_store/s3_store_object_buffer_dir': ensure => absent; }
glance_api_config { 'glance_store/s3_store_object_buffer_dir': ensure => absent; }
if $glare_enabled {
glance_glare_config { 'glance_store/s3_store_object_buffer_dir': ensure => absent; }
}
}
}

@ -42,7 +42,10 @@
# (optional) Boolean describing if multiple backends will be configured
# Defaults to false
#
# [*glare_enabled*]
# (optional) Whether enabled Glance Glare API.
# Defaults to false
#
class glance::backend::swift(
$swift_store_user,
$swift_store_key,
@ -55,6 +58,7 @@ class glance::backend::swift(
$swift_store_region = undef,
$default_swift_reference = 'ref1',
$multi_store = false,
$glare_enabled = false,
) {
glance_api_config {
@ -71,8 +75,27 @@ class glance::backend::swift(
'glance_store/default_swift_reference': value => $default_swift_reference;
}
if $glare_enabled {
glance_glare_config {
'glance_store/swift_store_region': value => $swift_store_region;
'glance_store/swift_store_container': value => $swift_store_container;
'glance_store/swift_store_create_container_on_put':
value => $swift_store_create_container_on_put;
'glance_store/swift_store_large_object_size':
value => $swift_store_large_object_size;
'glance_store/swift_store_endpoint_type':
value => $swift_store_endpoint_type;
'glance_store/swift_store_config_file': value => '/etc/glance/glance-swift.conf';
'glance_store/default_swift_reference': value => $default_swift_reference;
}
}
if !$multi_store {
glance_api_config { 'glance_store/default_store': value => 'swift'; }
if $glare_enabled {
glance_glare_config { 'glance_store/default_store': value => 'swift'; }
}
}
glance_swift_config {

@ -61,7 +61,10 @@
# (optional) Boolean describing if multiple backends will be configured
# Defaults to false
#
# [*glare_enabled*]
# (optional) Whether enabled Glance Glare API.
# Defaults to false
#
class glance::backend::vsphere(
$vcenter_host,
$vcenter_user,
@ -73,6 +76,7 @@ class glance::backend::vsphere(
$vcenter_task_poll_interval = '5',
$vcenter_api_retry_count = '10',
$multi_store = false,
$glare_enabled = false,
) {
glance_api_config {
@ -87,7 +91,24 @@ class glance::backend::vsphere(
'glance_store/vmware_datacenter_path': value => $vcenter_datacenter;
}
if $glare_enabled {
glance_glare_config {
'glance_store/vmware_api_insecure': value => $vcenter_api_insecure;
'glance_store/vmware_server_host': value => $vcenter_host;
'glance_store/vmware_server_username': value => $vcenter_user;
'glance_store/vmware_server_password': value => $vcenter_password;
'glance_store/vmware_datastore_name': value => $vcenter_datastore;
'glance_store/vmware_store_image_dir': value => $vcenter_image_dir;
'glance_store/vmware_task_poll_interval': value => $vcenter_task_poll_interval;
'glance_store/vmware_api_retry_count': value => $vcenter_api_retry_count;
'glance_store/vmware_datacenter_path': value => $vcenter_datacenter;
}
}
if !$multi_store {
glance_api_config { 'glance_store/default_store': value => 'vsphere'; }
if $glare_enabled {
glance_glare_config { 'glance_store/default_store': value => 'vsphere'; }
}
}
}

@ -46,6 +46,13 @@ describe 'glance::backend::cinder' do
is_expected.to contain_glance_cache_config('glance_store/cinder_ca_certificates_file').with(:ensure => 'absent')
is_expected.to contain_glance_cache_config('glance_store/cinder_endpoint_template').with(:ensure => 'absent')
end
it 'not configures glance-glare.conf' do
is_expected.to_not contain_glance_glare_config('glance_store/cinder_api_insecure').with_value(false)
is_expected.to_not contain_glance_glare_config('glance_store/cinder_catalog_info').with_value('volume:cinder:publicURL')
is_expected.to_not contain_glance_glare_config('glance_store/cinder_http_retries').with_value('3')
is_expected.to_not contain_glance_glare_config('glance_store/cinder_ca_certificates_file').with(:ensure => 'absent')
is_expected.to_not contain_glance_glare_config('glance_store/cinder_endpoint_template').with(:ensure => 'absent')
end
end
context 'when overriding parameters' do
@ -56,6 +63,7 @@ describe 'glance::backend::cinder' do
:cinder_catalog_info => 'volume:cinder:internalURL',
:cinder_endpoint_template => 'http://srv-foo:8776/v1/%(project_id)s',
:cinder_http_retries => '10',
:glare_enabled => true,
}
end
it 'configures glance-api.conf' do
@ -72,8 +80,14 @@ describe 'glance::backend::cinder' do
is_expected.to contain_glance_cache_config('glance_store/cinder_endpoint_template').with_value('http://srv-foo:8776/v1/%(project_id)s')
is_expected.to contain_glance_cache_config('glance_store/cinder_http_retries').with_value('10')
end
it 'configures glance-glare.conf' do
is_expected.to contain_glance_glare_config('glance_store/cinder_api_insecure').with_value(true)
is_expected.to contain_glance_glare_config('glance_store/cinder_ca_certificates_file').with_value('/etc/ssh/ca.crt')
is_expected.to contain_glance_glare_config('glance_store/cinder_catalog_info').with_value('volume:cinder:internalURL')
is_expected.to contain_glance_glare_config('glance_store/cinder_endpoint_template').with_value('http://srv-foo:8776/v1/%(project_id)s')
is_expected.to contain_glance_glare_config('glance_store/cinder_http_retries').with_value('10')
end
end
end

@ -12,9 +12,14 @@ describe 'glance::backend::file' do
is_expected.to contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/var/lib/glance/images/')
end
it 'configures glance-glare.conf' do
is_expected.to_not contain_glance_glare_config('glance_store/filesystem_store_datadir').with_value('/tmp/')
end
describe 'when overriding datadir' do
let :params do
{:filesystem_store_datadir => '/tmp/'}
{:filesystem_store_datadir => '/tmp/',
:glare_enabled => true,}
end
it 'configures glance-api.conf' do
@ -24,6 +29,10 @@ describe 'glance::backend::file' do
it 'configures glance-cache.conf' do
is_expected.to contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/tmp/')
end
it 'configures glance-glare.conf' do
is_expected.to contain_glance_glare_config('glance_store/filesystem_store_datadir').with_value('/tmp/')
end
end
end

@ -20,6 +20,11 @@ describe 'glance::backend::rbd' do
it { is_expected.to contain_glance_api_config('glance_store/rbd_store_chunk_size').with_value('8') }
it { is_expected.to contain_glance_api_config('glance_store/rados_connect_timeout').with_value('0')}
it { is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('rbd') }
it { is_expected.to_not contain_glance_glare_config('glance_store/rbd_store_pool').with_value('images') }
it { is_expected.to_not contain_glance_glare_config('glance_store/rbd_store_ceph_conf').with_value('/etc/ceph/ceph.conf') }
it { is_expected.to_not contain_glance_glare_config('glance_store/rbd_store_chunk_size').with_value('8') }
it { is_expected.to_not contain_glance_glare_config('glance_store/rados_connect_timeout').with_value('0')}
it { is_expected.to contain_package('python-ceph').with(
:name => 'python-ceph',
:ensure => 'present'
@ -34,11 +39,15 @@ describe 'glance::backend::rbd' do
:rbd_store_chunk_size => '2',
:package_ensure => 'latest',
:rados_connect_timeout => '30',
:glare_enabled => true,
}
end
it { is_expected.to contain_glance_api_config('glance_store/rbd_store_user').with_value('user') }
it { is_expected.to contain_glance_api_config('glance_store/rbd_store_chunk_size').with_value('2') }
it { is_expected.to contain_glance_api_config('glance_store/rados_connect_timeout').with_value('30')}
it { is_expected.to contain_glance_glare_config('glance_store/rbd_store_user').with_value('user') }
it { is_expected.to contain_glance_glare_config('glance_store/rbd_store_chunk_size').with_value('2') }
it { is_expected.to contain_glance_glare_config('glance_store/rados_connect_timeout').with_value('30')}
it { is_expected.to contain_package('python-ceph').with(
:name => 'python-ceph',
:ensure => 'latest'

@ -26,6 +26,19 @@ describe 'glance::backend::s3' do
is_expected.to contain_glance_api_config('glance_store/s3_store_object_buffer_dir').with_value(nil)
is_expected.to contain_glance_api_config('glance_store/s3_store_thread_pools').with_value('10')
end
it 'not configures glance-glare.conf' do
is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('s3')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_access_key').with_value('access')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_secret_key').with_value('secret')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_host').with_value('host')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_bucket').with_value('bucket')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_bucket_url_format').with_value('subdomain')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_create_bucket_on_put').with_value('false')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_large_object_size').with_value('100')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_large_object_chunk_size').with_value('10')
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_object_buffer_dir').with_value(nil)
is_expected.to_not contain_glance_glare_config('glance_store/s3_store_thread_pools').with_value('10')
end
end
@ -42,6 +55,7 @@ describe 'glance::backend::s3' do
:large_object_chunk_size => 20,
:object_buffer_dir => '/tmp',
:thread_pools => 20,
:glare_enabled => true,
}
end
@ -58,6 +72,18 @@ describe 'glance::backend::s3' do
is_expected.to contain_glance_api_config('glance_store/s3_store_thread_pools').with_value('20')
end
it 'configures glance-glare.conf' do
is_expected.to contain_glance_glare_config('glance_store/s3_store_access_key').with_value('access2')
is_expected.to contain_glance_glare_config('glance_store/s3_store_secret_key').with_value('secret2')
is_expected.to contain_glance_glare_config('glance_store/s3_store_host').with_value('host2')
is_expected.to contain_glance_glare_config('glance_store/s3_store_bucket').with_value('bucket2')
is_expected.to contain_glance_glare_config('glance_store/s3_store_bucket_url_format').with_value('path')
is_expected.to contain_glance_glare_config('glance_store/s3_store_create_bucket_on_put').with_value('true')
is_expected.to contain_glance_glare_config('glance_store/s3_store_large_object_size').with_value('200')
is_expected.to contain_glance_glare_config('glance_store/s3_store_large_object_chunk_size').with_value('20')
is_expected.to contain_glance_glare_config('glance_store/s3_store_object_buffer_dir').with_value('/tmp')
is_expected.to contain_glance_glare_config('glance_store/s3_store_thread_pools').with_value('20')
end
end
describe 'with invalid bucket_url_format' do

@ -30,6 +30,16 @@ describe 'glance::backend::swift' do
is_expected.to contain_glance_swift_config('ref1/auth_address').with_value('http://127.0.0.1:5000/v2.0/')
end
it 'not configures glance-glare.conf' do
is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('swift')
is_expected.to_not contain_glance_glare_config('glance_store/swift_store_large_object_size').with_value('5120')
is_expected.to_not contain_glance_glare_config('glance_store/swift_store_container').with_value('glance')
is_expected.to_not contain_glance_glare_config('glance_store/swift_store_create_container_on_put').with_value(false)
is_expected.to_not contain_glance_glare_config('glance_store/swift_store_endpoint_type').with_value('internalURL')
is_expected.to_not contain_glance_glare_config('glance_store/swift_store_region').with_value(nil)
is_expected.to_not contain_glance_glare_config('glance_store/swift_store_config_file').with_value('/etc/glance/glance-swift.conf')
is_expected.to_not contain_glance_glare_config('glance_store/default_swift_reference').with_value('ref1')
end
end
describe 'when overriding parameters' do
@ -45,6 +55,7 @@ describe 'glance::backend::swift' do
:swift_store_endpoint_type => 'publicURL',
:swift_store_region => 'RegionTwo',
:default_swift_reference => 'swift_creds',
:glare_enabled => true,
}
end
@ -60,6 +71,15 @@ describe 'glance::backend::swift' do
is_expected.to contain_glance_swift_config('swift_creds/auth_version').with_value('1')
is_expected.to contain_glance_swift_config('swift_creds/auth_address').with_value('127.0.0.2:8080/v1.0/')
end
it 'configures glance-glare.conf' do
is_expected.to contain_glance_glare_config('glance_store/swift_store_container').with_value('swift')
is_expected.to contain_glance_glare_config('glance_store/swift_store_create_container_on_put').with_value(true)
is_expected.to contain_glance_glare_config('glance_store/swift_store_large_object_size').with_value('100')
is_expected.to contain_glance_glare_config('glance_store/swift_store_endpoint_type').with_value('publicURL')
is_expected.to contain_glance_glare_config('glance_store/swift_store_region').with_value('RegionTwo')
is_expected.to contain_glance_glare_config('glance_store/default_swift_reference').with_value('swift_creds')
end
end
end

@ -51,6 +51,18 @@ describe 'glance::backend::vsphere' do
is_expected.to contain_glance_api_config('glance_store/vmware_api_retry_count').with_value('10')
is_expected.to contain_glance_api_config('glance_store/vmware_datacenter_path').with_value('Datacenter')
end
it 'not configures glance-glare.conf' do
is_expected.to_not contain_glance_glare_config('glance_store/default_store').with_value('vsphere')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_api_insecure').with_value('False')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_host').with_value('10.0.0.1')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_username').with_value('root')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_server_password').with_value('123456')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_datastore_name').with_value('Datastore')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_store_image_dir').with_value('/openstack_glance')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_task_poll_interval').with_value('5')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_api_retry_count').with_value('10')
is_expected.to_not contain_glance_glare_config('glance_store/vmware_datacenter_path').with_value('Datacenter')
end
end
context 'when overriding parameters' do
@ -65,6 +77,7 @@ describe 'glance::backend::vsphere' do
:vcenter_api_insecure => 'True',
:vcenter_task_poll_interval => '6',
:vcenter_api_retry_count => '11',
:glare_enabled => true,
}
end
it 'configures glance-api.conf' do
@ -72,6 +85,12 @@ describe 'glance::backend::vsphere' do
is_expected.to contain_glance_api_config('glance_store/vmware_task_poll_interval').with_value('6')
is_expected.to contain_glance_api_config('glance_store/vmware_api_retry_count').with_value('11')
end
it 'configures glance-glare.conf' do
is_expected.to contain_glance_glare_config('glance_store/vmware_api_insecure').with_value('True')
is_expected.to contain_glance_glare_config('glance_store/vmware_task_poll_interval').with_value('6')
is_expected.to contain_glance_glare_config('glance_store/vmware_api_retry_count').with_value('11')
end
end
end

Loading…
Cancel
Save