Puppet Class: cubbystack::swift

Defined in:
manifests/swift.pp

Overview

Class: cubbystack::swift

Configures the swift package and swift.conf

Parameters

settings

A hash of key => value settings to go in swift.conf Required.

config_file

The path to swift.conf Defaults to /etc/swift/swift.conf

package_ensure

The state of the swift package. Defaults to latest.

Parameters:

  • settings (Any)
  • package_ensure (Any) (defaults to: latest)
  • config_file (Any) (defaults to: '/etc/swift/swift.conf')
  • purge_config (Any) (defaults to: true)


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
# File 'manifests/swift.pp', line 19

class cubbystack::swift (
  $settings,
  $package_ensure = latest,
  $config_file    = '/etc/swift/swift.conf',
  $purge_config   = true,
) {

  include ::cubbystack::params

  # Meta and globals
  $tags = 'swift'

  # Make sure swift.conf exists before any configuration happens
  Package<| tag == 'swift' |> -> Cubbystack_config<| tag == 'swift' |>
  Cubbystack_config<| tag == 'swift' |> -> Service<| tag == 'swift' |>

  # Install the swift package
  package { 'swift':
    name   => $::cubbystack::params::swift_package_name,
    ensure => $package_ensure,
    tag    => $tags,
  }

  # Global file attributes
  File {
    ensure  => present,
    owner   => 'swift',
    group   => 'swift',
    mode    => '0640',
    require => Package['swift'],
  }

  $swift_directories = ['/etc/swift', '/etc/swift/backups', '/var/lib/swift']
  file { $swift_directories:
    ensure  => directory,
    recurse => true;
  }

  # Configure the swift.conf file
  $settings.each |$setting, $value| {
    cubbystack_config { "${config_file}: ${setting}":
      value => $value,
      tag   => $tags,
    }
  }
}