Ceph Puppet Module
Go to file
David Gurtner aa6a46bbde Drop no longer supported releases
According to http://ceph.com/docs/master/releases/ only firefly and hammer
are supported versions by ceph.com.
Therefore this proposes to drop the no longer supported versions from the
tests.

Change-Id: Ibe738e7f17e4632e5d1deeabc4e6f937f1b1366a
2015-08-20 08:26:31 +00:00
examples Allow customization of OSDs journal size via class param 2015-08-12 15:48:18 +02:00
lib/puppet Add ceph_config ini helper 2013-10-25 10:22:01 -07:00
manifests use full length APT key 2015-08-19 22:45:52 +00:00
spec Drop no longer supported releases 2015-08-20 08:26:31 +00:00
.fixtures.yml Add EL7 Support, Fix unit and integration tests 2015-06-30 16:29:26 -04:00
.gitignore Adding base infrastructure for beaker CI tests 2015-02-03 23:47:47 +01:00
.gitreview Initial Commit. 2013-10-18 21:29:43 -04:00
.nodeset.yml Update CI boxes to latest versions 2015-02-28 11:18:06 +00:00
.prefabs.yml Update CI boxes to latest versions 2015-02-28 11:18:06 +00:00
Gemfile Add EL7 Support, Fix unit and integration tests 2015-06-30 16:29:26 -04:00
Gemfile-rspec-system Add EL7 Support, Fix unit and integration tests 2015-06-30 16:29:26 -04:00
LICENSE Add project files 2013-10-20 22:45:54 -07:00
Puppetfile Add EL7 Support, Fix unit and integration tests 2015-06-30 16:29:26 -04:00
README.md Drop no longer supported releases 2015-08-20 08:26:31 +00:00
Rakefile Clean the documentation for rspec-beaker 2015-08-05 12:53:12 +02:00
USECASES.md Fix to allow for arbitrary interface naming 2015-02-19 00:08:16 +01:00
metadata.json Add EL7 Support, Fix unit and integration tests 2015-06-30 16:29:26 -04:00

README.md

ceph

Table of Contents

  1. Overview - What is the ceph module?
  2. Module Description - What does the module do?
  3. Setup - The basics of getting started with ceph
  4. Implementation - An under-the-hood peek at what the module is doing
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module
  7. Contributors - Those with commits
  8. Integration - Apply the module and test restults
  9. Release Notes - Notes on the most recent updates to the module

Overview

The ceph module is intended to leverage all Ceph has to offer and allow for a wide range of use case. Although hosted on the OpenStack infrastructure, it does not require to sign a CLA nor is it restricted to OpenStack users. It benefits from a structured development process that helps federate the development effort. Each feature is tested with integration tests involving virtual machines to show that it performs as expected when used with a realistic scenario.

Module Description

The ceph module deploys a Ceph cluster ( MON, OSD ), the Cephfs file system and the RadosGW object store. It provides integration with various environments ( OpenStack ... ) and components to be used by third party puppet modules that depend on a Ceph cluster.

Setup

Implementation

A blueprint contains an inventory of what is desirable. It was decided to start from scratch and implement one module at a time.

Limitations

Use Cases

Development

git clone https://github.com/stackforge/puppet-ceph.git
cd puppet-ceph
sudo gem install bundler
bundle install

The developer documentation of the puppet-openstack project is the reference:

Mailing lists:

IRC channels:

  • irc.freenode.net#puppet-openstack
  • irc.oftc.net#ceph-devel

Beaker Integration Tests

Relies on rspec-beaker and tests are in spec/acceptance. It also requires Vagrant and Virtualbox .

bundle install
bundle exec rspec spec/acceptance

The BEAKER_set environment variable contains the resource set of linux distribution configurations for which integration tests are going to be run. Available values are

  • two-centos-70-x64
  • centos-70-x64
  • two-ubuntu-server-1404-x64
  • ubuntu-server-1404-x64
  • two-centos-66-x64
  • centos-66-x64
  • two-ubuntu-server-1204-x64
  • ubuntu-server-1204-x64

The default is

BEAKER_set=two-ubuntu-server-1404-x64 \
bundle exec rspec spec/acceptance

Deprecated Integration Tests

Relies on rspec-system-puppet and tests are in spec/system. It runs virtual machines and requires 4GB of free memory and 10GB of free disk space.

The RELEASES environment variable contains the list of ceph releases for which integration tests are going to be run. The default is

RELEASES='firefly hammer' \
bundle exec rake spec:system

The RS_SET environment variable contains the resource set of linux distribution configurations for which integration tests are going to be run. Available values are

  • two-ubuntu-server-12042-x64
  • one-ubuntu-server-12042-x64
  • two-centos-65-x64
  • one-centos-65-x64
  • two-centos-70-x64
  • one-centos-70-x64

The default is

RS_SET=two-ubuntu-server-1204-x64 \
bundle exec rake spec:system

The MACHINES environment variable contains the list of virtual machines that are used for integration tests. This needs to match with the RS_SET above. I.e. for a two-* RS_SET use 2 machines. The default is

MACHINES='first second' \
bundle exec rake spec:system

On success it should complete with

...
=end=============================================================
Finished in 4 minutes 1.7 seconds
1 example, 0 failures

Example invocation of gerritexec:

cat > ./ci.sh << EOF
#!/bin/bash

bundle install

export BEAKER_debug=yes
export BEAKER_destroy=yes

echo ---------------- CENTOS 7 --------------
BEAKER_set=two-centos-70-x64 bundle exec rspec spec/acceptance
rc=$?

echo ---------- UBUNTU 14.04 --------------
BEAKER_set=two-ubuntu-server-1404-x64 bundle exec rspec spec/acceptance
exit $(( $? | $rc))
EOF

chmod +x ./ci.sh

GEM_HOME=~/.gems screen -dmS puppet-ceph gerritexec \
  --timeout 14400 --hostname review.openstack.org \
  --verbose --username puppetceph --script "../ci.sh > /tmp/out$$ 2>&1 ; r=$? ; pastebinit /tmp/out$$ ; exit $r #" \
  --project stackforge/puppet-ceph

Contributors

Release Notes