File: clouds.pp

package info (click to toggle)
puppet-module-openstacklib 25.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 968 kB
  • sloc: ruby: 4,500; python: 38; sh: 22; makefile: 10
file content (76 lines) | stat: -rw-r--r-- 2,118 bytes parent folder | download
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,
  }
}