# A Heat environment file which can be used to enable OpenContrail
 # extensions, configured via puppet
 resource_registry:
-  OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/neutron-opencontrail.yaml
   OS::TripleO::ComputeExtraConfigPre: ../puppet/extraconfig/pre_deploy/compute/neutron-opencontrail.yaml
   OS::TripleO::Services::NeutronDhcpAgent: OS::Heat::None
   OS::TripleO::Services::NeutronL3Agent: OS::Heat::None
 
             - neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
             - cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre
             - midonet_data #Optionally provided by AllNodesExtraConfig
-            - neutron_opencontrail_data # Optionally provided by ControllerExtraConfigPre
           merge_behavior: deeper
           datafiles:
             service_configs:
 
+++ /dev/null
-heat_template_version: 2015-04-30
-
-description: Controller hieradata for Neutron OpenContrail configuration
-
-parameters:
-  server:
-    description: ID of the controller node to apply this config to
-    type: string
-  ContrailApiServerIp:
-    description: IP address of the OpenContrail API server
-    type: string
-  ContrailApiServerPort:
-    description: Port of the OpenContrail API
-    type: string
-    default: 8082
-  ContrailMultiTenancy:
-    description: Whether to enable multi tenancy
-    type: boolean
-    default: false
-  ContrailExtensions:
-    description: List of OpenContrail extensions to be enabled
-    type: comma_delimited_list
-    default: ''
-
-resources:
-  ControllerContrailConfig:
-    type: OS::Heat::StructuredConfig
-    properties:
-      group: os-apply-config
-      config:
-        hiera:
-          datafiles:
-            neutron_opencontrail_data:
-              mapped_data:
-                neutron::api_extensions_path: /usr/lib/python2.7/site-packages/neutron_plugin_contrail/extensions
-
-                neutron::plugins::opencontrail::api_server_ip: {get_input: contrail_api_server_ip}
-                neutron::plugins::opencontrail::api_server_port: {get_input: contrail_api_server_port}
-                neutron::plugins::opencontrail::multi_tenancy: {get_input: contrail_multi_tenancy}
-                neutron::plugins::opencontrail::contrail_extensions: {get_input: contrail_extensions}
-                neutron::plugins::opencontrail::keystone_auth_url: '"%{hiera(''keystone_auth_uri'')}"'
-                neutron::plugins::opencontrail::keystone_admin_user: admin
-                neutron::plugins::opencontrail::keystone_admin_tenant_name: admin
-                neutron::plugins::opencontrail::keystone_admin_password: '"%{hiera(''admin_password'')}"'
-                neutron::plugins::opencontrail::keystone_admin_token: '"%{hiera(''keystone::admin_token'')}"'
-
-  ControllerContrailDeployment:
-    type: OS::Heat::StructuredDeployment
-    properties:
-      config: {get_resource: ControllerContrailConfig}
-      server: {get_param: server}
-      input_values:
-        contrail_api_server_ip: {get_param: ContrailApiServerIp}
-        contrail_api_server_port: {get_param: ContrailApiServerPort}
-        contrail_multi_tenancy: {get_param: ContrailMultiTenancy}
-        contrail_extensions: {get_param: ContrailExtensions}
-
-
-outputs:
-  deploy_stdout:
-    description: Output of the extra hiera data deployment
-    value: {get_attr: [ControllerContrailDeployment, deploy_stdout]}
 
     description: Mapping of service endpoint -> protocol. Typically set
                  via parameter_defaults in the resource registry.
     type: json
+  AdminPassword:
+    description: The password for the keystone admin account, used for monitoring, querying neutron etc.
+    type: string
+    hidden: true
+  AdminToken:
+    description: The keystone auth secret and db password.
+    type: string
+    hidden: true
+  ContrailApiServerIp:
+    description: IP address of the OpenContrail API server
+    type: string
+  ContrailApiServerPort:
+    description: Port of the OpenContrail API
+    type: string
+    default: 8082
+  ContrailMultiTenancy:
+    description: Whether to enable multi tenancy
+    type: boolean
+    default: false
+  ContrailExtensions:
+    description: List of OpenContrail extensions to be enabled
+    type: comma_delimited_list
+    default: ''
 
 resources:
 
       config_settings:
         map_merge:
           - get_attr: [NeutronBase, role_data, config_settings]
+          - neutron::api_extensions_path: /usr/lib/python2.7/site-packages/neutron_plugin_contrail/extensions
+
+            neutron::plugins::opencontrail::api_server_ip: {get_param: ContrailApiServerIp}
+            neutron::plugins::opencontrail::api_server_port: {get_param: ContrailApiServerPort}
+            neutron::plugins::opencontrail::multi_tenancy: {get_param: ContrailMultiTenancy}
+            neutron::plugins::opencontrail::contrail_extensions: {get_param: ContrailExtensions}
+            neutron::plugins::opencontrail::keystone_auth_url: {get_param: [EndpointMap, KeystoneInternal, uri] }
+            neutron::plugins::opencontrail::keystone_admin_user: admin
+            neutron::plugins::opencontrail::keystone_admin_tenant_name: admin
+            neutron::plugins::opencontrail::keystone_admin_password: {get_param: AdminPassword}
+            neutron::plugins::opencontrail::keystone_admin_token: {get_param: AdminToken}
       step_config: |
         include tripleo::profile::base::neutron::plugins::opencontrail