cinder NFS
Change-Id: Ie6193bae9a5e0704270652d36b5ff6ffaf70d3ed
diff --git a/README.rst b/README.rst
index 7d6c011..72b2f4e 100644
--- a/README.rst
+++ b/README.rst
@@ -232,6 +232,26 @@
multipath: true
pool: SAS15K
+
+Cinder setup with NFS
+
+.. code-block:: yaml
+
+ cinder:
+ controller:
+ enabled: true
+ default_volume_type: nfs-driver
+ backend:
+ nfs-driver:
+ engine: nfs
+ type_name: nfs-driver
+ volume_group: cinder-volume
+ path: /var/lib/cinder/nfs
+ devices:
+ - 172.16.10.110:/var/nfs/cinder
+ options: rw,sync
+
+
Cinder setup with Hitachi VPS
.. code-block:: yaml
diff --git a/cinder/controller.sls b/cinder/controller.sls
index a10d5d9..60020e6 100644
--- a/cinder/controller.sls
+++ b/cinder/controller.sls
@@ -53,6 +53,18 @@
{%- for backend_name, backend in controller.get('backend', {}).iteritems() %}
+{%- if backend.engine is defined and backend.engine == 'nfs' %}
+/etc/cinder/nfs_shares:
+ file.managed:
+ - source: salt://cinder/files/{{ controller.version }}/nfs_shares
+ - defaults:
+ backend: {{ backend|yaml }}
+ - template: jinja
+ - require:
+ - pkg: cinder_controller_packages
+
+{%- endif %}
+
cinder_type_create_{{ backend_name }}:
cmd.run:
- name: "source /root/keystonerc; cinder type-create {{ backend.type_name }}"
@@ -95,4 +107,4 @@
{% endfor %}
-{%- endif %}
+{%- endif %}
\ No newline at end of file
diff --git a/cinder/files/backend/_nfs.conf b/cinder/files/backend/_nfs.conf
new file mode 100644
index 0000000..7c7cc7d
--- /dev/null
+++ b/cinder/files/backend/_nfs.conf
@@ -0,0 +1,11 @@
+
+[{{ backend_name }}]
+backend_host={{ backend.get('host', grains.host) }}
+volume_driver = cinder.volume.drivers.nfs.NfsDriver
+volume_backend_name={{ backend_name }}
+
+nfs_mount_attempts = 3
+nfs_mount_options = {{ backend.get('options', None) }}
+nfs_mount_point_base = {{ backend.get('path', '/mnt') }}
+nfs_shares_config = /etc/cinder/nfs_shares
+nfs_sparsed_volumes = True
diff --git a/cinder/files/liberty/nfs_shares b/cinder/files/liberty/nfs_shares
new file mode 100644
index 0000000..9878dca
--- /dev/null
+++ b/cinder/files/liberty/nfs_shares
@@ -0,0 +1,3 @@
+{%- for nfs_server in backend.devices %}
+{{ nfs_server }}
+{%- endfor %}
\ No newline at end of file
diff --git a/cinder/files/mitaka/nfs_shares b/cinder/files/mitaka/nfs_shares
new file mode 100644
index 0000000..9878dca
--- /dev/null
+++ b/cinder/files/mitaka/nfs_shares
@@ -0,0 +1,3 @@
+{%- for nfs_server in backend.devices %}
+{{ nfs_server }}
+{%- endfor %}
\ No newline at end of file
diff --git a/cinder/files/newton/nfs_shares b/cinder/files/newton/nfs_shares
new file mode 100644
index 0000000..9878dca
--- /dev/null
+++ b/cinder/files/newton/nfs_shares
@@ -0,0 +1,3 @@
+{%- for nfs_server in backend.devices %}
+{{ nfs_server }}
+{%- endfor %}
\ No newline at end of file
diff --git a/tests/pillar/nfs.sls b/tests/pillar/nfs.sls
new file mode 100644
index 0000000..c79b3c1
--- /dev/null
+++ b/tests/pillar/nfs.sls
@@ -0,0 +1,24 @@
+cinder:
+ controller:
+ enabled: true
+ version: liberty
+ default_volume_type: nfs-driver
+ backend:
+ nfs-driver:
+ engine: nfs
+ type_name: nfs-driver
+ volume_group: cinder-volume
+ path: /var/lib/cinder/nfs
+ devices:
+ - 172.16.10.110:/var/nfs/cinder
+ options: rw,sync
+ volume:
+ enabled: true
+ version: liberty
+ default_volume_type: nfs-driver
+ backend:
+ nfs-driver:
+ enabled: true
+ engine: nfs
+ type_name: nfs-driver
+ volume_group: cinder-volume
\ No newline at end of file