divide setup to crush, keyring and pool, fix tests
Change-Id: I91caa01fef79e003396620ffc04382ba17063b4a
diff --git a/README.rst b/README.rst
index 8dbcc77..df8bf25 100644
--- a/README.rst
+++ b/README.rst
@@ -259,42 +259,44 @@
.. code-block:: yaml
- crush:
- enabled: True
- tunables:
- choose_total_tries: 50
- type:
- - root
- - region
- - rack
- - host
- root:
- - name: root1
- - name: root2
- region:
- - name: eu-1
- parent: root1
- - name: eu-2
- parent: root1
- - name: us-1
- parent: root2
- rack:
- - name: rack01
- parent: eu-1
- - name: rack02
- parent: eu-2
- - name: rack03
- parent: us-1
- rule:
- sata:
- ruleset: 0
- type: replicated
- min_size: 1
- max_size: 10
- steps:
- - take crushroot.performanceblock.satahss.1
- - choseleaf firstn 0 type failure_domain
- - emit
+ ceph:
+ setup:
+ crush:
+ enabled: True
+ tunables:
+ choose_total_tries: 50
+ type:
+ - root
+ - region
+ - rack
+ - host
+ root:
+ - name: root1
+ - name: root2
+ region:
+ - name: eu-1
+ parent: root1
+ - name: eu-2
+ parent: root1
+ - name: us-1
+ parent: root2
+ rack:
+ - name: rack01
+ parent: eu-1
+ - name: rack02
+ parent: eu-2
+ - name: rack03
+ parent: us-1
+ rule:
+ sata:
+ ruleset: 0
+ type: replicated
+ min_size: 1
+ max_size: 10
+ steps:
+ - take crushroot.performanceblock.satahss.1
+ - choseleaf firstn 0 type failure_domain
+ - emit
Ceph monitoring
---------------
diff --git a/ceph/mon.sls b/ceph/mon.sls
index 0cdd7dc..53dab96 100644
--- a/ceph/mon.sls
+++ b/ceph/mon.sls
@@ -62,9 +62,12 @@
mon_services:
service.running:
- - enable: true
- - names: [ceph-mon@{{ grains.host }}]
- - watch:
- - file: /etc/ceph/ceph.conf
- - require:
- - pkg: mon_packages
+ - enable: true
+ - names: [ceph-mon@{{ grains.host }}]
+ - watch:
+ - file: /etc/ceph/ceph.conf
+ - require:
+ - pkg: mon_packages
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
diff --git a/ceph/osd.sls b/ceph/osd.sls
index 4d7be7b..5895830 100644
--- a/ceph/osd.sls
+++ b/ceph/osd.sls
@@ -30,6 +30,9 @@
- name: xfs.mkfs
- device: {{ disk.dev }}
- unless: "ceph-disk list | grep {{ disk.dev }} | grep {{ osd.fs_type }}"
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
/var/lib/ceph/osd/ceph-{{ id }}:
mount.mounted:
@@ -37,6 +40,9 @@
- fstype: {{ osd.fs_type }}
- opts: {{ disk.get('opts', 'rw,noatime,inode64,logbufs=8,logbsize=256k') }}
- mkmnt: True
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
permission_/var/lib/ceph/osd/ceph-{{ id }}:
file.directory:
@@ -44,9 +50,13 @@
- user: ceph
- group: ceph
- mode: 755
- - makedirs: false
+ - makedirs: False
- require:
- mount: /var/lib/ceph/osd/ceph-{{ id }}
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
+
{{ disk.journal }}:
file.managed:
@@ -61,6 +71,9 @@
- require:
- file: /var/lib/ceph/osd/ceph-{{ id }}
- mount: /var/lib/ceph/osd/ceph-{{ id }}
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
add_keyring_{{ id }}:
cmd.run:
@@ -68,12 +81,19 @@
- unless: "ceph auth list | grep '^osd.{{ id }}'"
- require:
- cmd: create_disk_{{ id }}
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
/var/lib/ceph/osd/ceph-{{ id }}/done:
file.managed:
- content: {}
- require:
- cmd: add_keyring_{{ id }}
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
+
osd_services_{{ id }}_osd:
service.running:
@@ -84,6 +104,9 @@
- require:
- file: /var/lib/ceph/osd/ceph-{{ id }}/done
- service: osd_services_perms
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
{% endfor %}
@@ -94,6 +117,10 @@
- names: ['ceph-osd.target']
- watch:
- file: /etc/ceph/ceph.conf
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
+
osd_services:
service.running:
@@ -101,6 +128,10 @@
- names: ['ceph.target']
- watch:
- file: /etc/ceph/ceph.conf
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
+
/etc/systemd/system/ceph-osd-perms.service:
file.managed:
@@ -123,4 +154,7 @@
- enable: true
- names: ['ceph-osd-perms']
- require:
- - file: /etc/systemd/system/ceph-osd-perms.service
\ No newline at end of file
+ - file: /etc/systemd/system/ceph-osd-perms.service
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
diff --git a/ceph/radosgw.sls b/ceph/radosgw.sls
index 98a6707..4a8c4af 100644
--- a/ceph/radosgw.sls
+++ b/ceph/radosgw.sls
@@ -23,5 +23,8 @@
- file: /var/lib/ceph/radosgw/ceph-radosgw.gateway/done
- watch:
- file: /etc/ceph/ceph.conf
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
{%- endif %}
diff --git a/ceph/setup/crush.sls b/ceph/setup/crush.sls
new file mode 100644
index 0000000..cdf1bbe
--- /dev/null
+++ b/ceph/setup/crush.sls
@@ -0,0 +1,6 @@
+{%- from "ceph/map.jinja" import setup with context %}
+
+/etc/ceph/crushmap:
+ file.managed:
+ - source: salt://ceph/files/crushmap
+ - template: jinja
diff --git a/ceph/setup/init.sls b/ceph/setup/init.sls
new file mode 100644
index 0000000..e9c3e9a
--- /dev/null
+++ b/ceph/setup/init.sls
@@ -0,0 +1,14 @@
+{%- from "ceph/map.jinja" import common, setup with context %}
+{%- if setup.enabled %}
+
+include:
+- ceph.common
+{%- if setup.get('crush').enabled %}
+- ceph.setup.crush
+{%- endif %}
+{%- if setup.get('pool') %}
+- ceph.setup.pool
+{%- endif %}
+{%- if common.get('keyring') %}
+- ceph.setup.keyring
+{%- endif %}
diff --git a/ceph/setup/keyring.sls b/ceph/setup/keyring.sls
new file mode 100644
index 0000000..0a5b4c0
--- /dev/null
+++ b/ceph/setup/keyring.sls
@@ -0,0 +1,12 @@
+{%- from "ceph/map.jinja" import common with context %}
+
+{% for keyring_name, keyring in common.get('keyring', {}).iteritems() %}
+
+ceph_keyring_{{ keyring_name }}_import:
+ cmd.run:
+ - name: ceph auth import -i /etc/ceph/ceph.client.{{ keyring_name }}.keyring
+ - unless: ceph auth list | grep {{ keyring_name }}
+
+{%- endfor %}
+
+{%- endif %}
diff --git a/ceph/setup.sls b/ceph/setup/pool.sls
similarity index 65%
rename from ceph/setup.sls
rename to ceph/setup/pool.sls
index 7b7ca90..1f7a40a 100644
--- a/ceph/setup.sls
+++ b/ceph/setup/pool.sls
@@ -1,13 +1,4 @@
-{%- from "ceph/map.jinja" import common, setup with context %}
-{%- if setup.enabled %}
-
-include:
-- ceph.common
-
-/etc/ceph/crushmap:
- file.managed:
- - source: salt://ceph/files/crushmap
- - template: jinja
+{%- from "ceph/map.jinja" import setup with context %}
{%- for pool_name, pool in setup.pool.iteritems() %}
@@ -17,6 +8,7 @@
- unless: "ceph osd pool ls | grep ^{{ pool_name }}"
{%- for option_name, option_value in pool.iteritems() %}
+
{%- if option_name != 'type' %}
ceph_pool_option_{{ pool_name }}_{{ option_name }}:
@@ -28,16 +20,6 @@
{%- endfor %}
-
{%- endfor %}
-{% for keyring_name, keyring in common.get('keyring', {}).iteritems() %}
-ceph_keyring_{{ keyring_name }}_import:
- cmd.run:
- - name: ceph auth import -i /etc/ceph/ceph.client.{{ keyring_name }}.keyring
- - unless: ceph auth list | grep {{ keyring_name }}
-
-{%- endfor %}
-
-{%- endif %}