Files
puppet-swift/manifests/init.pp
Alex Schultz c41983cd87 Update to swift hash parameters
This change adds the ability to configure the swift_hash_path_prefix for
swift. Additionally it deprecated swift_hash_suffix in favor of a new
parameter called swift_hash_path_suffix for consistency.

Change-Id: I26935fe21af42b488f4479c4e50e8f481a75ea40
Closes-Bug: #1505269
2016-01-26 08:18:28 -07:00

117 lines
3.8 KiB
Puppet

# Install and configure base swift components
#
# == Parameters
#
# [*swift_hash_path_suffix*]
# (Required) String. A suffix used by hash_path to offer a bit more security
# when generating hashes for paths. It simply appends this value to all
# paths; if someone knows this suffix, it's easier for them to guess the hash
# a path will end up with. New installations are advised to set this
# parameter to a random secret, which would not be disclosed ouside the
# organization. The same secret needs to be used by all swift servers of the
# same cluster. Existing installations should set this parameter to an empty
# string.
#
# [*swift_hash_path_prefix*]
# (Required)String. A prefix used by hash_path to offer a bit more security
# when generating hashes for paths. It simply appends this value to all paths;
# if someone knows this suffix, it's easier for them to guess the hash a path
# will end up with. New installations are advised to set this parameter to a
# random secret, which would not be disclosed ouside the organization. The
# same secret needs to be used by all swift servers of the same cluster.
# Existing installations should set this parameter to an empty string.
# as a salt when hashing to determine mappings in the ring.
# This file should be the same on every node in the cluster.
#
# [*package_ensure*] The ensure state for the swift package.
# (Optional) Defaults to present.
#
# [*client_package_ensure*] The ensure state for the swift client package.
# (Optional) Defaults to present.
#
# [*max_header_size*] Max HTTP header size for incoming requests for all swift
# services. Recommended size is 32768 for PKI keystone tokens.
# (Optional) Defaults to 8192
## DEPRECATED PARAMETERS
#
# [*swift_hash_suffix*]
# DEPRECATED. string of text to be used
# as a salt when hashing to determine mappings in the ring.
# This file should be the same on every node in the cluster.
#
# == Dependencies
#
# None
#
# == Authors
#
# Dan Bode dan@puppetlabs.com
#
# == Copyright
#
# Copyright 2011 Puppetlabs Inc, unless otherwise noted.
#
class swift(
$swift_hash_path_suffix = undef,
$swift_hash_path_prefix = undef,
$package_ensure = 'present',
$client_package_ensure = 'present',
$max_header_size = '8192',
# DEPRECATED PARAMETERS
$swift_hash_suffix = undef,
) {
include ::swift::params
if ($swift_hash_suffix == undef and $swift_hash_path_suffix == undef) {
fail('You must specify swift_hash_path_suffix')
} elsif ($swift_hash_suffix != undef and $swift_hash_path_suffix == undef) {
warning('swift_hash_suffix has been deprecated and should be replaced with swift_hash_path_suffix, this will be removed as part of the N-cycle')
$swift_hash_path_suffix_real = $swift_hash_suffix
} else {
$swift_hash_path_suffix_real = $swift_hash_path_suffix
}
if !defined(Package['swift']) {
package { 'swift':
ensure => $package_ensure,
name => $::swift::params::package_name,
tag => ['openstack', 'swift-package'],
}
}
class { '::swift::client':
ensure => $client_package_ensure;
}
File { owner => 'swift', group => 'swift', require => Package['swift'] }
file { '/etc/swift':
ensure => directory,
}
user {'swift':
ensure => present,
require => Package['swift'],
}
file { '/var/lib/swift':
ensure => directory,
}
file { '/var/run/swift':
ensure => directory,
selinux_ignore_defaults => true,
}
file { '/etc/swift/swift.conf':
ensure => file,
}
File['/etc/swift/swift.conf'] -> Swift_config<||>
swift_config {
'swift-hash/swift_hash_path_suffix': value => $swift_hash_path_suffix_real;
'swift-hash/swift_hash_path_prefix': value => $swift_hash_path_prefix;
'swift-constraints/max_header_size': value => $max_header_size;
}
}