155 lines
6.9 KiB
Puppet
155 lines
6.9 KiB
Puppet
# Copyright 2020 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.
|
|
#
|
|
# == Class: tripleo::profile::base::glance::backend::swift
|
|
#
|
|
# Glance API swift backend configuration for tripleo
|
|
#
|
|
# === Parameters
|
|
#
|
|
# [*backend_names*]
|
|
# Array of swift store backend names.
|
|
#
|
|
# [*multistore_config*]
|
|
# (Optional) Hash containing multistore data for configuring multiple backends.
|
|
# Defaults to {}
|
|
#
|
|
# [*swift_store_user*]
|
|
# (Optional) Swift store user.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_user').
|
|
#
|
|
# [*swift_store_key*]
|
|
# (Optional) Swift store key.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_key').
|
|
#
|
|
# [*swift_store_container*]
|
|
# (Optional) Swift store container.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_container', undef).
|
|
#
|
|
# [*swift_store_auth_address*]
|
|
# (Optional) Swift store auth address.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_auth_address', undef).
|
|
#
|
|
# [*swift_store_auth_version*]
|
|
# (Optional) Swift store auth version.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_auth_version', undef).
|
|
#
|
|
# [*swift_store_auth_project_domain_id*]
|
|
# (Optional) Useful when keystone auth is version 3.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_auth_project_domain_id', undef).
|
|
#
|
|
# [*swift_store_auth_user_domain_id*]
|
|
# (Optional) Useful when keystone auth is version 3.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_auth_user_domain_id', undef).
|
|
#
|
|
# [*swift_store_large_object_size*]
|
|
# (Optional) What size, in MB, should Glance start chunking image files
|
|
# and do a large object manifest in Swift?
|
|
# Defaults to hiera('glance::backend::swift::swift_store_large_object_size', undef).
|
|
#
|
|
# [*swift_store_large_object_chunk_size*]
|
|
# (Optional) When doing a large object manifest, what size, in MB, should
|
|
# Glance write chunks to Swift? This amount of data is written
|
|
# to a temporary disk buffer during the process of chunking.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_large_object_chunk_size', undef).
|
|
#
|
|
# [*swift_store_create_container_on_put*]
|
|
# (Optional) Whether to create the swift container if it's missing.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_create_container_on_put', undef).
|
|
#
|
|
# [*swift_store_endpoint_type*]
|
|
# (Optional) Swift store endpoint type.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_endpoint_type', undef).
|
|
#
|
|
# [*swift_store_region*]
|
|
# (Optional) Swift store region.
|
|
# Defaults to hiera('glance::backend::swift::swift_store_region', undef).
|
|
#
|
|
# [*default_swift_reference*]
|
|
# (Optional) The reference to the default swift
|
|
# account/backing store parameters to use for adding
|
|
# new images.
|
|
# Defaults to ref1.
|
|
#
|
|
# [*store_description*]
|
|
# (Optional) Provides constructive information about the store backend to
|
|
# end users.
|
|
# Defaults to hiera('tripleo::profile::base::glance::api::glance_store_description', 'Swift store').
|
|
#
|
|
# [*step*]
|
|
# (Optional) The current step in deployment. See tripleo-heat-templates
|
|
# for more details.
|
|
# Defaults to hiera('step')
|
|
#
|
|
# DEPRECATED PARAMETERS
|
|
#
|
|
# [*swift_store_config_file*]
|
|
# (Optional)
|
|
# Defaults to undef.
|
|
#
|
|
class tripleo::profile::base::glance::backend::swift (
|
|
$backend_names,
|
|
$multistore_config = {},
|
|
$swift_store_user = hiera('glance::backend::swift::swift_store_user'),
|
|
$swift_store_key = hiera('glance::backend::swift::swift_store_key'),
|
|
$swift_store_container = hiera('glance::backend::swift::swift_store_container', undef),
|
|
$swift_store_auth_address = hiera('glance::backend::swift::swift_store_auth_address', undef),
|
|
$swift_store_auth_version = hiera('glance::backend::swift::swift_store_auth_version', undef),
|
|
$swift_store_auth_project_domain_id = hiera('glance::backend::swift::swift_store_auth_project_domain_id', undef),
|
|
$swift_store_auth_user_domain_id = hiera('glance::backend::swift::swift_store_auth_user_domain_id', undef),
|
|
$swift_store_large_object_size = hiera('glance::backend::swift::swift_store_large_object_size', undef),
|
|
$swift_store_large_object_chunk_size = hiera('glance::backend::swift::swift_store_large_object_chunk_size', undef),
|
|
$swift_store_create_container_on_put = hiera('glance::backend::swift::swift_store_create_container_on_put', undef),
|
|
$swift_store_endpoint_type = hiera('glance::backend::swift::swift_store_endpoint_type', undef),
|
|
$swift_store_region = hiera('glance::backend::swift::swift_store_region', undef),
|
|
$default_swift_reference = 'ref1',
|
|
$store_description = hiera('tripleo::profile::base::glance::api::glance_store_description', 'Swift store'),
|
|
$step = Integer(hiera('step')),
|
|
# DEPRECATED PARAMETERS
|
|
$swift_store_config_file = undef,
|
|
) {
|
|
|
|
if $backend_names.length() > 1 {
|
|
fail('Multiple swift backends are not supported.')
|
|
}
|
|
|
|
if $swift_store_config_file != undef {
|
|
warning('The swift_store_config_file parameter has been deprecated and has no effect')
|
|
}
|
|
|
|
if $step >= 4 {
|
|
$backend_name = $backend_names[0]
|
|
|
|
$multistore_description = pick($multistore_config[$backend_name], {})['GlanceStoreDescription']
|
|
$store_description_real = pick($multistore_description, $store_description)
|
|
|
|
glance::backend::multistore::swift { $backend_name:
|
|
swift_store_user => $swift_store_user,
|
|
swift_store_key => $swift_store_key,
|
|
swift_store_container => $swift_store_container,
|
|
swift_store_auth_address => $swift_store_auth_address,
|
|
swift_store_auth_version => $swift_store_auth_version,
|
|
swift_store_auth_project_domain_id => $swift_store_auth_project_domain_id,
|
|
swift_store_auth_user_domain_id => $swift_store_auth_user_domain_id,
|
|
swift_store_large_object_size => $swift_store_large_object_size,
|
|
swift_store_large_object_chunk_size => $swift_store_large_object_chunk_size,
|
|
swift_store_create_container_on_put => $swift_store_create_container_on_put,
|
|
swift_store_endpoint_type => $swift_store_endpoint_type,
|
|
swift_store_region => $swift_store_region,
|
|
default_swift_reference => $default_swift_reference,
|
|
store_description => $store_description_real,
|
|
}
|
|
}
|
|
}
|