Merge "Added the ability to configuring the path to an RNG device"
diff --git a/README.rst b/README.rst
index 784873e..7bb9581 100644
--- a/README.rst
+++ b/README.rst
@@ -533,6 +533,18 @@
         libvirt:
           volume_use_multipath: True
 
+To disable or enable StrictHostKeyChecking and discover
+compute nodes fingerprints the below pillar should be used:
+
+.. code-block:: yaml
+
+    nova:
+      compute:
+        ....
+         openssh:
+           stricthostkeychecking: True
+           discover_compute_hosts: True
+
 Client role
 -----------
 
diff --git a/metadata/service/compute/cluster.yml b/metadata/service/compute/cluster.yml
index 9e6e485..8934022 100644
--- a/metadata/service/compute/cluster.yml
+++ b/metadata/service/compute/cluster.yml
@@ -64,6 +64,13 @@
         port: 9696
       cache:
         engine: memcached
+        # NOTE (dukov) Do not change this unless you 100% sure what you are doing
+        expiration_time: 600
+        backend_argument:
+          # NOTE (dukov) WARNING! This parameter depends on expiration_time.
+          # Value of 'memcached_expire_time' must be bigger than 'expiration_time'
+          memcached_expire_time:
+            value: 660
         members:
         - host: ${_param:cluster_node01_address}
           port: 11211
diff --git a/metadata/service/compute/kvm.yml b/metadata/service/compute/kvm.yml
index 0a1925b..4174b56 100644
--- a/metadata/service/compute/kvm.yml
+++ b/metadata/service/compute/kvm.yml
@@ -61,6 +61,13 @@
         port: 9696
       cache:
         engine: memcached
+        # NOTE (dukov) Do not change this unless you 100% sure what you are doing
+        expiration_time: 600
+        backend_argument:
+          # NOTE (dukov) WARNING! This parameter depends on expiration_time.
+          # Value of 'memcached_expire_time' must be bigger than 'expiration_time'
+          memcached_expire_time:
+            value: 660
         members:
         - host: ${_param:cluster_node01_address}
           port: 11211
diff --git a/metadata/service/control/cluster.yml b/metadata/service/control/cluster.yml
index 2e17d93..fa271ff 100644
--- a/metadata/service/control/cluster.yml
+++ b/metadata/service/control/cluster.yml
@@ -73,6 +73,13 @@
         password: metadataPass
       cache:
         engine: memcached
+        # NOTE (dukov) Do not change this unless you 100% sure what you are doing
+        expiration_time: 600
+        backend_argument:
+          # NOTE (dukov) WARNING! This parameter depends on expiration_time.
+          # Value of 'memcached_expire_time' must be bigger than 'expiration_time'
+          memcached_expire_time:
+            value: 660
         members:
         - host: ${_param:cluster_node01_address}
           port: 11211
diff --git a/metadata/service/control/single.yml b/metadata/service/control/single.yml
index c525974..5030462 100644
--- a/metadata/service/control/single.yml
+++ b/metadata/service/control/single.yml
@@ -74,6 +74,13 @@
         password: ${_param:metadata_password}
       cache:
         engine: memcached
+        # NOTE (dukov) Do not change this unless you 100% sure what you are doing
+        expiration_time: 600
+        backend_argument:
+          # NOTE (dukov) WARNING! This parameter depends on expiration_time.
+          # Value of 'memcached_expire_time' must be bigger than 'expiration_time'
+          memcached_expire_time:
+            value: 660
         members:
         - host: ${_param:single_address}
           port: 11211
diff --git a/nova/compute.sls b/nova/compute.sls
index 697ac1e..fb622c2 100644
--- a/nova/compute.sls
+++ b/nova/compute.sls
@@ -76,11 +76,31 @@
 /var/lib/nova/.ssh/config:
   file.managed:
   - user: nova
-  - contents: StrictHostKeyChecking no
+  - contents: StrictHostKeyChecking {% if compute.get('openssh',{}).get('stricthostkeychecking', False) %}yes{% else %}no{% endif %}
   - mode: 400
   - require:
     - pkg: nova_compute_packages
 
