Git Product home page Git Product logo

puppet-ceph's Introduction

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

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

BUNDLE_PATH=/tmp/vendor \
RELEASES='dumpling emperor firefly' \
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-64-x64
  • one-centos-64-x64

The default is

BUNDLE_PATH=/tmp/vendor \
RS_SET=two-ubuntu-server-12042-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:

script='bash -c "'
script+='mv Gemfile-rspec-system Gemfile ; bundle install ;'
script+='RS_SET=two-ubuntu-server-12042-x64 bundle exec rake spec:system'
script+='RS_SET=two-centos-64-x64 bundle exec rake spec:system'
script+='" > /tmp/out 2>&1 ; r=$? ; '
script+='echo https://pypi.python.org/pypi/gerritexec output: ; '
script+='pastebinit /tmp/out ; '
script+='exit $r #'
GEM_HOME=~/.gems gerritexec \
   --hostname review.openstack.org \
   --verbose --username puppetceph \
   --script "$script" \
   --project stackforge/puppet-ceph

Contributors

Release Notes

puppet-ceph's People

Contributors

aldavud avatar alexisdevise avatar bodepd avatar claytono avatar deguitard avatar dmsimard avatar emonty avatar folgueral avatar gitromain avatar guillaume-it avatar mazennico avatar mosibi avatar mpedoussaut avatar ours001 avatar pernotjln avatar pintojeremy avatar pruvosim avatar rochaporto avatar schin avatar timotheebarbe avatar totonyus avatar traxangelz avatar zhurongze avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.