-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Subscription resource providers registration (#52)
* add rp registration * typo * update readme * wording * update guid to ds resources * update cleanup workflow * updates * update output * testing * testing * update tests * update naming * update naming * update guid * adding params * check for empty providers array * update cleanup * add output message * update readme * adding default value * update outputs * update subscription parameter * testing emty array * testing * add dependsOn for vnet for VHC * Update main.bicep Co-authored-by: Jack Tracey <[email protected]> * Update main.bicep Co-authored-by: Jack Tracey <[email protected]> * pr comments * updates * revert testing * unregister features * update tests * auto create docs * add lock param * add lock * remove locks * conditional loop fix * trailing white space * testing * testing * Apply suggestions from code review * Update module-tests.yml * add more error handling * add logic for registering providers * testing * switch to write-host * testing * testing * revert write-host * update pester tests * update features statuses * readme updates * enhance tests for rbac consistency * typo on version number * adding additional feature in examples * add wording around empty array * revert version update to 1.4.1 * test typo * testing * update version * linting * bump version * linting * try again * minor fix * testing * testing * testing * testing * testing * testing * increase wait * testing * testing --------- Co-authored-by: Jack Tracey <[email protected]> Co-authored-by: Jack Tracey <[email protected]>
- Loading branch information
1 parent
a842f98
commit b32c089
Showing
20 changed files
with
2,065 additions
and
132 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
188 changes: 188 additions & 0 deletions
188
docs/wiki/Example-5-Hub-and-Spoke-With-RP-registration.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,188 @@ | ||
<!-- markdownlint-disable MD041 --> | ||
## Example 5 - Landing Zone (Subscription) with a spoke Virtual Network peered to a Hub Virtual Network and resource providers and features registration | ||
|
||
### Bicep Module Registry | ||
|
||
Here is a simple example Bicep file for deploying a landing zone (Subscription) with a spoke Virtual Network peered to a Hub Virtual Network, resource providers and features registration using the [Bicep Module Registry](https://github.com/Azure/bicep-registry-modules): | ||
|
||
> A resoure group gets created in the subscription with the format "rsg-<location>-ds-<xxxx>" hosting a deployment script and a user-assigned managed identity. This resource group needs to be manually deleted if not needed after the resource providers features registration process. | ||
> | ||
> The resource providers registration process is asynchronous as it might take extended periods of time to register. | ||
> After a preview feature is registered in your subscription, you'll see one of two states: Registered or Pending. | ||
> | ||
>- For a preview feature that doesn't require approval, the state is Registered. | ||
>- If a preview feature requires approval, the registration state is Pending. You must request approval from the Azure service offering the preview feature. Usually, you request access through a support ticket. | ||
```bicep | ||
targetScope = 'managementGroup' | ||
@description('Specifies the location for resources.') | ||
param location string = 'uksouth' | ||
module sub003 'br/public:lz/sub-vending:1.4.1' = { | ||
name: 'sub-bicep-lz-vending-example-001' | ||
params: { | ||
subscriptionAliasEnabled: true | ||
subscriptionBillingScope: '/providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456' | ||
subscriptionAliasName: 'sub-bicep-lz-vending-example-001' | ||
subscriptionDisplayName: 'sub-bicep-lz-vending-example-001' | ||
subscriptionTags: { | ||
test: 'true' | ||
} | ||
subscriptionWorkload: 'Production' | ||
subscriptionManagementGroupAssociationEnabled: true | ||
subscriptionManagementGroupId: 'alz-landingzones-corp' | ||
virtualNetworkEnabled: true | ||
virtualNetworkLocation: location | ||
virtualNetworkResourceGroupName: 'rsg-${location}-net-001' | ||
virtualNetworkName: 'vnet-${location}-001' | ||
virtualNetworkAddressSpace: [ | ||
'10.0.0.0/16' | ||
] | ||
virtualNetworkResourceGroupLockEnabled: false | ||
virtualNetworkPeeringEnabled: true | ||
hubNetworkResourceId: '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rsg-uks-net-hub-001/providers/Microsoft.Network/virtualNetworks/vnet-uks-hub-001' | ||
resourceProviders : { | ||
'Microsoft.Compute' : ['InGuestHotPatchVMPreview'] | ||
'Microsoft.AVS' : ['AzureServicesVm','ArcAutomatedOnboarding'] | ||
} | ||
} | ||
} | ||
``` | ||
|
||
### ARM JSON Parameter File | ||
|
||
Here is a simple example parameter file for deploying a landing zone (Subscription) with a spoke Virtual Network peered to a Hub Virtual Network, resource providers and features registration: | ||
|
||
```json | ||
{ | ||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", | ||
"contentVersion": "1.0.0.0", | ||
"parameters": { | ||
"subscriptionAliasEnabled": { | ||
"value": true | ||
}, | ||
"subscriptionDisplayName": { | ||
"value": "sub-bicep-lz-vending-example-001" | ||
}, | ||
"subscriptionAliasName": { | ||
"value": "sub-bicep-lz-vending-example-001" | ||
}, | ||
"subscriptionBillingScope": { | ||
"value": "providers/Microsoft.Billing/billingAccounts/1234567/enrollmentAccounts/123456" | ||
}, | ||
"subscriptionWorkload": { | ||
"value": "Production" | ||
}, | ||
"existingSubscriptionId": { | ||
"value": "" | ||
}, | ||
"subscriptionManagementGroupAssociationEnabled": { | ||
"value": true | ||
}, | ||
"subscriptionManagementGroupId": { | ||
"value": "alz-landingzones-corp" | ||
}, | ||
"subscriptionTags": { | ||
"value": { | ||
"Cost-Center": "ABC123", | ||
"Usage": "Example" | ||
} | ||
}, | ||
"virtualNetworkEnabled": { | ||
"value": true | ||
}, | ||
"virtualNetworkResourceGroupName": { | ||
"value": "rg-networking-001" | ||
}, | ||
"virtualNetworkResourceGroupTags": { | ||
"value": { | ||
"Cost-Center": "ABC123", | ||
"Usage": "Example", | ||
"Managed-By": "Platform Team" | ||
} | ||
}, | ||
"virtualNetworkResourceGroupLockEnabled": { | ||
"value": true | ||
}, | ||
"virtualNetworkLocation": { | ||
"value": "uksouth" | ||
}, | ||
"virtualNetworkName": { | ||
"value": "vnet-example-001" | ||
}, | ||
"virtualNetworkTags": { | ||
"value": { | ||
"Cost-Center": "ABC123", | ||
"Usage": "Example", | ||
"Managed-By": "Platform Team" | ||
} | ||
}, | ||
"virtualNetworkAddressSpace": { | ||
"value": [ | ||
"10.0.0.0/16" | ||
] | ||
}, | ||
"virtualNetworkDnsServers": { | ||
"value": [ | ||
"10.4.1.4", | ||
"10.2.1.5" | ||
] | ||
}, | ||
"virtualNetworkDdosPlanId": { | ||
"value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-hub-network-001/providers/Microsoft.Network/ddosProtectionPlans/ddos-001" | ||
}, | ||
"virtualNetworkPeeringEnabled": { | ||
"value": true | ||
}, | ||
"hubNetworkResourceId": { | ||
"value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-hub-network-001/providers/Microsoft.Network/virtualNetworks/vnet-hub-001" | ||
}, | ||
"virtualNetworkUseRemoteGateways": { | ||
"value": true | ||
}, | ||
"virtualNetworkVwanAssociatedRouteTableResourceId": { | ||
"value": "" | ||
}, | ||
"virtualNetworkVwanPropagatedRouteTablesResourceIds": { | ||
"value": [] | ||
}, | ||
"virtualNetworkVwanPropagatedLabels": { | ||
"value": [] | ||
}, | ||
"roleAssignmentEnabled": { | ||
"value": true | ||
}, | ||
"roleAssignments": { | ||
"value": [ | ||
{ | ||
"principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", | ||
"definition": "Contributor", | ||
"relativeScope": "" | ||
}, | ||
{ | ||
"principalId": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", | ||
"definition": "/providers/Microsoft.Authorization/roleDefinitions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", | ||
"relativeScope": "" | ||
}, | ||
{ | ||
"principalId": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz", | ||
"definition": "Reader", | ||
"relativeScope": "/resourceGroups/rg-networking-001" | ||
} | ||
] | ||
}, | ||
"resourceProviders":{ | ||
"value":{ | ||
"Microsoft.Compute": ["InGuestHotPatchVMPreview"], | ||
"Microsoft.AVS" : ["AzureServicesVm","ArcAutomatedOnboarding"] | ||
} | ||
}, | ||
"disableTelemetry": { | ||
"value": false | ||
} | ||
} | ||
} | ||
``` | ||
|
||
Back to [Examples](Examples) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.