+{%- if compute.get('openssh',{}).get('discover_compute_hosts', False) %}
+
+  {%- set cmp_nodenames = [] %}
+
+  {%- for cmp_nodes, node_grains in salt['mine.get']('I@nova:compute', 'grains.items', 'compound').items() %}
+    {%- if node_grains.fqdn is defined %}
+      {%- do cmp_nodenames.append(node_grains.fqdn) %}
+    {%- endif %}
+  {%- endfor %}
+
+  {%- for cmp_node in cmp_nodenames %}
+ssh_host_discover_{{ cmp_node }}_fingerprint:
+  ssh_known_hosts.present:
+    - name: {{ cmp_node }}
+    - user: nova
+    - require:
+      - file: /var/lib/nova/.ssh/config
+  {%- endfor %}
+{%- endif %}
+
 {%- endif %}
 
 {%- if not pillar.nova.get('controller',{}).get('enabled') %}
diff --git a/nova/files/mitaka/nova-compute.conf.Debian b/nova/files/mitaka/nova-compute.conf.Debian
index b570570..05ec5d1 100644
--- a/nova/files/mitaka/nova-compute.conf.Debian
+++ b/nova/files/mitaka/nova-compute.conf.Debian
@@ -47,6 +47,10 @@
 cpu_allocation_ratio = {{ compute.cpu_allocation_ratio }}
 {%- endif %}
 
+{%- if compute.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ compute.disk_allocation_ratio }}
+{%- endif %}
+
 remove_unused_original_minimum_age_seconds=86400
 image_service=nova.image.glance.GlanceImageService
 
diff --git a/nova/files/newton/nova-compute.conf.Debian b/nova/files/newton/nova-compute.conf.Debian
index 2540a43..c7ef466 100644
--- a/nova/files/newton/nova-compute.conf.Debian
+++ b/nova/files/newton/nova-compute.conf.Debian
@@ -63,6 +63,10 @@
 cpu_allocation_ratio = {{ compute.cpu_allocation_ratio }}
 {%- endif %}
 
+{%- if compute.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ compute.disk_allocation_ratio }}
+{%- endif %}
+
 #
 # Defines which physical CPUs (pCPUs) can be used by instance
 # virtual CPUs (vCPUs).
diff --git a/nova/files/ocata/nova-compute.conf.Debian b/nova/files/ocata/nova-compute.conf.Debian
index 38e3c3b..f818791 100644
--- a/nova/files/ocata/nova-compute.conf.Debian
+++ b/nova/files/ocata/nova-compute.conf.Debian
@@ -610,7 +610,11 @@
 # * Any valid positive integer or float value
 #  (floating point value)
 # Minimum value: 0
+{%- if compute.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ compute.disk_allocation_ratio }}
+{%- else  %}
 #disk_allocation_ratio=0.0
+{%- endif %}
 
 #
 # Console proxy host to be used to connect to instances on this host. It is the
