|
| 1 | +--- |
| 2 | +title: "Developer Talks - 2.17 Features with Bevan" |
| 3 | +date: 2025-12-19 |
| 4 | +draft: false |
| 5 | +description: "Bevan goes over some of the features that are coming out in ASO v2.17, and why they're exciting!" |
| 6 | +--- |
| 7 | + |
| 8 | +With the release of ASO v2.17 coming soon, this felt like a great time to go behind the curtain and get a better idea of what us devs have been working on, and why they're excited for certain features to land. |
| 9 | + |
| 10 | +With 2.17, two exciting features that are landing revolve around quality. Along with the other features, we hope that they will make using ASO that much smoother for our users. |
| 11 | + |
| 12 | +## Improved error handling for resources that can't be deleted |
| 13 | + |
| 14 | +PR [#4987](https://github.com/Azure/azure-service-operator/pull/4987) landing in v2.17 helps with error handling for Azure resources that can not be deleted directly. Azure hosts a number of resource types that can not be deleted directly; instead, you would have to delete their parents. |
| 15 | + |
| 16 | +If a user does attempt to delete one of these resources directly, they'll be met with a number of noisy errors that will populate in their logs. |
| 17 | + |
| 18 | +A snippet of such an error would look like would look is below: |
| 19 | + |
| 20 | +```go |
| 21 | +test_logger.go:160: [2024-04-28T22:19:01Z] SqlDatabaseThroughputSettingController |
| 22 | + "msg"="Error during Delete" |
| 23 | + "err"="deleting resource "/subscriptions/<sub_id>/resourceGroups/<rg_name>/providers/Microsoft.DocumentDB/databaseAccounts/sample-sqldb-account/sqlDatabases/sample-sql-db/throughputSettings/default": DELETE https://management.azure.com/subscriptions/<sub_id>/resourceGroups/<rg_name>/providers/Microsoft.DocumentDB/databaseAccounts/sample-sqldb-account/sqlDatabases/sample-sql-db/throughputSettings/default |
| 24 | + -------------------------------------------------------------------------------- |
| 25 | + RESPONSE 405: 405 Method Not Allowed |
| 26 | + ERROR CODE: MethodNotAllowed |
| 27 | + -------------------------------------------------------------------------------- |
| 28 | + { |
| 29 | + "code": "MethodNotAllowed", |
| 30 | + "message": "Message: The requested verb is not supported." |
| 31 | + } |
| 32 | + -------------------------------------------------------------------------------- |
| 33 | + " name="sample-sql-throughput" |
| 34 | + namespace="aso-test-samples-creationanddeletion-test-sqldatabase-v1a-7e1fc" |
| 35 | + azureName="default" |
| 36 | + action="BeginDelete" |
| 37 | +``` |
| 38 | + |
| 39 | +With this new enhancement, the workflow in ASO is enhanced to detect when a resource can not be deleted directly, return a more informative error message than what you would see previously, and provides details on how to unblock the resource deletion. |
| 40 | + |
| 41 | +## Allowing specification of role assignments by using well-known names |
| 42 | + |
| 43 | +[This feature](https://github.com/Azure/azure-service-operator/pull/4923) builds upon the support of well-known names added in [#4922](https://github.com/Azure/azure-service-operator/pull/4922) and allows users to specify RoleAssignments using the well-known name of a [built-in RoleDefinition](https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles) instead of the full ARM ID. |
| 44 | + |
| 45 | +Before this change if I wanted to assign the "Contributor" role, it would require something like this: |
| 46 | + |
| 47 | +```yaml |
| 48 | +apiVersion: authorization.azure.com/v1api20200801preview |
| 49 | +kind: RoleAssignment |
| 50 | +metadata: |
| 51 | + name: aso-sample-contributor |
| 52 | + namespace: default |
| 53 | +spec: |
| 54 | + ... |
| 55 | + roleDefinitionReference: |
| 56 | + armId: /subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c |
| 57 | +``` |
| 58 | +
|
| 59 | +Now, with this change, I'd be able to utilize the well known name instead of the full `armId`: |
| 60 | + |
| 61 | +```yaml |
| 62 | +apiVersion: authorization.azure.com/v1api20200801preview |
| 63 | +kind: RoleAssignment |
| 64 | +metadata: |
| 65 | + name: aso-sample-contributor |
| 66 | + namespace: default |
| 67 | +spec: |
| 68 | + ... |
| 69 | + roleDefinitionReference: |
| 70 | + armName: Contributor |
| 71 | +``` |
| 72 | + |
| 73 | +## v2.17 Release |
| 74 | + |
| 75 | +v2.17 introduces these features and more, as we continually strive to make ASO work better for our users! |
| 76 | + |
| 77 | +While the release is already set, if you have an enhancement you would like to see to ASO, please [submit an issue](https://github.com/Azure/azure-service-operator/issues) or visit the [contributing guide](https://azure.github.io/azure-service-operator/contributing/). The fix might end up in a subsequent version! |
0 commit comments