OS::TripleO::ServiceServerMetadataHook: OS::Heat::None
 
   OS::TripleO::Server: OS::Nova::Server
+{% for role in roles %}
+  OS::TripleO::{{role.name}}Server: OS::TripleO::Server
+{% endfor %}
 
   # This creates the "heat-admin" user for all OS images by default
   # To disable, replace with firstboot/userdata_default.yaml
 
 
 resources:
   BlockStorage:
-    type: OS::TripleO::Server
+    type: OS::TripleO::BlockStorageServer
     metadata:
       os-collect-config:
         command: {get_param: ConfigCommand}
 
 
 resources:
   CephStorage:
-    type: OS::TripleO::Server
+    type: OS::TripleO::CephStorageServer
     metadata:
       os-collect-config:
         command: {get_param: ConfigCommand}
 
 resources:
 
   NovaCompute:
-    type: OS::TripleO::Server
+    type: OS::TripleO::ComputeServer
     metadata:
       os-collect-config:
         command: {get_param: ConfigCommand}
 
 resources:
 
   Controller:
-    type: OS::TripleO::Server
+    type: OS::TripleO::ControllerServer
     metadata:
       os-collect-config:
         command: {get_param: ConfigCommand}
 
 resources:
 
   SwiftStorage:
-    type: OS::Nova::Server
+    type: OS::Nova::ObjectStorageServer
     metadata:
       os-collect-config:
         command: {get_param: ConfigCommand}
 
 
 resources:
   {{role}}:
-    type: OS::TripleO::Server
+    type: OS::TripleO::{{role.name}}Server
     metadata:
       os-collect-config:
         command: {get_param: ConfigCommand}
 
--- /dev/null
+---
+features:
+  - The server resource type, OS::TripleO::Server can now be
+    mapped per role instead of globally. This allows users to
+    mix baremetal (OS::Nova::Server) and
+    deployed-server (OS::Heat::DeployedServer) server resources
+    in the same deployment. See
+    https://blueprints.launchpad.net/tripleo/+spec/pluggable-server-type-per-role