PSArm
PSArm copied to clipboard
PSArm is a PowerShell module that provides a PowerShell-embedded domain-specific language (DSL) for Azure Resource Manager (ARM) templates
This syntax is not powershell friendly and should look more like the second example ```pwsh # working but not powershell(y) resource "vnet1"-ApiVersion 2020-08-01 -Namespace Microsoft.Network -Type virtualNetworks { properties {...
The following valid ARM syntax ```json { "apiVersion": "2017-05-01-preview", "name": "[concat('test', '/Microsoft.Insights/diagnosticSettings')]", "type": "Microsoft.Network/applicationGateways/providers/diagnosticSettings", "location": "[resourceGroup().location]", "dependsOn": [ "[concat('Microsoft.Network/ApplicationGateways/', 'test')]" ], "properties": { "name": "Diag", "workspaceId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name,...
Publish to most powershell people means "do a deployment" e.g. Publish-Module. If the command isn't renamed directly, it should at least be aliased to Build-PSArmTemplate to be more instinctive and...
Fixes https://github.com/PowerShell/PSArm/issues/134
```console PS> help about_operators Exception: Not enough parameters provided PS> gerr Exception : Type : System.Management.Automation.RuntimeException ErrorRecord : Exception : Type : System.Management.Automation.ParentContainsErrorRecordException Message : Not enough parameters provided HResult...
Converted https://github.com/Azure/azure-quickstart-templates/blob/master/101-aks-vmss-systemassigned-identity/azuredeploy.json which has a `type` property. `Publish-PSArmTemplate` encounters this and, as expected, tries to execute the `type` alias as it takes precedence over a function. May need to consider...
Converted https://github.com/Azure/azure-quickstart-templates/blob/master/101-aks-vmss-systemassigned-identity/azuredeploy.json and trying to publish this template complains that `storageProfile` doesn't exist (intellisense shows it doesn't).
Fixes https://github.com/PowerShell/PSArm/issues/126. In this PR, we use internal PowerShell engine APIs to tear down the aliases in each parent scope and store them while the `Arm` block body is executed....