add support for config generation

Change-Id: I524c63e27d32186534ed5a62ea57221951f6400a
diff --git a/heat/map.jinja b/heat/map.jinja
index 4283d0d..e62918c 100644
--- a/heat/map.jinja
+++ b/heat/map.jinja
@@ -10,7 +10,7 @@
         'services': ['openstack-heat-api', 'openstack-heat-api-cfn', 'openstack-heat-api-cloudwatch', 'openstack-heat-engine'],
         'notification': False
     },
-}, merge=salt['pillar.get']('heat:server')) %}
+}, merge=pillar.heat.get('server', {})) %}
 
 {% set client = salt['grains.filter_by']({
     'Debian': {
@@ -19,4 +19,4 @@
     'RedHat': {
         'pkgs': ['python-heatclient'],
     },
-}, merge=salt['pillar.get']('heat:client')) %}
+}, merge=pillar.heat.get('client', {})) %}
diff --git a/heat/meta/config.yml b/heat/meta/config.yml
new file mode 100644
index 0000000..395129f
--- /dev/null
+++ b/heat/meta/config.yml
@@ -0,0 +1,10 @@
+config:
+  {%- if pillar.heat.server is defined %}
+  {%- from "heat/map.jinja" import server with context %}
+  heat.conf:
+    source: "salt://heat/files/{{ server.version }}/heat.conf.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  api-paste.ini:
+    source: "salt://heat/files/{{ server.version }}/api-paste.ini"
+    template: jinja
+  {%- endif %}
\ No newline at end of file
diff --git a/metadata/service/server/container.yml b/metadata/service/server/container.yml
new file mode 100644
index 0000000..822d900
--- /dev/null
+++ b/metadata/service/server/container.yml
@@ -0,0 +1,54 @@
+parameters:
+  kubernetes:
+    control:
+      configmap:
+        heat-server:
+          grains:
+            os_family: Debian
+          pillar:
+            heat:
+              server:
+                stack_domain_admin:
+                  name: heat_domain_admin
+                  password: ${_param:heat_domain_admin_password}
+                  domain: heat
+                enabled: true
+                region: RegionOne
+                version: ${_param:heat_version}
+                bind:
+                  api_cfn:
+                    address: 0.0.0.0
+                  api_cloudwatch:
+                    address: 0.0.0.0
+                  api:
+                    address: 0.0.0.0
+                database:
+                  engine: mysql
+                  host: ${_param:mysql_service_host}
+                  port: 3306
+                  name: heat
+                  user: heat
+                  password: ${_param:mysql_heat_password}
+                metadata:
+                  host: 0.0.0.0
+                  port: 8000
+                waitcondition:
+                  host: 0.0.0.0
+                  port: 8000
+                watch:
+                  host: 0.0.0.0
+                  port: 8003
+                identity:
+                  engine: keystone
+                  host: ${_param:keystone_service_host}
+                  port: 35357
+                  tenant: service
+                  user: heat
+                  password: ${_param:keystone_heat_password}
+                message_queue:
+                  engine: rabbitmq
+                  host: ${_param:rabbitmq_service_host}
+                  port: 5672
+                  user: openstack
+                  password: ${_param:rabbitmq_openstack_password}
+                  virtual_host: '/openstack'
\ No newline at end of file
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 994f93f..21026d5 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -9,3 +9,5 @@
         enabled: true
       sphinx:
         enabled: true
+      config:
+        enabled: true
\ No newline at end of file