puppet-ceilometer/manifests/keystone/auth.pp
ZhongShengping fc4a0fd510 Add hooks for external install & svc management
This adds defined anchor points for external modules to hook into the
software install, config and service dependency chain.  This allows
external modules to manage software installation (virtualenv,
containers, etc) and service management (pacemaker) without needing rely
on resources that may change or be renamed.

Change-Id: I0d18ec6ffe6b54c85773a6dabb0ed7b6f59a12f4
2016-11-29 17:32:37 +08:00

123 lines
3.4 KiB
Puppet

# == Class: ceilometer::keystone::auth
#
# Configures Ceilometer user, service and endpoint in Keystone.
#
# === Parameters:
#
# [*password*]
# (Required) Password for Ceilometer user.
#
# [*email*]
# (Optional) Email for Ceilometer user.
# Defaults to 'ceilometer@localhost'.
#
# [*auth_name*]
# (Optional) Username for Ceilometer service.
# Defaults to 'ceilometer'.
#
# [*configure_endpoint*]
# (Optional) Should Ceilometer endpoint be configured.
# Defaults to true.
#
# [*configure_user*]
# (Optional) Should Ceilometer service user be configured?
# Defaults to true.
#
# [*configure_user_role*]
# (Optional) Should roles be configured on Ceilometer service user?
# Defaults to true.
#
# [*service_name*]
# (Optional) Name of the service.
# Defaults to 'ceilometer'.
#
# [*service_type*]
# (Optional) Type of service. Optional.
# Defaults to 'metering'.
#
# [*service_description*]
# (Optional) Description for keystone service.
# Defaults to 'Openstack Metering Service'.
#
# [*region*]
# (Optional) Region for endpoint.
# Defaults to 'RegionOne'.
#
# [*tenant*]
# (Optional) Tenant for Ceilometer user.
# Defaults to 'services'.
#
# [*public_url*]
# (Optional) The endpoint's public url.
# This url should *not* contain any trailing '/'.
# Defaults to 'http://127.0.0.1:8777'.
#
# [*admin_url*]
# (Optional) The endpoint's admin url.
# This url should *not* contain any trailing '/'.
# Defaults to 'http://127.0.0.1:8777'.
#
# [*internal_url*]
# (Optional) The endpoint's internal url.
# This url should *not* contain any trailing '/'.
# Defaults to 'http://127.0.0.1:8777'.
#
# === Examples:
#
# class { 'ceilometer::keystone::auth':
# public_url => 'https://10.0.0.10:8777',
# internal_url => 'https://10.0.0.11:8777',
# admin_url => 'https://10.0.0.11:8777',
# }
#
class ceilometer::keystone::auth (
$password = false,
$email = 'ceilometer@localhost',
$auth_name = 'ceilometer',
$configure_user = true,
$configure_user_role = true,
$service_name = 'ceilometer',
$service_type = 'metering',
$service_description = 'Openstack Metering Service',
$region = 'RegionOne',
$tenant = 'services',
$configure_endpoint = true,
$public_url = 'http://127.0.0.1:8777',
$admin_url = 'http://127.0.0.1:8777',
$internal_url = 'http://127.0.0.1:8777',
) {
include ::ceilometer::deps
validate_string($password)
::keystone::resource::service_identity { 'ceilometer':
configure_user => $configure_user,
configure_user_role => $configure_user_role,
configure_endpoint => $configure_endpoint,
service_type => $service_type,
service_description => $service_description,
service_name => $service_name,
region => $region,
auth_name => $auth_name,
password => $password,
email => $email,
tenant => $tenant,
roles => ['admin', 'ResellerAdmin'],
public_url => $public_url,
admin_url => $admin_url,
internal_url => $internal_url,
}
if $configure_user_role {
if !defined(Keystone_role['ResellerAdmin']) {
keystone_role { 'ResellerAdmin':
ensure => present,
}
}
Keystone_role['ResellerAdmin'] -> Keystone_user_role["${auth_name}@${tenant}"]
}
}