Merge remote-tracking branch 'upstream/master' into merge-branch

Conflicts:
	metadata/service/support.yml

Change-Id: Icc8a1c0085cac1209b333cfad40917d57edafcf9
diff --git a/heat/files/liberty/heat.conf.Debian b/heat/files/liberty/heat.conf.Debian
index 6524520..3454950 100644
--- a/heat/files/liberty/heat.conf.Debian
+++ b/heat/files/liberty/heat.conf.Debian
@@ -921,3 +921,15 @@
 api_port={{ client.api.port }}
 
 {%- endif %}
+
+{%- if pillar.get('salt', {}).get('client', {}).get('enabled', False) %}
+
+{%- set client = pillar.get('salt', {}).get('client', {}) %}
+
+[clients_salt]
+
+user={{ client.user }}
+password={{ client.password }}
+host={{ client.host }}
+
+{%- endif %}
diff --git a/heat/files/mitaka/heat.conf.Debian b/heat/files/mitaka/heat.conf.Debian
index 8b40a90..7142747 100644
--- a/heat/files/mitaka/heat.conf.Debian
+++ b/heat/files/mitaka/heat.conf.Debian
@@ -180,6 +180,7 @@
 
 # Seconds to wait for a response from a call. (integer value)
 #rpc_response_timeout = 60
+rpc_response_timeout = 600
 
 # A URL representing the messaging driver to use and its full configuration. If
 # not set, we fall back to the rpc_backend option and driver specific
@@ -195,6 +196,10 @@
 # exchange name specified in the transport_url option. (string value)
 #control_exchange = openstack
 
+max_resources_per_stack=20000
+max_json_body_size=10880000
+max_template_size=5440000
+
 [heat_api]
 
 #
@@ -203,7 +208,7 @@
 
 # Address to bind the server. Useful when selecting a
 # particular network interface. (string value)
-#bind_host = {{ server.bind.api.address }}
+bind_host = {{ server.bind.api.address }}
 
 # The port on which the server will listen. (integer value)
 #bind_port=8004
@@ -238,7 +243,7 @@
 
 # Address to bind the server. Useful when selecting a
 # particular network interface. (string value)
-#bind_host = {{ server.bind.api_cfn.address }}
+bind_host = {{ server.bind.api_cfn.address }}
 
 # The port on which the server will listen. (integer value)
 #bind_port=8000
@@ -273,7 +278,7 @@
 
 # Address to bind the server. Useful when selecting a
 # particular network interface. (string value)
-#bind_host = {{ server.bind.api_cloudwatch.address }}
+bind_host = {{ server.bind.api_cloudwatch.address }}
 
 # The port on which the server will listen. (integer value)
 #bind_port=8003
@@ -403,15 +408,27 @@
 
 [keystone_authtoken]
 
-auth_type = password
-auth_uri=http://{{ server.identity.host }}:5000/v3
-auth_url=http://{{ server.identity.host }}:35357/v3
-username = {{ server.identity.user }}
-password = {{ server.identity.password }}
-project_name = {{ server.identity.tenant }}
-project_domain_name = default
-user_domain_name = default
+#auth_type = password
+auth_uri=http://{{ server.identity.host }}:5000/v2.0
+identity_uri=http://{{ server.identity.host }}:35357
+admin_user={{ server.identity.user }}
+admin_password={{ server.identity.password }}
+admin_tenant_name={{ server.identity.tenant }}
+# Commented based on Fuel 9.0 reference configs
+#auth_url=http://{{ server.identity.host }}:35357/v3
+#username = {{ server.identity.user }}
+#password = {{ server.identity.password }}
+#project_name = {{ server.identity.tenant }}
+#project_domain_name = default
+#user_domain_name = default
 {%- if server.cache is defined %}
+#memcached_servers={%- for member in server.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
+{%- endif %}
+
+{%- if server.cache is defined %}
+[cache]
+enabled=True
+backend=oslo_cache.memcache_pool
 memcached_servers={%- for member in server.cache.members %}{{ member.host }}:11211{% if not loop.last %},{% endif %}{%- endfor %}
 {%- endif %}
 
@@ -421,6 +438,8 @@
 username = {{ server.identity.user }}
 password = {{ server.identity.password }}
 user_domain_name = default
+project_domain_id=Default
+user_domain_id=Default
 
 [matchmaker_redis]
 
@@ -716,6 +735,9 @@
 
 keystone_ec2_uri=http://{{ server.identity.host }}:5000/v2.0/ec2tokens
 
+[clients_keystone]
+auth_uri=http://{{ server.identity.host }}:35357
+
 {%- if pillar.get('opencontrail', {}).get('client', {}).get('enabled', False) %}
 
 {%- from "opencontrail/map.jinja" import client with context %}
@@ -729,4 +751,4 @@
 api_server={{ client.api.host }}
 api_port={{ client.api.port }}
 
-{%- endif %}
\ No newline at end of file
+{%- endif %}
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/heat/server.sls b/heat/server.sls
index f9622d0..4c36d65 100644
--- a/heat/server.sls
+++ b/heat/server.sls
@@ -39,6 +39,8 @@
 
 {%- if not grains.get('virtual_subtype', None) == "Docker" %}
 
+{%- if not salt['pillar.get']('linux:system:repo:mirantis_openstack', False) %}
+
 heat_client_roles:
   keystone.role_present:
   - names:
@@ -51,6 +53,8 @@
   - require:
     - pkg: heat_server_packages
 
+{%- endif %}
+
 {%- if server.version != 'juno' %}
 
 heat_keystone_setup:
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 2aeb0df..84db7f7 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -9,5 +9,7 @@
         enabled: true
       sphinx:
         enabled: true
+      config:
+        enabled: true
       grafana:
         enabled: true