Enable oslo.cache library

Add heat:server:cache metadata
      cache:
        engine: memcached
        expiration_time: 600
        backend_argument:
          memcached_expire_time:
            value: 660
        members:
        - host: ${_param:cluster_node01_address}
          port: 11211
        - host: ${_param:cluster_node02_address}
          port: 11211
        - host: ${_param:cluster_node01_address}
          port: 11211

Enable oslo.cache in the heat.conf file

Change-Id: I06b5d2dc0e75626f4c1bb71a81f789f52b4d8717
Related-Prod: PROD-26960
diff --git a/heat/files/queens/heat.conf.Debian b/heat/files/queens/heat.conf.Debian
index b6896ba..68f07de 100644
--- a/heat/files/queens/heat.conf.Debian
+++ b/heat/files/queens/heat.conf.Debian
@@ -1343,3 +1343,10 @@
 
 [ssl]
 {%- include "oslo_templates/files/queens/oslo/service/_ssl.conf" %}
+
+[cache]
+{%- if server.cache is defined %}
+{%- set _data = {} %}
+{%- do _data.update(server.cache) %}
+{%- include "oslo_templates/files/queens/oslo/_cache.conf" %}
+{%- endif %}
diff --git a/heat/files/rocky/heat.conf.Debian b/heat/files/rocky/heat.conf.Debian
index 5016e1f..548291e 100644
--- a/heat/files/rocky/heat.conf.Debian
+++ b/heat/files/rocky/heat.conf.Debian
@@ -1413,3 +1413,10 @@
 # until cinder-backup service becomes discoverable, see LP#1334856. (boolean
 # value)
 #backups_enabled = true
+
+[cache]
+{%- if server.cache is defined %}
+{%- set _data = {} %}
+{%- do _data.update(server.cache) %}
+{%- include "oslo_templates/files/" ~ server.version ~ "/oslo/_cache.conf" %}
+{%- endif %}
diff --git a/metadata/service/server/cluster.yml b/metadata/service/server/cluster.yml
index b9d2430..980b429 100644
--- a/metadata/service/server/cluster.yml
+++ b/metadata/service/server/cluster.yml
@@ -69,3 +69,16 @@
         user: openstack
         password: ${_param:rabbitmq_openstack_password}
         virtual_host: '/openstack'
+      cache:
+        engine: memcached
+        expiration_time: 600
+        backend_argument:
+          memcached_expire_time:
+            value: 660
+        members:
+        - host: ${_param:cluster_node01_address}
+          port: 11211
+        - host: ${_param:cluster_node02_address}
+          port: 11211
+        - host: ${_param:cluster_node03_address}
+          port: 11211
diff --git a/metadata/service/server/single.yml b/metadata/service/server/single.yml
index 3cc782e..9f6dca1 100644
--- a/metadata/service/server/single.yml
+++ b/metadata/service/server/single.yml
@@ -69,3 +69,12 @@
         user: openstack
         password: ${_param:rabbitmq_openstack_password}
         virtual_host: '/openstack'
+      cache:
+        engine: memcached
+        expiration_time: 600
+        backend_argument:
+          memcached_expire_time:
+            value: 660
+        members:
+        - host: ${_param:single_address}
+          port: 11211
diff --git a/tests/pillar/server_cluster.sls b/tests/pillar/server_cluster.sls
index 0b28922..d9d675f 100644
--- a/tests/pillar/server_cluster.sls
+++ b/tests/pillar/server_cluster.sls
@@ -71,6 +71,10 @@
     max_nested_stack_depth: 10
     cache:
       engine: memcached
+      expiration_time: 600
+      backend_argument:
+        memcached_expire_time:
+          value: 660
       members:
       - host: 127.0.0.1
         port: 11211