Initial Commit.
Add project files

This commit adds the initial project files.

Change-Id: If26c9a8d19e26181d568d615dc71bb4721fc4aa1
project overview and initial README.md

With links to the related resources and a summary of the goal of the
project as they were discussed on #puppet-openstack and

https://groups.google.com/a/puppetlabs.com/forum/#!topic/puppet-openstack/ibnrmXBAxVg

Change-Id: Ie4a45dcf06e944e6ca64f27cf3a129f6c9073cf1
Signed-off-by: Loic Dachary <loic@dachary.org>
Add module's Puppetfile

Change-Id: I59e073b4cc3eb76563882dfabed8255d4d75ab16
Add ceph::repo and it's unit tests to puppet-ceph

ceph::repo is used to set up official ceph repositories.
This commit brings support for the Ubuntu LTS and Debian operating
systems.
It also allows the cuttlefish and the dumpling release of Ceph.
Redhat-like support is planned.

Closes-bug: #1243348
Change-Id: I667acebdd94d0644006e5775962a25e6280e6896
Add ceph_config ini helper

* add a ini_file helper as ceph_config.
* set the seperator as ' = ' in order to be the same as ceph-deploy
* add path param so that seperator can be easily tested.
** also allows for users to change the default path if desired.
* add test case to prove spacing around seperator.
* add simple test case to ensure type works.

Closes-bug: #1243852
Change-Id: I0f3bb41d75d48d8af3b5b7cfb7768c4d3de2c002
integration tests environment

Use https://github.com/puppetlabs/rspec-system-puppet to implement
vagrant based integration tests. The README.md is updated with
instructions to run the integration tests locally. These tests could be
run by a deamon listening to the gerrit stream, when a changeset is
submitted for review, to prove that they do not introduce a regression.

The dependencies from .fixtures.yml have been manually replicated to
spec/spec_helper_system.rb . rspec system puppet is still young and
people do this. It will be a burden only for long term maintenance. And
when it does, in a few months from now, it is safe to assume that rspec
system puppet will have support for reading from an existing file. The
alternative is that rspec system puppet is obsoleted / dead, in which
case this is even a bigger problem. In any case, if work had to be done
to fix this, it should be a patch against rspec system puppet and not
part of puppet-ceph.
https://github.com/puppetlabs/rspec-system-puppet/issues/5

A test for the ceph::repo class is included to demonstrate the
environment actually works. It is not meant to fully test the ceph::repo
integration this would require a separate patch. rspec-system-puppet
requires at least one file in spec/system otherwise it will fail with
an unrelated error:

   Could not autoload puppet/provider/ceph_config/ini_setting: undefined
   method `provider' for nil:NilClass (Puppet::Error)

This test can be removed as soon as another is added.

Change-Id: Ib65120a58ce203126be5897f602e280c474642dc
Signed-off-by: Loic Dachary <loic@dachary.org>
ceph::repo integration tests

ceph::repo supports cuttlefish + dumpling on debian. Checking that
apt-cache policy returns the correct version shows the key was properly
installed and matches the repository. Omitting the release parameter
also checks that the default is cuttlefish.

Closes-bug: #1245177

Change-Id: I01ea92798db5d6d74507f247d3e49a93d1f0fc19
Signed-off-by: Loic Dachary <loic@dachary.org>
development installation instructions

Add installation instructions to bootstrap a development
environment from scratch.

Change-Id: I0c0d796cd525c028b2b077126befa9a2b9e1016c
Signed-off-by: Loic Dachary <loic@dachary.org>
Merge "ceph::repo integration tests"
Introduction of ceph installation and configuration management

* ceph is used to do the installation and configuration of
common dependencies across classes (such as ceph package
installation, global configuration namespaces in ceph.conf).

* ceph::params is meant to hold defaults/constants for various
classes and manage operating system differences in the future.

* ceph::osd, ceph::mon, ceph::mds are introduced solely to manage
their respective 'global' configuration for the time being.

It was decided that we leave most default configurations up to Ceph
unless they are necessary in installing the cluster.
As such, the configurations that are probably most likely to be
changed are available as parameters but optional. If they are not
set (undef), the ceph_config provider will not write them to
ceph.conf and thus, Ceph will handle the defaults.

Other configuration options (exotic or otherwise) can always be
set through the users' manifests with the help of ceph_config.
If support is required, we can always add them if necessary.

Change-Id: I0020a65fe1caada8bc46f6dc63254bcfefb64dbb
Fix error link

Because there is not #integration-tests paragraph, so
https://github.com/stackforge/puppet-ceph#integration-tests is invalid.
I change the paragraph title 'Integration' to 'Integration Test', the
link will be ok.

Change-Id: Ic7bc02e6458e2dd2a81635b92306c56bcd3fa96a
Add more dashes to match title line length

Change-Id: I7b54980a001f03884e2f513ee50e45a64341e552
Change 4 space indent to 2

In order to comply with puppet-opestack standard all files where changed to
 be a uniform 2 space indent.

Change-Id: I1763f9229330fed3e6216cb2d2937a8154505981
Merge "Change 4 space indent to 2"
Add ceph::repo RedHat support

Adds repo's required to support RedHat distros.
Update case tests so RedHat doesn't fail.

Sourced from: https://github.com/Mirantis/fuel/blob/master/deployment/puppet/ceph/manifests/yum.pp

System spec tests will be provided in a follow up commit
repos are from a working deployment and are tested by hand.

Closes-bug: #1243872
Change-Id: I6d9e356bac6855fd30c522916bf7c4867195488c
Update "README.md" and "USECASES.md" (I want to operate a production cluster)

Change-Id: I295132cde84f2b6d53d29690204b522bf229d4dc
Adds use case to USECASES.md

It is a use case listed in https://wiki.openstack.org/wiki/Puppet-
openstack/ceph-blueprint and it would be a useful example when
considering what the puppet-ceph module can do. It must be linked
from the README.md

Closes-Bug: #1243331
Change-Id: I6d477353a0e1bc00eef77e96099e92845f47f21f
Merge "Add ceph::repo RedHat support"