add support for config generation

Change-Id: Iccc9f21e6d867203242daf513d6c20408bb29bf0
diff --git a/keystone/map.jinja b/keystone/map.jinja
index 7eeff81..91eff9c 100644
--- a/keystone/map.jinja
+++ b/keystone/map.jinja
@@ -24,7 +24,7 @@
         'notification': False,
         'roles': ['admin', 'Member']
     },
-}, merge=salt['pillar.get']('keystone:server')) %}
+}, merge=pillar.keystone.get('server', {})) %}
 
 {% set client = salt['grains.filter_by']({
     'Debian': {
@@ -36,7 +36,7 @@
         'pkgs': ['python-keystoneclient'],
         'roles': ['admin', 'Member'],
     },
-}, merge=salt['pillar.get']('keystone:client')) %}
+}, merge=pillar.keystone.get('client', {})) %}
 
 {% set control = salt['grains.filter_by']({
     'Debian': {
@@ -45,4 +45,4 @@
     'RedHat': {
         'pkgs': [],
     },
-}, merge=salt['pillar.get']('keystone:control')) %}
+}, merge=pillar.keystone.get('control', {})) %}
diff --git a/keystone/meta/config.yml b/keystone/meta/config.yml
new file mode 100644
index 0000000..79ebc05
--- /dev/null
+++ b/keystone/meta/config.yml
@@ -0,0 +1,13 @@
+config:
+  {%- if pillar.keystone.server is defined %}
+  {%- from "keystone/map.jinja" import server with context %}
+  keystone.conf:
+    source: "salt://keystone/files/{{ server.version }}/keystone.conf.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  keystone-paste.ini:
+    source: "salt://keystone/files/{{ server.version }}/keystone-paste.ini.{{ grains.os_family|default('Debian') }}"
+    template: jinja
+  policy.json:
+    source: "salt://keystone/files/{{ server.version }}/policy-v{{ server.api_version }}.json"
+    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..a949a10
--- /dev/null
+++ b/metadata/service/server/container.yml
@@ -0,0 +1,44 @@
+parameters:
+  kubernetes:
+    control:
+      configmap:
+        keystone-server:
+          grains:
+            os_family: Debian
+          pillar:
+            keystone:
+              server:
+                enabled: true
+                version: ${_param:keystone_version}
+                service_token: ${_param:keystone_service_token}
+                service_tenant: service
+                admin_tenant: admin
+                admin_name: admin
+                admin_password: ${_param:keystone_admin_password}
+                admin_email: root@localhost
+                bind:
+                  address: 0.0.0.0
+                  private_address: ${_param:keystone_service_host}
+                  private_port: 35357
+                  public_address: ${_param:keystone_service_host}
+                  public_port: 5000
+                region: RegionOne
+                database:
+                  engine: mysql
+                  host: ${_param:mysql_service_host}
+                  port: 3306
+                  name: 'keystone'
+                  password: '${_param:mysql_keystone_password}'
+                  user: 'keystone'
+                tokens:
+                  engine: fernet
+                  expiration: 43200
+                  location: /etc/keystone/fernet-keys/
+                message_queue:
+                  engine: rabbitmq
+                  host: ${_param:rabbitmq_service_host}
+                  port: 5672
+                  user: openstack
+                  password: ${_param:rabbitmq_openstack_password}
+                  virtual_host: '/openstack'
+                  ha_queues: true
\ No newline at end of file
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 1c21fb8..d982699 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