key.pp: extend key handling with caps, keyfile fbits and injection

This extends the key handling. It adds optional support for:
- Ceph auth capabilities
- set the file mode bits for the keyfile
- support to inject a key into the cluster directly in one run

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
README.rst: change command to get a key via ceph-authtool

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
adapt mon.pp and osd.pp to changed keyhandling

Don't create keys on your own in mon.pp, use ceph::key for this.

Don't generate client.admin key in ceph::mon and distribute it later
via facter to the other nodes. Simplify the handling of the secret for
client.admin: generate it like the mon secret before in the site.pp
and pass the secret over to the nodes which may need the key to generate
a file containing the key.

With this change the client.admin key is injected in the cluster
in ceph::mon. Don't care which of the MONs inject, since they all
use the same secret. This way it would reduce the needed puppet runs
from at least 3 runs to simply one per MON node. It also make administration
much easier since the client.amin secret is known to the admin from
the site.pp and can easily be used to create new keys on other machines.

Due to this change the 'client_admin_secret' secret is mandatory for
ceph::mon and ceph::osd.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
.gitignore: add some common files to be ignored

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
device.pp: extend to work without partition and reduce needed runs

Changed ceph::osd::device to work also without partition the device
and adding a GPT table to the device. This way we can use e.g. /dev/sdc
directly since there is no need to use a partition in most cases.

Reduce the needed puppet agent runs from at least 3  to max. 2 runs
if the MONs are running. Get the blkid if not available in facter
directly from the system and pass the information to a file under
/var/lib/ceph/tmp/. Then create the OSD without waiting for facter
by getting the information needed from this file. This way we can
spare one puppet run.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
mds: allow to disable [mds] section in ceph.conf if not needed

Added new parameter to ceph::conf (mds_activate) to disable
the [mds] section of ceph.conf if not needed.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
ceph_conf_spec.rb: adapt to new param mds_activate

Added test for default param+mds_activate=false.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
manifests/conf.pp: add parameter documentation

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
pool.pp: add new define ceph::pool

Added new ceph::pool to manage pools. Currently these actions are supported:
- create a new pool
- delete an existing pool from the cluster (BE CAREFULLY WITH THIS!)

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
ceph_pool_spec.rb: add rspec for ceph::pool

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
.gitignore: add *.lock (Gemfile.lock)

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
ceph::pool: add support to increase the PGs ang PGPs of a pool

Added new parameter to ceph::pool to increase the PG and PGP num:
- $increase_pg_num (defaults to false)
- $increase_pgp_num (defaults to false)

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
README.rst: add hint on how to run the rspec tests

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
ceph::conf: add support for 'mon osd (near)full ratio'

Added new optional parameter to ceph::conf:
- mon_osd_full_ratio
- mon_osd_nearfull_ratio

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
rspec: fix typo in describe/context

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>