@@ -9056,19 +9060,19 @@
 {%- if compute.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
 auth_type = password
-  {%- if compute.service_user is defined %}
-  {%- set _data=compute.service_user %}
-  {%- else %}
-  {%- set _data=compute.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(compute.get('identity', {})) %}
+{%- do _data.update(compute.get('service_user', {})) %}
+{%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': compute.cacert_file}) %}{% endif %}
 user_domain_id = {{ _data.get('domain', 'default') }}
 project_domain_id = {{ _data.get('domain', 'default') }}
 project_name = {{ _data.get('tenant', 'service') }}
 username = {{ _data.get('user', 'nova') }}
 password = {{ _data.password }}
-auth_url={{ compute.identity.get('protocol', 'http') }}://{{ compute.identity.host }}:5000
-  {%- if compute.identity.get('protocol', 'http') == 'https' %}
-cafile={{ compute.identity.get('cacert_file', compute.cacert_file) }}
+auth_url={{ _data.get('protocol', 'http') }}://{{ _data.host }}:{{ _data.port }}
+  {%- if _data.get('protocol', 'http') == 'https' %}
+cafile={{ _data.cacert_file }}
   {%- endif %}
 {%- endif %}
 
diff --git a/nova/files/ocata/nova-controller.conf.Debian b/nova/files/ocata/nova-controller.conf.Debian
index f2f5044..b422d7a 100644
--- a/nova/files/ocata/nova-controller.conf.Debian
+++ b/nova/files/ocata/nova-controller.conf.Debian
@@ -9033,19 +9033,19 @@
 {%- if controller.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
 auth_type = password
-  {%- if controller.service_user is defined %}
-  {%- set _data=controller.service_user %}
-  {%- else %}
-  {%- set _data=controller.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(controller.get('identity', {})) %}
+{%- do _data.update(controller.get('service_user', {})) %}
+{%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': controller.cacert_file}) %}{% endif %}
 user_domain_id = {{ _data.get('domain', 'default') }}
 project_domain_id = {{ _data.get('domain', 'default') }}
 project_name = {{ _data.get('tenant', 'service') }}
 username = {{ _data.get('user', 'nova') }}
 password = {{ _data.password }}
-auth_url={{ controller.identity.get('protocol', 'http') }}://{{ controller.identity.host }}:5000
-  {%- if controller.identity.get('protocol', 'http') == 'https' %}
-cafile={{ controller.identity.get('cacert_file', controller.cacert_file) }}
+auth_url={{ _data.get('protocol', 'http') }}://{{ _data.host }}:{{ _data.port }}
+  {%- if _data.get('protocol', 'http') == 'https' %}
+cafile={{ _data.cacert_file }}
   {%- endif %}
 {%- endif %}
 
diff --git a/nova/files/pike/nova-compute.conf.Debian b/nova/files/pike/nova-compute.conf.Debian
index 625dad3..3b6166e 100644
--- a/nova/files/pike/nova-compute.conf.Debian
+++ b/nova/files/pike/nova-compute.conf.Debian
@@ -618,7 +618,11 @@
 # * Any valid positive integer or float value
 #  (floating point value)
 # Minimum value: 0
+{%- if compute.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ compute.disk_allocation_ratio }}
+{%- else  %}
 #disk_allocation_ratio=0.0
+{%- endif %}
 
 #
 # Console proxy host to be used to connect to instances on this host. It is the
@@ -9262,19 +9266,19 @@
 {%- if compute.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
 auth_type = password
-  {%- if compute.service_user is defined %}
-  {%- set _data=compute.service_user %}
-  {%- else %}
-  {%- set _data=compute.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(compute.get('identity', {})) %}
+{%- do _data.update(compute.get('service_user', {})) %}
+{%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': compute.cacert_file}) %}{% endif %}
 user_domain_id = {{ _data.get('domain', 'default') }}
 project_domain_id = {{ _data.get('domain', 'default') }}
 project_name = {{ _data.get('tenant', 'service') }}
 username = {{ _data.get('user', 'nova') }}
 password = {{ _data.password }}
-auth_url={{ compute.identity.get('protocol', 'http') }}://{{ compute.identity.host }}:5000
-  {%- if compute.identity.get('protocol', 'http') == 'https' %}
-cafile={{ compute.identity.get('cacert_file', compute.cacert_file) }}
+auth_url={{ _data.get('protocol', 'http') }}://{{ _data.host }}:{{ _data.port }}
+  {%- if _data.get('protocol', 'http') == 'https' %}
+cafile={{ _data.cacert_file }}
   {%- endif %}
 {%- endif %}
 
diff --git a/nova/files/pike/nova-controller.conf.Debian b/nova/files/pike/nova-controller.conf.Debian
index 0c320df..4fe70a6 100644
--- a/nova/files/pike/nova-controller.conf.Debian
+++ b/nova/files/pike/nova-controller.conf.Debian
@@ -9250,19 +9250,19 @@
 {%- if controller.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
 auth_type = password
-  {%- if controller.service_user is defined %}
-  {%- set _data=controller.service_user %}
-  {%- else %}
-  {%- set _data=controller.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(controller.get('identity', {})) %}
+{%- do _data.update(controller.get('service_user', {})) %}
+{%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': controller.cacert_file}) %}{% endif %}
 user_domain_id = {{ _data.get('domain', 'default') }}
 project_domain_id = {{ _data.get('domain', 'default') }}
 project_name = {{ _data.get('tenant', 'service') }}
 username = {{ _data.get('user', 'nova') }}
 password = {{ _data.password }}
-auth_url={{ controller.identity.get('protocol', 'http') }}://{{ controller.identity.host }}:5000
-  {%- if controller.identity.get('protocol', 'http') == 'https' %}
-cafile={{ controller.identity.get('cacert_file', controller.cacert_file) }}
+auth_url={{ _data.get('protocol', 'http') }}://{{ _data.host }}:{{ _data.port }}
+  {%- if _data.get('protocol', 'http') == 'https' %}
+cafile={{ _data.cacert_file }}
   {%- endif %}
 {%- endif %}
 
diff --git a/nova/files/queens/nova-compute.conf.Debian b/nova/files/queens/nova-compute.conf.Debian
index 317062a..fe57510 100644
--- a/nova/files/queens/nova-compute.conf.Debian
+++ b/nova/files/queens/nova-compute.conf.Debian
@@ -669,7 +669,11 @@
 # * Any valid positive integer or float value
 #  (floating point value)
 # Minimum value: 0
+{%- if compute.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ compute.disk_allocation_ratio }}
+{%- else  %}
 #disk_allocation_ratio = 0.0
+{%- endif %}
 
 #
 # Console proxy host to be used to connect to instances on this host.
@@ -9185,13 +9189,12 @@
 #send_service_user_token = false
 {%- if compute.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
-  {%- if compute.service_user is defined %}
-  {%- set _data=compute.service_user %}
-  {%- else %}
-  {%- set _data=compute.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(compute.get('identity', {})) %}
+{%- do _data.update(compute.get('service_user', {})) %}
 {%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
-{%- include "oslo_templates/files/queens/keystoneauth/_type_" + auth_type + ".conf" %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': compute.cacert_file}) %}{% endif %}
+{%- include "oslo_templates/files/queens/keystoneauth/_type_"+ _data.get('auth_type','password') +".conf" %}
 {%- else %}
 
 # PEM encoded Certificate Authority to use when verifying HTTPs
diff --git a/nova/files/queens/nova-controller.conf.Debian b/nova/files/queens/nova-controller.conf.Debian
index dc3e81e..23b22df 100644
--- a/nova/files/queens/nova-controller.conf.Debian
+++ b/nova/files/queens/nova-controller.conf.Debian
@@ -658,7 +658,11 @@
 # * Any valid positive integer or float value
 #  (floating point value)
 # Minimum value: 0
+{%- if controller.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ controller.disk_allocation_ratio }}
+{%- else  %}
 #disk_allocation_ratio = 0.0
+{%- endif %}
 
 #
 # Console proxy host to be used to connect to instances on this host.
@@ -8906,13 +8910,12 @@
 #send_service_user_token = false
 {%- if controller.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
-  {%- if controller.service_user is defined %}
-  {%- set _data=controller.service_user %}
-  {%- else %}
-  {%- set _data=controller.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(controller.get('identity', {})) %}
+{%- do _data.update(controller.get('service_user', {})) %}
 {%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
-{%- include "oslo_templates/files/queens/keystoneauth/_type_" + auth_type + ".conf" %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': controller.cacert_file}) %}{% endif %}
+{%- include "oslo_templates/files/queens/keystoneauth/_type_"+ _data.get('auth_type','password') +".conf" %}
 {%- else %}
 
 # PEM encoded Certificate Authority to use when verifying HTTPs
diff --git a/nova/files/rocky/nova-compute.conf.Debian b/nova/files/rocky/nova-compute.conf.Debian
index 209758b..3ea1db1 100644
--- a/nova/files/rocky/nova-compute.conf.Debian
+++ b/nova/files/rocky/nova-compute.conf.Debian
@@ -541,7 +541,11 @@
 # * Any valid positive integer or float value
 #  (floating point value)
 # Minimum value: 0
+{%- if compute.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ compute.disk_allocation_ratio }}
+{%- else  %}
 #disk_allocation_ratio = 0.0
+{%- endif %}
 
 #
 # Console proxy host to be used to connect to instances on this host. It is the
@@ -8517,13 +8521,12 @@
 #send_service_user_token = false
 {%- if compute.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
-  {%- if compute.service_user is defined %}
-  {%- set _data=compute.service_user %}
-  {%- else %}
-  {%- set _data=compute.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(compute.get('identity', {})) %}
+{%- do _data.update(compute.get('service_user', {})) %}
 {%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
-{%- include "oslo_templates/files/" ~ compute.version ~ "/keystoneauth/_type_" + auth_type + ".conf" %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': compute.cacert_file}) %}{% endif %}
+{%- include "oslo_templates/files/" ~ compute.version ~ "/keystoneauth/_type_"+ _data.get('auth_type','password') +".conf" %}
 {%- else %}
 
 # PEM encoded Certificate Authority to use when verifying HTTPs connections.
diff --git a/nova/files/rocky/nova-controller.conf.Debian b/nova/files/rocky/nova-controller.conf.Debian
index e1856fa..8eead70 100644
--- a/nova/files/rocky/nova-controller.conf.Debian
+++ b/nova/files/rocky/nova-controller.conf.Debian
@@ -532,7 +532,11 @@
 # * Any valid positive integer or float value
 #  (floating point value)
 # Minimum value: 0
+{%- if controller.disk_allocation_ratio is defined %}
+disk_allocation_ratio = {{ controller.disk_allocation_ratio }}
+{%- else  %}
 #disk_allocation_ratio = 0.0
+{%- endif %}
 
 #
 # Console proxy host to be used to connect to instances on this host. It is the
@@ -8237,13 +8241,12 @@
 #send_service_user_token = false
 {%- if controller.get('service_user', {}).get('enabled', True) %}
 send_service_user_token = True
-  {%- if controller.service_user is defined %}
-  {%- set _data=controller.service_user %}
-  {%- else %}
-  {%- set _data=controller.identity %}
-  {%- endif %}
+{%- set _data = {} %}
+{%- do _data.update(controller.get('identity', {})) %}
+{%- do _data.update(controller.get('service_user', {})) %}
 {%- if not _data.port == '5000' %}{% do _data.update({'port': '5000'}) %}{% endif %}
-{%- include "oslo_templates/files/" ~ controller.version ~ "/keystoneauth/_type_" + auth_type + ".conf" %}
+{%- if 'cacert_file' not in _data.keys() %}{% do _data.update({'cacert_file': controller.cacert_file}) %}{% endif %}
+{%- include "oslo_templates/files/" ~ controller.version ~ "/keystoneauth/_type_"+ _data.get('auth_type','password') +".conf" %}
 {%- else %}
 
 # PEM encoded Certificate Authority to use when verifying HTTPs connections.
diff --git a/nova/meta/prometheus.yml b/nova/meta/prometheus.yml
index fbebd2d..f3e12ee 100644
--- a/nova/meta/prometheus.yml
+++ b/nova/meta/prometheus.yml
@@ -4,8 +4,7 @@
 {%- set is_compute = compute.get('enabled', False) %}
 
 {%- if is_controller or is_compute %}
-{%- if is_compute and
-       exporters is defined %}
+{%- if is_compute and exporters is defined and compute.get('compute_driver', 'libvirt.LibvirtDriver') == 'libvirt.LibvirtDriver' %}
 {%- set packages = exporters.get('libvirt', {}).get('packages', ('libvirt-exporter', )) %}
   {%- load_yaml as new_exporters_cfg %}
 exporters:
@@ -157,7 +156,7 @@
         summary: "High number of errors in Nova logs"
         description: "The average rate of errors in Nova logs on the {{ $labels.host }} node is more than 0.2 error messages per second (as measured over the last 5 minutes)."
 {%- endraw %}
-{%- if is_compute and exporters is defined %}
+{%- if is_compute and exporters is defined and compute.get('compute_driver', 'libvirt.LibvirtDriver') == 'libvirt.LibvirtDriver'%}
 {%- raw %}
     LibvirtDown:
       if: >-
diff --git a/tests/pillar/compute_cluster.sls b/tests/pillar/compute_cluster.sls
index 53ff9c6..517fcda 100644
--- a/tests/pillar/compute_cluster.sls
+++ b/tests/pillar/compute_cluster.sls
@@ -15,6 +15,9 @@
     resume_guests_state_on_host_boot: True
     preallocate_images: space
     instance_build_timeout: 600
+    cpu_allocation_ratio: 16.0
+    ram_allocation_ratio: 1.5
+    disk_allocation_ratio: 1.0
     bind:
       vnc_address: 127.0.0.1
       vnc_port: 6080
@@ -69,6 +72,10 @@
       password: metadata
     cache:
       engine: memcached
+      expiration_time: 600
+      backend_argument:
+        memcached_expire_time:
+          value: 660
       members:
       - host: 127.0.0.1
         port: 11211
diff --git a/tests/pillar/compute_cluster_vmware.sls b/tests/pillar/compute_cluster_vmware.sls
index 27de501..4e57b01 100644
--- a/tests/pillar/compute_cluster_vmware.sls
+++ b/tests/pillar/compute_cluster_vmware.sls
@@ -63,6 +63,10 @@
       password: metadata
     cache:
       engine: memcached
+      expiration_time: 600
+      backend_argument:
+        memcached_expire_time:
+          value: 660
       members:
       - host: 127.0.0.1
         port: 11211
diff --git a/tests/pillar/compute_cluster_vmware_queens.sls b/tests/pillar/compute_cluster_vmware_queens.sls
index b704198..006dc1a 100644
--- a/tests/pillar/compute_cluster_vmware_queens.sls
+++ b/tests/pillar/compute_cluster_vmware_queens.sls
@@ -56,6 +56,10 @@
       password: metadata
     cache:
       engine: memcached
+      expiration_time: 600
+      backend_argument:
+        memcached_expire_time:
+          value: 660
       members:
       - host: 127.0.0.1
         port: 11211
diff --git a/tests/pillar/compute_single.sls b/tests/pillar/compute_single.sls
index 5677ab6..5a017be 100644
--- a/tests/pillar/compute_single.sls
+++ b/tests/pillar/compute_single.sls
@@ -9,6 +9,9 @@
     resume_guests_state_on_host_boot: False
     preallocate_images: space
     cpu_mode: custom
+    cpu_allocation_ratio: 16.0
+    ram_allocation_ratio: 1.5
+    disk_allocation_ratio: 1.0
     libvirt:
       cpu_model: IvyBridge
     bind:
@@ -58,6 +61,10 @@
       password: password
     cache:
       engine: memcached
+      expiration_time: 600
+      backend_argument:
+        memcached_expire_time:
+          value: 660
       members:
       - host: 127.0.0.1
         port: 11211
diff --git a/tests/pillar/compute_single_config_drive_options.sls b/tests/pillar/compute_single_config_drive_options.sls
index 44c6428..ae57794 100644
--- a/tests/pillar/compute_single_config_drive_options.sls
+++ b/tests/pillar/compute_single_config_drive_options.sls
@@ -56,6 +56,10 @@
       password: password
     cache:
       engine: memcached
+      expiration_time: 600
+      backend_argument:
+        memcached_expire_time:
+          value: 660
       members:
       - host: 127.0.0.1
         port: 11211
diff --git a/tests/pillar/control_single.sls b/tests/pillar/control_single.sls
index 114aee8..467d4b0 100644
--- a/tests/pillar/control_single.sls
+++ b/tests/pillar/control_single.sls
@@ -86,6 +86,10 @@
       password: password
     cache:
       engine: memcached
+      expiration_time: 600
+      backend_argument:
+        memcached_expire_time:
+          value: 660
       members:
       - host: 127.0.0.1
         port: 11211