22231b2d66
This patch moves the default_store config option to the glance::api class, and makes it possible to configure more than one store while supplying a value for the default store to be used. If only one store is given for glance_store/stores, the default store is automatically set to be the same value. If multiple stores are given and no default store is explicitly set, the config will fail and ask the user to provide a default store. Change-Id: I28a79ae36e673a3537ea16910d338666b65c80f7 Closes-bug: #1481460 Co-Authored-By: Alex Schultz <aschultz@mirantis.com>
110 lines
3.5 KiB
Puppet
110 lines
3.5 KiB
Puppet
# == class: glance::backend::s3
|
|
#
|
|
# configures the storage backend for glance
|
|
# as a s3 instance
|
|
#
|
|
# === parameters:
|
|
#
|
|
# [*access_key*]
|
|
# (Required) The S3 query token access key.
|
|
#
|
|
# [*secret_key*]
|
|
# (Required) The S3 query token secret key.
|
|
#
|
|
# [*host*]
|
|
# (Required) The host where the S3 server is listening.
|
|
#
|
|
# [*bucket*]
|
|
# (Required) The S3 bucket to be used to store the Glance data.
|
|
#
|
|
# [*bucket_url_format*]
|
|
# (Optional) The S3 calling format used to determine the bucket. Either
|
|
# 'subdomain' or 'path' can be used.
|
|
# Default: 'subdomain'
|
|
#
|
|
# [*create_bucket_on_put*]
|
|
# (Optional) A boolean to determine if the S3 bucket should be created on
|
|
# upload if it does not exist or if an error should be returned to the user.
|
|
# Default: False
|
|
#
|
|
# [*large_object_size*]
|
|
# (Optional) What size, in MB, should S3 start chunking image files and do a
|
|
# multipart upload in S3.
|
|
# Default: 100
|
|
#
|
|
# [*large_object_chunk_size*]
|
|
# (Optional) What multipart upload part size, in MB, should S3 use when
|
|
# uploading parts. The size must be greater than or equal to 5M.
|
|
# Default: 10
|
|
#
|
|
# [*object_buffer_dir*]
|
|
# (Optional) The local directory where uploads will be staged before they are
|
|
# transferred into S3.
|
|
# Default: undef
|
|
#
|
|
# [*thread_pools*]
|
|
# (Optional) The number of thread pools to perform a multipart upload in S3.
|
|
# Default: 10
|
|
#
|
|
# [*multi_store*]
|
|
# (optional) Boolean describing if multiple backends will be configured
|
|
# Defaults to false
|
|
#
|
|
# === deprecated parameters:
|
|
#
|
|
# [*default_store*]
|
|
# (Optional) DEPRECATED Whether to set S3 as the default backend store.
|
|
# Default: undef
|
|
#
|
|
class glance::backend::s3(
|
|
$access_key,
|
|
$secret_key,
|
|
$host,
|
|
$bucket,
|
|
$bucket_url_format = 'subdomain',
|
|
$create_bucket_on_put = false,
|
|
$large_object_size = 100,
|
|
$large_object_chunk_size = 10,
|
|
$object_buffer_dir = undef,
|
|
$thread_pools = 10,
|
|
$multi_store = false,
|
|
# deprecated parameters
|
|
$default_store = undef,
|
|
) {
|
|
|
|
if !is_integer($large_object_chunk_size) or $large_object_chunk_size < 5 {
|
|
fail('glance::backend::s3::large_object_chunk_size must be an integer >= 5')
|
|
}
|
|
|
|
if !($bucket_url_format in ['subdomain', 'path']) {
|
|
fail('glance::backend::s3::bucket_url_format must be either "subdomain" or "path"')
|
|
}
|
|
|
|
if $default_store {
|
|
warning('The default_store parameter is deprecated in glance::backend::s3, you should declare it in glance::api')
|
|
}
|
|
|
|
glance_api_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 $object_buffer_dir {
|
|
glance_api_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; }
|
|
}
|
|
|
|
}
|