68ea744762
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 |
||
---|---|---|
examples | ||
lib/puppet | ||
manifests | ||
releasenotes | ||
spec | ||
.fixtures.yml | ||
.gitignore | ||
.gitreview | ||
.nodeset.yml | ||
.prefabs.yml | ||
Gemfile | ||
LICENSE | ||
metadata.json | ||
other-requirements.txt | ||
Rakefile | ||
README.md | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini | ||
USECASES.md |
ceph
Table of Contents
- Overview - What is the ceph module?
- Module Description - What does the module do?
- Setup - The basics of getting started with ceph
- Implementation - An under-the-hood peek at what the module is doing
- Limitations - OS compatibility, etc.
- Use Cases - Examples of how to use this module
- Development - Guide for contributing to the module
- Beaker Integration Tests - Apply the module and test restults
- Contributors - Those with commits
- 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
- I want to try this module, heard of ceph, want to see it in action
- I want to operate a production cluster
- I want to run benchmarks on three new machines
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