first commit
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ee729da
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,13 @@
+Copyright 2015 tcp cloud a.s.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/README.md
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..49c0a6f
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,100 @@
+========
+CEPH RBD
+========
+
+Ceph’s RADOS provides you with extraordinary data storage scalability—thousands of client hosts or KVMs accessing petabytes to exabytes of data. Each one of your applications can use the object, block or file system interfaces to the same RADOS cluster simultaneously, which means your Ceph storage system serves as a flexible foundation for all of your data storage needs.
+
+Install and configure the Ceph MON and ODS services
+
+
+
+Sample pillars
+==============
+
+Ceph OSDs: A Ceph OSD Daemon (Ceph OSD) stores data, handles data replication, recovery, backfilling, rebalancing, and provides some monitoring information to Ceph Monitors by checking other Ceph OSD Daemons for a heartbeat. A Ceph Storage Cluster requires at least two Ceph OSD Daemons to achieve an active + clean state when the cluster makes two copies of your data (Ceph makes 2 copies by default, but you can adjust it).
+
+.. code-block:: yaml
+
+    ceph:
+      osd:
+        config:
+          global:
+            fsid: 00000000-0000-0000-0000-000000000000
+            mon initial members: ceph1,ceph2,ceph3
+            mon host: 10.103.255.252:6789,10.103.255.253:6789,10.103.255.254:6789
+            osd_fs_mkfs_arguments_xfs:[]
+            osd_fs_mount_options_xfs: rw,noatime
+            network public: 10.0.0.0/24
+            network cluster: 10.0.0.0/24
+            osd_fs_type: xfs
+          osd:
+            osd journal size: 7500
+            filestore xattr use omap: true
+          mon:
+            mon debug dump transactions: false
+        keyring:
+        - name: cinder
+          key: 00000000000000000000000000000000000000==
+        - name: glance
+          key: 00000000000000000000000000000000000000==
+
+Monitors: A Ceph Monitor maintains maps of the cluster state, including the monitor map, the OSD map, the Placement Group (PG) map, and the CRUSH map. Ceph maintains a history (called an “epoch”) of each state change in the Ceph Monitors, Ceph OSD Daemons, and PGs.
+
+.. code-block:: yaml
+
+    ceph:
+      mon:
+        config:
+          global:
+            fsid: 00000000-0000-0000-0000-000000000000
+            mon initial members: ceph1,ceph2,ceph3
+            mon host: 10.103.255.252:6789,10.103.255.253:6789,10.103.255.254:6789
+            osd_fs_mkfs_arguments_xfs:[]
+            osd_fs_mount_options_xfs: rw,noatime
+            network public: 10.0.0.0/24
+            network cluster: 10.0.0.0/24
+            osd_fs_type: xfs
+          osd:
+            osd journal size: 7500
+            filestore xattr use omap: true
+          mon:
+            mon debug dump transactions: false
+        keyring:
+        - name: cinder
+          key: 00000000000000000000000000000000000000==
+        - name: glance
+          key: 00000000000000000000000000000000000000==
+
+Client pillar - ussually located at cinder-volume or glance-registry.
+
+.. code-block:: yaml
+
+    ceph:
+      client:
+        config:
+          global:
+            fsid: 00000000-0000-0000-0000-000000000000
+            mon initial members: ceph1,ceph2,ceph3
+            mon host: 10.103.255.252:6789,10.103.255.253:6789,10.103.255.254:6789
+            osd_fs_mkfs_arguments_xfs:[]
+            osd_fs_mount_options_xfs: rw,noatime
+            network public: 10.0.0.0/24
+            network cluster: 10.0.0.0/24
+            osd_fs_type: xfs
+          osd:
+            osd journal size: 7500
+            filestore xattr use omap: true
+          mon:
+            mon debug dump transactions: false
+        keyring:
+        - name: cinder
+          key: 00000000000000000000000000000000000000==
+        - name: glance
+          key: 00000000000000000000000000000000000000==
+
+Read more
+=========
+
+* https://github.com/cloud-ee/ceph-salt-formula
+* http://ceph.com/ceph-storage/
+* http://ceph.com/docs/master/start/intro/
\ No newline at end of file
diff --git a/ceph/client.sls b/ceph/client.sls
new file mode 100644
index 0000000..73a228a
--- /dev/null
+++ b/ceph/client.sls
@@ -0,0 +1,25 @@
+{%- from "ceph/map.jinja" import client with context %}
+{%- if client.enabled %}
+
+{%- for keyring_name, keyring in client.keyring.iteritems() %}
+
+/etc/ceph/ceph.client.{{ keyring_name }}.keyring:
+  ini.options_present:
+  - sections:
+      client.{{ keyring_name }}: {{ keyring|yaml }}
+
+{%- endfor %}
+
+{%- load_yaml as config %}
+{{ client.config|yaml }}
+{%- for keyring_name, keyring in client.keyring.iteritems() %}
+client.{{ keyring_name }}:
+  keyring: /etc/ceph/ceph.client.{{ keyring_name }}.keyring
+{%- endfor %}
+{%- endload %}
+
+/etc/ceph/ceph.conf:
+  ini.options_present:
+  - sections: {{ config|yaml }}
+
+{%- endif %}
\ No newline at end of file
diff --git a/ceph/init.sls b/ceph/init.sls
new file mode 100644
index 0000000..a01aa88
--- /dev/null
+++ b/ceph/init.sls
@@ -0,0 +1,10 @@
+include:
+{% if pillar.ceph.osd is defined %}
+- ceph.osd
+{% endif %}
+{% if pillar.ceph.mon is defined %}
+- ceph.mon
+{% endif %}
+{% if pillar.ceph.client is defined %}
+- ceph.client
+{% endif %}
\ No newline at end of file
diff --git a/ceph/map.jinja b/ceph/map.jinja
new file mode 100644
index 0000000..9bf8886
--- /dev/null
+++ b/ceph/map.jinja
@@ -0,0 +1,33 @@
+{% set osd = salt['grains.filter_by']({
+    'Debian': {
+        'pkgs': ['ceph', 'ceph-common'],
+        'services': [],
+    },
+    'RedHat': {
+        'pkgs': ['ceph'],
+        'services': [],
+    },
+}, merge=salt['pillar.get']('ceph:osd')) %}
+
+{% set mon = salt['grains.filter_by']({
+    'Debian': {
+        'pkgs': ['ceph', 'ceph-common'],
+        'services': [],
+    },
+    'RedHat': {
+        'pkgs': ['ceph', 'ceph-common'],
+        'services': [],
+    },
+}, merge=salt['pillar.get']('ceph:mon')) %}
+
+{% set client = salt['grains.filter_by']({
+    'Debian': {
+        'pkgs': ['ceph-common'],
+    },
+    'RedHat': {
+        'pkgs': ['ceph-common'],
+    },
+}, merge=salt['pillar.get']('ceph:client')) %}
+
+{#- vim:ft=sls
+-#}
\ No newline at end of file