puppet-openstack_extras/manifests/auth_file.pp

188 lines
5.0 KiB
Puppet

# == Class: openstack_extras::auth_file
#
# Creates an auth file that can be used to export
# environment variables that can be used to authenticate
# against a keystone server.
#
# === Parameters
#
# [*password*]
# (Required) Password for this account as defined in keystone
#
# [*auth_url*]
# (Optional) URL to authenticate against
# Defaults to 'http://127.0.0.1:5000/v3/'
#
# [*service_token*]
# (Optional) Keystone service token
# NOTE: This setting will trigger a warning from keystone.
# Authentication credentials will be ignored by keystone client
# in favor of token authentication.
# Defaults to undef.
#
# [*service_endpoint*]
# (Optional) Keystone service endpoint
# Defaults to 'http://127.0.0.1:5000/v3/'
#
# [*username*]
# (Optional) Username for this account as defined in keystone
# Defaults to 'admin'.
#
# [*tenant_name*]
# (Optional) Tenant for this account as defined in keystone
# Defaults to undef.
#
# [*project_name*]
# (Optional) Project for this account as defined in keystone
# Use instead of tenant_name for when using identity v3.
# Defaults to 'openstack'.
#
# [*region_name*]
# (Optional) Openstack region to use
# Defaults to 'RegionOne'.
#
# [*use_no_cache*]
# (Optional) Do not use the auth token cache.
# Defaults to true.
#
# [*os_interface*]
# (Optional) The common endpoint to use with OSC
# Defaults to 'public'.
#
# [*os_endpoint_type*]
# (Optional) The common endpoint to use with service-specific clients
# Defaults to 'publicURL'.
#
# [*cinder_endpoint_type*]
# (Optional) The Cinder endpoint to use
# Defaults to 'publicURL'.
#
# [*glance_endpoint_type*]
# (Optional) The Glance endpoint to use
# Defaults to 'publicURL'.
#
# [*keystone_endpoint_type*]
# (Optional) The Keystone endpoint to use
# Defaults to 'publicURL'.
#
# [*nova_endpoint_type*]
# (Optional) The Nova endpoint to use
# Defaults to 'publicURL'.
#
# [*neutron_endpoint_type*]
# (Optional) The Neutron endpoint to use
# Defaults to 'publicURL'.
#
# [*auth_strategy*]
# (Optional) The method to use for authentication
# Defaults to 'keystone'.
#
# [*path*]
# (Optional) File path
# Defaults to '/root/openrc'.
#
# [*project_domain_name*]
# (Optional) Project domain in v3 api.
# Defaults to 'Default'.
#
# [*user_domain_name*]
# (Optional) User domain in v3 api.
# Defaults to 'Default'.
#
# [*auth_type*]
# (Optional) Authentication type to load.
# Default to undef.
#
# [*compute_api_version*]
# (Optional) Compute API version to use.
# Defaults to undef.
#
# [*network_api_version*]
# (Optional) Network API version to use.
# Defaults to undef.
#
# [*image_api_version*]
# (Optional) Image API version to use.
# Defaults to undef.
#
# [*volume_api_version*]
# (Optional) Volume API version to use.
# Defaults to undef.
#
# [*identity_api_version*]
# (Optional) Identity API version to use.
# Defaults to '3'.
#
# [*object_api_version*]
# (Optional) Object API version to use.
# Defaults to undef.
#
# DEPRECATED PARAMETERS
#
# [*project_domain*]
# (Optional) Project domain in v3 api.
# Defaults to 'Default'.
#
# [*user_domain*]
# (Optional) User domain in v3 api.
# Defaults to 'Default'.
#
class openstack_extras::auth_file (
$password,
$auth_url = 'http://127.0.0.1:5000/v3/',
$service_token = undef,
$service_endpoint = 'http://127.0.0.1:5000/v3/',
$username = 'admin',
$tenant_name = undef,
$project_name = 'openstack',
$region_name = 'RegionOne',
$use_no_cache = true,
$project_domain_name = 'Default',
$user_domain_name = 'Default',
$auth_type = undef,
$os_interface = 'public',
$os_endpoint_type = 'publicURL',
$cinder_endpoint_type = 'publicURL',
$glance_endpoint_type = 'publicURL',
$keystone_endpoint_type = 'publicURL',
$nova_endpoint_type = 'publicURL',
$neutron_endpoint_type = 'publicURL',
$auth_strategy = 'keystone',
$path = '/root/openrc',
$compute_api_version = undef,
$network_api_version = undef,
$image_api_version = undef,
$volume_api_version = undef,
$identity_api_version = '3',
$object_api_version = undef,
# DEPRECATED PARAMETERS
$project_domain = undef,
$user_domain = undef,
) {
if $project_domain != undef {
warning('project_domain is deprecated and will be removed in a future release. \
Use project_domain_name instead')
$project_domain_name_real = $project_domain
} else {
$project_domain_name_real = $project_domain_name
}
if $user_domain != undef {
warning('user_domain is deprecated and will be removed in a future release. \
Use user_domain_name instead')
$user_domain_name_real = $user_domain
} else {
$user_domain_name_real = $user_domain_name
}
file { $path:
owner => 'root',
group => 'root',
mode => '0700',
show_diff => false,
tag => ['openrc'],
content => template('openstack_extras/openrc.erb')
}
}