Add puppet manifests to support fragments
This commit adds Puppet code to allow for keystone.conf to be composed of fragments.
This commit is contained in:
parent
b4493112d9
commit
f9894420de
|
@ -1,18 +0,0 @@
|
|||
class keystone::db(
|
||||
$password,
|
||||
$dbname = 'keystone',
|
||||
$user = 'keystone_admin',
|
||||
$host = '127.0.0.1',
|
||||
$allowed_hosts = undef
|
||||
) {
|
||||
|
||||
require mysql::python
|
||||
|
||||
mysql::db { $dbname:
|
||||
user => $user,
|
||||
password => $password,
|
||||
host => $host,
|
||||
charset => 'latin1',
|
||||
require => Class['mysql::server'],
|
||||
}
|
||||
}
|
|
@ -3,16 +3,26 @@
|
|||
#
|
||||
class keystone(
|
||||
$package_ensure = 'present',
|
||||
$log_verbose = 'False',
|
||||
$log_debug = 'False',
|
||||
$default_store = 'sqlite',
|
||||
$bind_host = '0.0.0.0',
|
||||
$bind_port = '5000',
|
||||
$admin_bind_host = '0.0.0.0',
|
||||
$admin_bind_port = '5001',
|
||||
$public_port = '5000',
|
||||
$admin_port = '35357',
|
||||
$admin_token = 'service_token',
|
||||
$compute_port = '3000',
|
||||
$log_verbose = 'False',
|
||||
$log_debug = 'False',
|
||||
$use_syslog = 'False',
|
||||
$db_type = 'sqlite',
|
||||
$catalog_type = 'template'
|
||||
) {
|
||||
|
||||
validate_re($catalog_type, 'template|sql')
|
||||
|
||||
if ( $use_syslog != 'False') {
|
||||
fail('use syslog currently only accepts false')
|
||||
}
|
||||
|
||||
include keystone::params
|
||||
# this package dependency needs to be removed when it
|
||||
# is added as a package dependency
|
||||
# I filed the following ticket against the packages: 909941
|
||||
|
@ -34,14 +44,6 @@ class keystone(
|
|||
gid => 'keystone',
|
||||
}
|
||||
|
||||
if($db_type != 'sqlite') {
|
||||
file { '/var/lib/keystone/keystone.db':
|
||||
ensure => absent,
|
||||
subscribe => Package['keystone'],
|
||||
before => Class['keystone::db'],
|
||||
}
|
||||
}
|
||||
|
||||
file { '/etc/keystone':
|
||||
ensure => directory,
|
||||
owner => 'keystone',
|
||||
|
@ -50,21 +52,54 @@ class keystone(
|
|||
require => Package['keystone']
|
||||
}
|
||||
|
||||
file { 'keystone.conf':
|
||||
path => '/etc/keystone/keystone.conf',
|
||||
ensure => present,
|
||||
owner => 'keystone',
|
||||
mode => 0600,
|
||||
content => template('keystone/keystone.conf.erb'),
|
||||
concat { '/etc/keystone/keystone.conf':
|
||||
owner => keystone,
|
||||
group => keystone,
|
||||
mode => 600,
|
||||
require => Package['keystone'],
|
||||
notify => Service['keystone'],
|
||||
}
|
||||
|
||||
# config sections
|
||||
keystone::config { 'DEFAULT':
|
||||
config => {
|
||||
'bind_host' => $bind_host,
|
||||
'public_port' => $public_port,
|
||||
'admin_port' => $admin_port,
|
||||
'admin_token' => $admin_token,
|
||||
'compute_port' => $compute_port,
|
||||
'log_verbose' => $log_verbose,
|
||||
'log_debug' => $log_debug,
|
||||
'use_syslog' => $use_syslog
|
||||
},
|
||||
order => '00',
|
||||
}
|
||||
|
||||
keystone::config { 'identity':
|
||||
order => '03',
|
||||
}
|
||||
|
||||
if($catalog_type == 'template') {
|
||||
# if we are using a catalog, then I may want to manage the file
|
||||
keystone::config { 'template_catalog':
|
||||
order => '04',
|
||||
}
|
||||
} elsif($catalog_type == 'sql' ) {
|
||||
keystone::config { 'sql_catalog':
|
||||
order => '04',
|
||||
}
|
||||
}
|
||||
|
||||
keystone::config { 'footer':
|
||||
order => '99'
|
||||
}
|
||||
|
||||
service { 'keystone':
|
||||
ensure => running,
|
||||
enable => true,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
provider => $::keystone::params::service_provider,
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class keystone::ldap {
|
||||
keystone::config { 'ldap':
|
||||
order => '01',
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
# implements mysql backend for keystone
|
||||
#
|
||||
class keystone::mysql(
|
||||
$password,
|
||||
$dbname = 'keystone',
|
||||
$user = 'keystone_admin',
|
||||
$host = '127.0.0.1',
|
||||
$idle_timeout = '300',
|
||||
$min_pool_size = '5',
|
||||
$max_pool_size = '10',
|
||||
$pool_timeout = '200',
|
||||
$allowed_hosts = undef
|
||||
) {
|
||||
|
||||
require mysql::python
|
||||
|
||||
file { '/var/lib/keystone/keystone.db':
|
||||
ensure => absent,
|
||||
subscribe => Package['keystone'],
|
||||
before => Class['keystone::db'],
|
||||
}
|
||||
|
||||
mysql::db { $dbname:
|
||||
user => $user,
|
||||
password => $password,
|
||||
host => $host,
|
||||
charset => 'latin1',
|
||||
require => Class['mysql::server'],
|
||||
}
|
||||
|
||||
keystone::config { 'sql':
|
||||
config => {
|
||||
user => $user,
|
||||
password => $password,
|
||||
host => $host,
|
||||
dbname => $dbname,
|
||||
idle_timeout => $idle_timeout,
|
||||
min_pool_size => $min_pool_size,
|
||||
max_pool_size => $max_pool_size,
|
||||
pool_timeout => $pool_timeout
|
||||
},
|
||||
order => '02',
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
class keystone::params {
|
||||
case $::osfamily {
|
||||
'Debian': {
|
||||
$service_provider = 'upstart'
|
||||
}
|
||||
'RedHat': {
|
||||
$service_provider = undef
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
class keystone::sqlite(
|
||||
$idle_timeout = 200
|
||||
) {
|
||||
keystone::config { 'sql':
|
||||
content => inline_template('
|
||||
[sql]
|
||||
connection = sqlite:////var/lib/keystone/keystone.db
|
||||
idle_timeout = <%= idle_timeout %>
|
||||
'),
|
||||
order => '02',
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue