README.md 3.8 KB

ceph

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with ceph
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. Development - Guide for contributing to the module

Overview

A one-maybe-two sentence summary of what the module does/what problem it solves. This is your 30 second elevator pitch for your module. Consider including OS/Puppet version it works with.

Module Description

If applicable, this section should have a brief description of the technology the module integrates with and what that integration enables. This section should answer the questions: "What does this module do?" and "Why would I use it?"

If your module has a range of functionality (installation, configuration, management, etc.) this is the time to mention it.

Setup

What ceph affects

  • A list of files, packages, services, or operations that the module will alter, impact, or execute on the system it's installed on.
  • This is a great place to stick any warnings.
  • Can be in list or paragraph form.

Setup Requirements OPTIONAL

If your module requires anything extra before setting up (pluginsync enabled, etc.), mention it here.

Beginning with ceph

The very basic steps needed for a user to get the module up and running.

If your most recent release breaks compatibility or requires particular steps for upgrading, you may wish to include an additional section here: Upgrading (For an example, see http://forge.puppetlabs.com/puppetlabs/firewall).

Usage

Put the classes, types, and resources for customizing, configuring, and doing the fancy stuff with your module here.

Reference

Here, list the classes, types, providers, facts, etc contained in your module. This section should include all of the under-the-hood workings of your module so people know what the module is touching on their system but don't need to mess with things. (We are working on automating this section!)

Classes

Public Classes

  • ceph: Main class

Private Classes

  • ceph::params: Manages ceph parameters.
  • ceph::install: Manages ceph installation.
  • ceph::config: Manages ceph configuration.
  • ceph::mon: Ceph monitor setup.
  • ceph::osd: Ceph OSD setup.

Resources

  • ceph::osd_disk: Type to manage ceph osd disk.

Parameters

ceph

package_name

Name of ceph package.

osd_disks

OSD resource hash.

fsid

Cluster's FSID. Required.

monitor_hosts

Required.

public_network

Required.

cluster_network

Default: undef.

mon_port

Monitor port.

auth_cluster_required
auth_service_required
auth_client_required
osd_journal_size
filestore_xattr_use_omap
osd_pool_default_size
osd_pool_default_min_size
osd_pool_default_pg_num
osd_pool_default_pgp_num
osd_crush_chooseleaf_type
is_admin

Boolean if admin node. Default: false.

is_mon

Boolean if monitor node. Default: false.

repo_url

Ceph rpm repo baseurl.

Limitations

This is where you list OS compatibility, version compatibility, etc.

Development

Running tests

Install gems for development and testing.

$ bundle install

Run rspec tests

$ bundle exec rake spec

Validate puppet syntax and puppet-lint

$ bundle exec rake validate

Run acceptance tests. This requires vagrant and virtualbox.

$ bundle exec rake acceptance