1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
# == Class: openstacklib::clouds
#
# Generates clouds.yaml for openstack CLI
#
# == Parameters
#
# [*username*]
# (Required) The name of the keystone user.
#
# [*password*]
# (Required) Password of the keystone user.
#
# [*auth_url*]
# (Required) The URL to use for authentication.
#
# [*path*]
# (Optional) Path to the clouds.yaml file.
# Defaults to $name
#
# [*user_domain_name*]
# (Optional) Name of domain for $username.
# Defaults to 'Default'
#
# [*project_name*]
# (Optional) The name of the keystone project.
# Defaults to undef
#
# [*project_domain_name*]
# (Optional) Name of domain for $project_name.
# Defaults to 'Default'
#
# [*system_scope*]
# (Optional) Scope for system operations.
# Defaults to undef
#
# [*interface*]
# (Optional) Determine the endpoint to be used.
# Defaults to undef
#
# [*region_name*]
# (Optional) The region in which the service can be found.
# Defaults to undef
#
# [*api_versions*]
# (Optional) Hash of service type and version to determine API version
# for that service to use.
# Example: { 'identity' => '3', 'compute' => '2.latest' }
# Defaults to {}
#
define openstacklib::clouds(
String[1] $username,
String[1] $password,
Stdlib::HTTPUrl $auth_url,
Stdlib::Absolutepath $path = $name,
String[1] $user_domain_name = 'Default',
Optional[String[1]] $project_name = undef,
String[1] $project_domain_name = 'Default',
Optional[String[1]] $system_scope = undef,
Optional[Enum['public', 'internal', 'admin']] $interface = undef,
Optional[String[1]] $region_name = undef,
Hash $api_versions = {},
) {
if !$project_name and !$system_scope {
fail('One of project_name and system_scope should be set')
}
file { $path:
ensure => 'present',
mode => '0600',
owner => 'root',
group => 'root',
content => template('openstacklib/clouds.yaml.erb'),
show_diff => false,
}
}
|