Ceph Puppet Module
Go to file
John Fulton a46d5c5a20 Deployment should fail when trying to add another Ceph cluster's OSD
This change explicitly adds the FSID to the $cluster_option variable
and causes Puppet to exit if OSD preparation/activation will fail
because the OSD belongs to a different Ceph cluster as determined by
an FSID mismatch. FSID mismatch is a symptom of attempting to install
over another deploy. The FSID mismatch failure will be logged so that
the user may determine the reason for failure and then choose to zap
away the old deploy away before re-attempting deployment.

Closes-Bug: 1604728
Change-Id: I61d18400754842860372c4cc5f3b80d104d59706
2016-09-23 15:54:50 +00:00
examples Adding OSD level params 2016-07-13 10:14:10 -04:00
lib/puppet Add ceph_config ini helper 2013-10-25 10:22:01 -07:00
manifests Deployment should fail when trying to add another Ceph cluster's OSD 2016-09-23 15:54:50 +00:00
releasenotes Deployment should fail when trying to add another Ceph cluster's OSD 2016-09-23 15:54:50 +00:00
spec Deployment should fail when trying to add another Ceph cluster's OSD 2016-09-23 15:54:50 +00:00
.gitignore Re-boostrap beaker tests 2016-07-07 16:27:14 -04:00
.gitreview Update .gitreview for new namespace 2015-11-05 17:15:13 -05:00
bindep.txt Move other-requirements.txt to bindep.txt 2016-08-12 21:05:43 +02:00
Gemfile Re-boostrap beaker tests 2016-07-07 16:27:14 -04:00
LICENSE Add project files 2013-10-20 22:45:54 -07:00
metadata.json Release puppet-ceph 2.1.0 2016-09-16 13:09:41 -04:00
Rakefile Re-boostrap beaker tests 2016-07-07 16:27:14 -04: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