Puppet Class: gnocchi::storage::ceph

Inherits:
gnocchi::params
Defined in:
manifests/storage/ceph.pp

Overview

gnocchi::storage::ceph

Ceph driver for Gnocchi

Parameters

ceph_pool

(optional) Ceph pool name to use. Defaults to ‘gnocchi’.

ceph_username

(required) Ceph username to use.

ceph_keyring

(optional) Ceph keyring path. Defaults to $::os_service_default

ceph_secret

(optional) Ceph secret. Defaults to $::os_service_default

ceph_conffile

(optional) Ceph configuration file. Defaults to ‘/etc/ceph/ceph.conf’.

manage_cradox

(optional) Ensure state of the cradox package. As of ceph jewel the python-rados package should be used. Option must be set to false for Ubuntu as there is no cradox package for Ubuntu. Defaults to true.

manage_rados

(optional) Ensure state of the rados python package. This option must be set to true for Ubuntu as there is no cradox package available for Ubuntu. Defaults to false.

Parameters:

  • ceph_username (Any)
  • ceph_keyring (Any) (defaults to: $::os_service_default)
  • ceph_secret (Any) (defaults to: $::os_service_default)
  • ceph_pool (Any) (defaults to: 'gnocchi')
  • ceph_conffile (Any) (defaults to: '/etc/ceph/ceph.conf')
  • manage_cradox (Any) (defaults to: true)
  • manage_rados (Any) (defaults to: false)


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
99
100
101
102
103
104
105
106
107
108
109
110
# File 'manifests/storage/ceph.pp', line 56

class gnocchi::storage::ceph(
  $ceph_username,
  $ceph_keyring   = $::os_service_default,
  $ceph_secret    = $::os_service_default,
  $ceph_pool      = 'gnocchi',
  $ceph_conffile  = '/etc/ceph/ceph.conf',
  $manage_cradox  = true,
  $manage_rados   = false,
) inherits gnocchi::params {

  include gnocchi::deps

  if (is_service_default($ceph_keyring) and is_service_default($ceph_secret)) or (! $ceph_keyring and ! $ceph_secret) {
    fail('You need to specify either gnocchi::storage::ceph::ceph_keyring or gnocchi::storage::ceph::ceph_secret.')
  }

  if $manage_rados and $manage_cradox {
    fail('gnocchi::storage::ceph::manage_rados and gnocchi::storage::ceph::manage_cradox both cannot be set to true.')
  }

  if $manage_cradox {
    if $::osfamily == 'Debian' {
      fail('gnocchi::storage::ceph::manage_cradox set to true on debian family will fail due to no package being available.')
    }
  }

  gnocchi_config {
    'storage/driver':        value => 'ceph';
    'storage/ceph_username': value => $ceph_username;
    'storage/ceph_keyring':  value => $ceph_keyring;
    'storage/ceph_secret':   value => $ceph_secret, secret => true;
    'storage/ceph_pool':     value => $ceph_pool;
    'storage/ceph_conffile': value => $ceph_conffile;
  }

  if $manage_cradox {
    if $::gnocchi::params::common_package_name {
      ensure_packages('python-cradox', {
        'ensure' => 'present',
        'name'   => $::gnocchi::params::cradox_package_name,
        'tag'    => ['openstack','gnocchi-package'],
      })
    }
  }

  if $manage_rados {
    if $::gnocchi::params::common_package_name {
      ensure_packages('python-rados', {
        'ensure' => 'present',
        'name'   => $::gnocchi::params::rados_package_name,
        'tag'    => ['openstack','gnocchi-package'],
      })
    }
  }
}