]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/keystone/manifests/roles/admin.pp
try with modules from master
[dsa-puppet.git] / 3rdparty / modules / keystone / manifests / roles / admin.pp
1 # == Class: keystone::roles::admin
2 #
3 # This class implements some reasonable admin defaults for keystone.
4 #
5 # It creates the following keystone objects:
6 #   * service tenant (tenant used by all service users)
7 #   * "admin" tenant (defaults to "openstack")
8 #   * admin user (that defaults to the "admin" tenant)
9 #   * admin role
10 #   * adds admin role to admin user on the "admin" tenant
11 #
12 # === Parameters:
13 #
14 # [*email*]
15 #   The email address for the admin. Required.
16 #
17 # [*password*]
18 #   The admin password. Required.
19 #
20 # [*admin_roles*]
21 #   The list of the roles with admin privileges. Optional.
22 #   Defaults to ['admin'].
23 #
24 # [*admin_tenant*]
25 #   The name of the tenant to be used for admin privileges. Optional.
26 #   Defaults to openstack.
27 #
28 # [*service_tenant*]
29 #   The name of service keystone tenant. Optional.
30 #   Defaults to 'services'.
31 #
32 # [*admin*]
33 #   Admin user. Optional.
34 #   Defaults to admin.
35 #
36 # [*ignore_default_tenant*]
37 #   Ignore setting the default tenant value when the user is created. Optional.
38 #   Defaults to false.
39 #
40 # [*admin_tenant_desc*]
41 #   Optional. Description for admin tenant,
42 #   Defaults to 'admin tenant'
43 #
44 # [*service_tenant_desc*]
45 #   Optional. Description for admin tenant,
46 #   Defaults to 'Tenant for the openstack services'
47 #
48 # [*configure_user*]
49 #   Optional. Should the admin user be created?
50 #   Defaults to 'true'.
51 #
52 # [*configure_user_role*]
53 #   Optional. Should the admin role be configured for the admin user?
54 #   Defaulst to 'true'.
55 #
56 # == Dependencies
57 # == Examples
58 # == Authors
59 #
60 #   Dan Bode dan@puppetlabs.com
61 #
62 # == Copyright
63 #
64 # Copyright 2012 Puppetlabs Inc, unless otherwise noted.
65 #
66 class keystone::roles::admin(
67   $email,
68   $password,
69   $admin                  = 'admin',
70   $admin_tenant           = 'openstack',
71   $admin_roles            = ['admin'],
72   $service_tenant         = 'services',
73   $ignore_default_tenant  = false,
74   $admin_tenant_desc      = 'admin tenant',
75   $service_tenant_desc    = 'Tenant for the openstack services',
76   $configure_user         = true,
77   $configure_user_role    = true,
78 ) {
79
80   keystone_tenant { $service_tenant:
81     ensure      => present,
82     enabled     => true,
83     description => $service_tenant_desc,
84   }
85   keystone_tenant { $admin_tenant:
86     ensure      => present,
87     enabled     => true,
88     description => $admin_tenant_desc,
89   }
90   keystone_role { 'admin':
91     ensure => present,
92   }
93
94   if $configure_user {
95     keystone_user { $admin:
96       ensure                => present,
97       enabled               => true,
98       tenant                => $admin_tenant,
99       email                 => $email,
100       password              => $password,
101       ignore_default_tenant => $ignore_default_tenant,
102     }
103   }
104
105   if $configure_user_role {
106     keystone_user_role { "${admin}@${admin_tenant}":
107       ensure => present,
108       roles  => $admin_roles,
109     }
110   }
111
112 }