File: lvm.pp

package info (click to toggle)
puppet-module-manila 25.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,804 kB
  • sloc: ruby: 4,767; python: 38; makefile: 10; sh: 10
file content (98 lines) | stat: -rw-r--r-- 4,252 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#
# == Defines: manila::backend::lvm
#
# Configures Manila to use LVM as a share driver
#
# === Parameters
# [*lvm_share_export_ips*]
#  (required) List of IPs to export shares belonging to the LVM storage driver.
#
# [*share_backend_name*]
#   (optional) Name of the backend in manila.conf that these settings will
#   reside in.
#   Defaults to: $name
#
# [*backend_availability_zone*]
#   (Optional) Availability zone for this share backend.
#   If not set, the storage_availability_zone option value
#   is used as the default for all backends.
#   Defaults to $facts['os_service_default'].
#
# [*lvm_share_export_root*]
#  (optional) Base folder where exported shares are located.
#  Defaults to: $facts['os_service_default']
#
# [*lvm_share_mirrors*]
#  (optional) If set, create LVMs with multiple mirrors. Note that this requires
#  lvm_mirrors + 2 PVs with available space.
#  Defaults to: $facts['os_service_default']

# [*lvm_share_volume_group*]
#  (optional) Name for the VG that will contain exported shares. (string value)
#  Defaults to: $facts['os_service_default']

# [*lvm_share_helpers*]
#  (optional) Specify list of share export helpers. (list value)
#  Defaults to: $facts['os_service_default']
#
# [*reserved_share_percentage*]
#   (optional) The percentage of backend capacity reserved.
#   Defaults to: $facts['os_service_default']
#
# [*reserved_share_from_snapshot_percentage*]
#   (optional) The percentage of backend capacity reserved. Used for shares
#   created from the snapshot.
#   Defaults to: $facts['os_service_default']
#
# [*reserved_share_extend_percentage*]
#   (optional) The percentage of backend capacity reserved for share extend
#   operation.
#   Defaults to: $facts['os_service_default']
#
# DEPRECATED PARAMETERS
#
# [*driver_handles_share_servers*]
#  (optional) Denotes whether the driver should handle the responsibility of
#  managing share servers. This must be set to false if the driver is to
#  operate without managing share servers.
#  This parameter is now ignored and the option is always set to False.
#  Defaults to: undef
#
define manila::backend::lvm (
  $lvm_share_export_ips,
  $share_backend_name                      = $name,
  $backend_availability_zone               = $facts['os_service_default'],
  $lvm_share_export_root                   = $facts['os_service_default'],
  $lvm_share_mirrors                       = $facts['os_service_default'],
  $lvm_share_volume_group                  = $facts['os_service_default'],
  $lvm_share_helpers                       = $facts['os_service_default'],
  $reserved_share_percentage               = $facts['os_service_default'],
  $reserved_share_from_snapshot_percentage = $facts['os_service_default'],
  $reserved_share_extend_percentage        = $facts['os_service_default'],
  # DEPRECATED PARAMETERS
  $driver_handles_share_servers            = undef,
) {

  include manila::deps
  $share_driver = 'manila.share.drivers.lvm.LVMShareDriver'

  if $driver_handles_share_servers != undef {
    warning('The manila::backend::lvm::driver_handles_share_servers parameter is deprecated \
and has no effect.')
  }

  manila_config {
    "${name}/share_backend_name":                      value => $share_backend_name;
    "${name}/backend_availability_zone":               value => $backend_availability_zone;
    "${name}/share_driver":                            value => $share_driver;
    "${name}/driver_handles_share_servers":            value => false;
    "${name}/lvm_share_export_ips":                    value => join(any2array($lvm_share_export_ips),',');
    "${name}/lvm_share_export_root":                   value => $lvm_share_export_root;
    "${name}/lvm_share_mirrors":                       value => $lvm_share_mirrors;
    "${name}/lvm_share_volume_group":                  value => $lvm_share_volume_group;
    "${name}/lvm_share_helpers":                       value => join(any2array($lvm_share_helpers), ',');
    "${name}/reserved_share_percentage":               value => $reserved_share_percentage;
    "${name}/reserved_share_from_snapshot_percentage": value => $reserved_share_from_snapshot_percentage;
    "${name}/reserved_share_extend_percentage":        value => $reserved_share_extend_percentage;
  }
}