This document is intended to capture requirements for a single puppet-ceph module that is going to be written and contributed as a part of the stackforge modules.
High level requirements
No complex cross host orchestration
All cross host orchestration should be assumed to be managed outside of Puppet. Provided that it's dependencies have already been configured and are known, each component should support being adding without having to run Puppet on more than one node.
- cinder-volume instances should be configured to join a Ceph cluster simply by running Puppet on that node
- OSD instances should be configured to join a cluster simply by running puppet agent on a node and targeting that role.
All cross host orchestration should be assumed to be managed outside of Puppet. The Puppet implementation should only be concerned with
- what components need to be defined (where these are implemented as classes)
- what data is required for those components (where that data is passed in a class parameters)
This section outlines the roles and well as configuration components that are needed:
ceph specific configuration for cinder/glance (already provided by the puppet-cinder and puppet-glance modules in the volume/rdb and backend/rdb classes)
ceph client implementation
- proposed name: ceph::client
- purpose: configures the openstack roles as clients by configuring /etc/ceph.conf
- monitor_ips - list of ip addresses used to connect to the monitor servers