--- /dev/null
+# We run the upgrade steps without disabling the OS::TripleO::PostDeploySteps
+# this means you can do a major upgrade in one pass, which may be useful
+# e.g for all-in-one deployments where we can upgrade the compute services
+# at the same time as the controlplane
+# Note that it will be necessary to pass a mapping of OS::Heat::None again for
+# any subsequent updates, or the upgrade steps will run again.
+resource_registry:
+  OS::TripleO::UpgradeSteps: ../puppet/major_upgrade_steps.yaml
 
       servers: {get_attr: [{{role.name}}, attributes, nova_server_resource]}
 {% endfor %}
 
-  # Post deployment steps for all roles
-  AllNodesDeploySteps:
-    type: OS::TripleO::PostDeploySteps
+  # Upgrade steps for all roles
+  AllNodesUpgradeSteps:
+    type: OS::TripleO::UpgradeSteps
     depends_on:
 {% for role in roles %}
       - {{role.name}}AllNodesDeployment
         {{role.name}}: {get_attr: [{{role.name}}ServiceChain, role_data]}
 {% endfor %}
 
-  # Upgrade steps for all roles
-  AllNodesUpgradeSteps:
-    type: OS::TripleO::UpgradeSteps
-    depends_on: AllNodesDeploySteps
+  # Post deployment steps for all roles
+  AllNodesDeploySteps:
+    type: OS::TripleO::PostDeploySteps
+    depends_on: AllNodesUpgradeSteps
     properties:
       servers:
 {% for role in roles %}
         {{role.name}}: {get_attr: [{{role.name}}ServiceChain, role_data]}
 {% endfor %}
 
-
 outputs:
   ManagedEndpoints:
     description: Asserts that the keystone endpoints have been provisioned.