puppet-swift/examples/all.pp
Tobias Urdin 1da81e1eb0 Fix module structure
Fixes so that the top level structure
of the modules conform to the puppet standard [1].

[1] https://puppet.com/docs/puppet/5.3/modules_fundamentals.html#module-structure

Change-Id: I61a88a08380751604ecc75cc3dfce020be634175
2018-12-12 11:49:39 +01:00

92 lines
2.1 KiB
Puppet

#
# This example file is almost the
# can be used to build out a sample swift all in one environment
#
$swift_local_net_ip='127.0.0.1'
$swift_shared_secret='changeme'
Exec { logoutput => true }
package { 'curl': ensure => present }
class { '::memcached':
listen_ip => $swift_local_net_ip,
}
class { '::swift':
# not sure how I want to deal with this shared secret
swift_hash_path_suffix => $swift_shared_secret,
package_ensure => latest,
}
# === Configure Storage
class { '::swift::storage':
storage_local_net_ip => $swift_local_net_ip,
}
# create xfs partitions on a loopback device and mounts them
swift::storage::loopback { '2':
require => Class['swift'],
}
# sets up storage nodes which is composed of a single
# device that contains an endpoint for an object, account, and container
swift::storage::node { '2':
mnt_base_dir => '/srv/node',
weight => 1,
manage_ring => true,
zone => '2',
storage_local_net_ip => $swift_local_net_ip,
require => Swift::Storage::Loopback[2] ,
}
class { '::swift::ringbuilder':
part_power => '18',
replicas => '1',
min_part_hours => 1,
require => Class['swift'],
}
# TODO should I enable swath in the default config?
class { '::swift::proxy':
proxy_local_net_ip => $swift_local_net_ip,
pipeline => ['healthcheck', 'cache', 'tempauth', 'proxy-server'],
account_autocreate => true,
require => Class['swift::ringbuilder'],
}
class { ['::swift::proxy::healthcheck', '::swift::proxy::cache']: }
class { '::swift::proxy::tempauth':
account_user_list => [
{
'user' => 'admin',
'account' => 'admin',
'key' => 'admin',
'groups' => [ 'admin', 'reseller_admin' ],
},
{
'user' => 'tester',
'account' => 'test',
'key' => 'testing',
'groups' => ['admin'],
},
{
'user' => 'tester2',
'account' => 'test2',
'key' => 'testing2',
'groups' => ['admin'],
},
{
'user' => 'tester',
'account' => 'test',
'key' => 'testing3',
'groups' => [],
},
]
}