Adding feature to support lvm for ephemeral VMs
Change-Id: Ib4329027e23981cbba39c9c1c894adbbbea4c7c3
diff --git a/README.rst b/README.rst
index da98313..ab61b71 100644
--- a/README.rst
+++ b/README.rst
@@ -285,7 +285,33 @@
rbd_pool: nova
rbd_user: nova
secret_uuid: 03006edd-d957-40a3-ac4c-26cd254b3731
+ ....
+Nova with ephemeral configured with LVM
+
+.. code-block:: yaml
+
+ nova:
+ compute:
+ enabled: true
+ ...
+ lvm:
+ ephemeral: yes
+ images_volume_group: nova_vg
+
+ linux:
+ storage:
+ lvm:
+ nova_vg:
+ name: nova_vg
+ devices:
+ - /dev/sdf
+ - /dev/sdd
+ - /dev/sdg
+ - /dev/sde
+ - /dev/sdc
+ - /dev/sdj
+ - /dev/sdh
Client role
-----------
diff --git a/nova/files/mitaka/nova-compute.conf.Debian b/nova/files/mitaka/nova-compute.conf.Debian
index e89a442..f5db5e7 100644
--- a/nova/files/mitaka/nova-compute.conf.Debian
+++ b/nova/files/mitaka/nova-compute.conf.Debian
@@ -134,6 +134,15 @@
rbd_secret_uuid={{ compute.ceph.secret_uuid }}
libvirt_inject_password=false
libvirt_inject_key=false
+{%- elif compute.get('lvm', {}).ephemeral is defined %}
+images_type=lvm
+images_volume_group={{ compute.lvm.images_volume_group }}
+{%- if compute.lvm.volume_clear is defined %}
+volume_clear={{ compute.lvm.volume_clear }}
+{%- endif %}
+{%- if compute.lvm.volume_clear_size is defined %}
+volume_clear_size={{ compute.lvm.volume_clear_size }}
+{%- endif %}
{%- endif %}
{%- if compute.libvirt.hw_disk_discard is defined %}
hw_disk_discard={{ compute.libvirt.hw_disk_discard }}
diff --git a/nova/files/newton/nova-compute.conf.Debian b/nova/files/newton/nova-compute.conf.Debian
index d9f5975..40638c5 100644
--- a/nova/files/newton/nova-compute.conf.Debian
+++ b/nova/files/newton/nova-compute.conf.Debian
@@ -159,6 +159,15 @@
rbd_secret_uuid={{ compute.ceph.secret_uuid }}
libvirt_inject_password=false
libvirt_inject_key=false
+{%- elif compute.get('lvm', {}).ephemeral is defined %}
+images_type=lvm
+images_volume_group={{ compute.lvm.images_volume_group }}
+{%- if compute.lvm.volume_clear is defined %}
+volume_clear={{ compute.lvm.volume_clear }}
+{%- endif %}
+{%- if compute.lvm.volume_clear_size is defined %}
+volume_clear_size={{ compute.lvm.volume_clear_size }}
+{%- endif %}
{%- endif %}
{%- if compute.libvirt.hw_disk_discard is defined %}
hw_disk_discard={{ compute.libvirt.hw_disk_discard }}
diff --git a/nova/files/ocata/nova-compute.conf.Debian b/nova/files/ocata/nova-compute.conf.Debian
index 77d4b50..db5357b 100644
--- a/nova/files/ocata/nova-compute.conf.Debian
+++ b/nova/files/ocata/nova-compute.conf.Debian
@@ -5916,6 +5916,15 @@
rbd_secret_uuid={{ compute.ceph.secret_uuid }}
inject_password=false
inject_key=false
+{%- elif compute.get('lvm', {}).ephemeral is defined %}
+images_type=lvm
+images_volume_group={{ compute.lvm.images_volume_group }}
+{%- if compute.lvm.volume_clear is defined %}
+volume_clear={{ compute.lvm.volume_clear }}
+{%- endif %}
+{%- if compute.lvm.volume_clear_size is defined %}
+volume_clear_size={{ compute.lvm.volume_clear_size }}
+{%- endif %}
{%- endif %}
{%- if compute.get('libvirt', {}).uri is defined %}
diff --git a/tests/pillar/compute_cluster.sls b/tests/pillar/compute_cluster.sls
index 2bcd9b4..b027101 100644
--- a/tests/pillar/compute_cluster.sls
+++ b/tests/pillar/compute_cluster.sls
@@ -70,3 +70,9 @@
upgrade_levels:
compute: liberty
libvirt_service_group: libvirtd
+ lvm:
+ ephemeral: yes
+ images_volume_group: nova_vg
+ volume_clear: zero
+ volume_clear_size: 0
+