Ceph Puppet Module
Go to file
Emilien Macchi 68ea744762 Bump to Jewel
This patch bumps puppet-ceph to use Jewel, the new LTS that will replace
Hammer (previous LTS).

* Change defaults repositories to download Jewel by default except on
  CentOS [1].
* Ensure mon/osd files are created as the ceph user [2] only if ceph
  user is present on the system (managed by ceph packaging since Jewel).
* Rename radosgw service to match with Jewel packaging.
* acceptance: configure Ceph to limit OSD object name lengths for ext4.
* acceptance: deploy Jewel for Ubuntu and Hammer on CentOS7, packages
  are not ready for CentOS SIG:
  http://buildlogs.centos.org/centos/7/storage/x86_64/ceph-jewel/
* acceptance: limit OSD object name lengths for ext4:
  As of the Ceph Jewel release, certain limitations apply to OSD object
  name lengths: specifically if ext4 is in use for block devices or a
  directory based OSD is configured, OSD's must be configured to limit
  object name length [3].

[1] https://bugs.centos.org/view.php?id=10803
[2] http://docs.ceph.com/docs/master/release-notes/#upgrading-from-hammer
[3] Thanks to James Page: https://review.openstack.org/#/c/318612/1

Change-Id: I2ebe0fbab10d04b21c851df64d60b834f4006d3a
2016-06-03 14:27:30 -04:00
examples Bump to Jewel 2016-06-03 14:27:30 -04:00
lib/puppet Add ceph_config ini helper 2013-10-25 10:22:01 -07:00
manifests Bump to Jewel 2016-06-03 14:27:30 -04:00
releasenotes Bump to Jewel 2016-06-03 14:27:30 -04:00
spec Bump to Jewel 2016-06-03 14:27:30 -04:00
.fixtures.yml Bump allowed version of puppetlabs-concat 2016-02-11 16:28:11 -08:00
.gitignore The ceph extras location is no more. 2016-02-08 20:39:18 -05:00
.gitreview Update .gitreview for new namespace 2015-11-05 17:15:13 -05: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 drop mock dependency 2016-01-22 09:31:57 -05:00
LICENSE Add project files 2013-10-20 22:45:54 -07:00
metadata.json Update minium stdlib version 2016-05-11 10:18:55 -06:00
other-requirements.txt Add other-requirements.txt for bindep 2016-05-21 09:07:41 +00:00
Rakefile Remove class_parameter_defaults puppet-lint check 2015-11-12 12:30:39 +01:00
README.md Change wiki to docs 2016-06-02 23:04:40 -03:00
setup.cfg Prepare puppet-ceph for 1.0.0 2016-05-06 17:54:13 -04:00
setup.py Prepare puppet-ceph for 1.0.0 2016-05-06 17:54:13 -04:00
test-requirements.txt Prepare puppet-ceph for 1.0.0 2016-05-06 17:54:13 -04:00
tox.ini Prepare puppet-ceph for 1.0.0 2016-05-06 17:54:13 -04:00
USECASES.md Remove Puppetfile in favor of metadata.json 2016-04-12 14:34:29 +00:00

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. Use Cases - Examples of how to use this module
  7. Development - Guide for contributing to the module
  8. Beaker Integration Tests - Apply the module and test restults
  9. Contributors - Those with commits
  10. 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

We follow the OS compatibility of Ceph. With the release of infernalis this is currently:

  • CentOS 7 or later
  • Debian Jessie 8.x or later
  • Ubuntu Trusty 14.04 or later
  • Fedora 22 or later

Use Cases

Development

git clone https://github.com/openstack/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

The default is

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

Contributors

Release Notes