Skip to content

Commit f64fc43

Browse files
authored
Add blog post about ASO v2.17 features
This blog post discusses the upcoming features in ASO v2.17, including improved error handling for undeletable resources and the ability to specify role assignments using well-known names.
1 parent fc1d989 commit f64fc43

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
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

Comments
 (0)