Sometimes you need to deploy to different resource groups in one deployment. Till now you had to split-up you ARM template. With new API versions you can now deploy to multiple resource groups in one deployment:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "StorageAccountName1": { "type": "string" }, "StorageAccountName2": { "type": "string" } }, "variables": {}, "resources": [ { "apiVersion": "2017-05-10", "name": "nestedTemplate", "type": "Microsoft.Resources/deployments", "resourceGroup": "crossResourceGroupDeployment", "properties": { "mode": "Incremental", "template": { "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "variables": {}, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "name": "[parameters('StorageAccountName2')]", "apiVersion": "2015-06-15", "location": "West US", "properties": { "accountType": "Standard_LRS" } } ] }, "parameters": {} } }, { "type": "Microsoft.Storage/storageAccounts", "name": "[parameters('StorageAccountName1')]", "apiVersion": "2015-06-15", "location": "West US", "properties": { "accountType": "Standard_LRS" } } ] }
You can find this source code in Ryan Jones GitHub.