From ef47460051e0bd5fb2c528516640b8ce8a3971aa Mon Sep 17 00:00:00 2001 From: hundredacres Date: Thu, 1 Aug 2024 12:48:19 -0700 Subject: [PATCH] fix: Resolve failing tests (#2876) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description Update API version for all modules. Disable Azure.MySQL.MaintenanceWindow check due to bug with resource provider. Enforce ZoneRedundancy as default. Update default version from 5.7 to 8.0. Use dedicated location for all tests. Fixes #1649 Closes #1649 ## Pipeline Reference | Pipeline | | -------- | [![avm.res.db-for-my-sql.flexible-server](https://github.com/hundredacres/bicep-registry-modules/actions/workflows/avm.res.db-for-my-sql.flexible-server.yml/badge.svg?branch=fix%2Fdb-for-mysql%2Fflexible%2F1649&event=workflow_dispatch)](https://github.com/hundredacres/bicep-registry-modules/actions/workflows/avm.res.db-for-my-sql.flexible-server.yml) ## Type of Change - [ ] Update to CI Environment or utilities (Non-module affecting changes) - [X] Azure Verified Module updates: - [ ] Bugfix containing backwards-compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in `version.json`: - [X] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description. - [ ] The bug was found by the module author, and no one has opened an issue to report it yet. - [X] Feature update backwards compatible feature updates, and I have bumped the MINOR version in `version.json`. - [ ] Breaking changes and I have bumped the MAJOR version in `version.json`. - [ ] Update to documentation ## Checklist - [X] I'm sure there are no other open Pull Requests for the same update/change - [XI have run `Set-AVMModule` locally to generate the supporting module files. - [X] My corresponding pipelines / checks run clean and green without any errors or warnings --------- Signed-off-by: PixelRobots <22979170+PixelRobots@users.noreply.github.com> Signed-off-by: dependabot[bot] Co-authored-by: Máté Barabás Co-authored-by: Rainer Halanek <61878316+rahalan@users.noreply.github.com> Co-authored-by: JFolberth Co-authored-by: Alexander Sehr Co-authored-by: Erika Gressi <56914614+eriqua@users.noreply.github.com> Co-authored-by: Zach Trocinski <30884663+oZakari@users.noreply.github.com> Co-authored-by: Christoph Vollmann Co-authored-by: René Hézser Co-authored-by: emichellecarter Co-authored-by: Michelle Carter Co-authored-by: elisa anzelmo Co-authored-by: rodney-almeida <64196999+rodney-almeida@users.noreply.github.com> Co-authored-by: Rodney Almeida Co-authored-by: ChrisSidebotham-MSFT <48600046+ChrisSidebotham@users.noreply.github.com> Co-authored-by: Richard Hooper Co-authored-by: Ilhaan Rasheed Co-authored-by: Axel B. Andersen Co-authored-by: Javier Cevallos Co-authored-by: Ahmad Abdalla <28486158+ahmadabdalla@users.noreply.github.com> Co-authored-by: Kris Baranek Co-authored-by: Peter Budai Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: MichielVanHerreweghe <169037533+MichielVanHerreweghe@users.noreply.github.com> Co-authored-by: Axel B. Andersen Co-authored-by: Bryan <117635118+bryansan-msft@users.noreply.github.com> Co-authored-by: Zach Trocinski Co-authored-by: Seif Bassem <38246040+sebassem@users.noreply.github.com> Co-authored-by: Jack Tracey <41163455+jtracey93@users.noreply.github.com> Co-authored-by: Guillaume Beaud <79973892+gbeaud@users.noreply.github.com> Co-authored-by: Sebastian Gräf Co-authored-by: Jose Arias CSA <163902769+josearper@users.noreply.github.com> Co-authored-by: John Co-authored-by: judyer28 <60985418+judyer28@users.noreply.github.com> Co-authored-by: Buddy <38195643+tsc-buddy@users.noreply.github.com> Co-authored-by: bobmclane999 <142896605+bobmclane999@users.noreply.github.com> Co-authored-by: Fabio Masciotra Co-authored-by: Wenjie Yu(MSFT) <81678720+zedy-wj@users.noreply.github.com> Co-authored-by: zedy Co-authored-by: Clint Grove <30802291+clintgrove@users.noreply.github.com> Co-authored-by: Matt Hoffmeister Co-authored-by: Nate Arnold Co-authored-by: Luke Snoddy <37806411+lsnoddy@users.noreply.github.com> Co-authored-by: Dany Contreras <78437433+danycontre@users.noreply.github.com> Co-authored-by: danycontre Co-authored-by: Pankaj Agrawal Co-authored-by: Maher Aldineh Co-authored-by: Tony Box Co-authored-by: Tony Box --- .../db-for-my-sql/flexible-server/README.md | 57 ++++++++++++++----- .../flexible-server/administrator/README.md | 2 +- .../flexible-server/administrator/main.bicep | 4 +- .../flexible-server/administrator/main.json | 6 +- .../flexible-server/database/README.md | 2 +- .../flexible-server/database/main.bicep | 4 +- .../flexible-server/database/main.json | 6 +- .../flexible-server/firewall-rule/README.md | 2 +- .../flexible-server/firewall-rule/main.bicep | 4 +- .../flexible-server/firewall-rule/main.json | 6 +- .../db-for-my-sql/flexible-server/main.bicep | 20 +++++-- .../db-for-my-sql/flexible-server/main.json | 37 ++++++++---- .../tests/e2e/defaults/main.test.bicep | 18 +++--- .../tests/e2e/max/dependencies2.bicep | 12 ++-- .../tests/e2e/max/main.test.bicep | 25 ++++---- .../tests/e2e/private/main.test.bicep | 17 +++--- .../tests/e2e/waf-aligned/main.test.bicep | 21 ++++--- .../flexible-server/version.json | 2 +- .../staticValidation/psrule/ps-rule.yaml | 1 + 19 files changed, 154 insertions(+), 92 deletions(-) diff --git a/avm/res/db-for-my-sql/flexible-server/README.md b/avm/res/db-for-my-sql/flexible-server/README.md index eab033d768..ded7082411 100644 --- a/avm/res/db-for-my-sql/flexible-server/README.md +++ b/avm/res/db-for-my-sql/flexible-server/README.md @@ -17,10 +17,10 @@ This module deploys a DBforMySQL Flexible Server. | :-- | :-- | | `Microsoft.Authorization/locks` | [2020-05-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2020-05-01/locks) | | `Microsoft.Authorization/roleAssignments` | [2022-04-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Authorization/2022-04-01/roleAssignments) | -| `Microsoft.DBforMySQL/flexibleServers` | [2022-09-30-preview](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2022-09-30-preview/flexibleServers) | -| `Microsoft.DBforMySQL/flexibleServers/administrators` | [2022-01-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2022-01-01/flexibleServers/administrators) | -| `Microsoft.DBforMySQL/flexibleServers/databases` | [2022-01-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2022-01-01/flexibleServers/databases) | -| `Microsoft.DBforMySQL/flexibleServers/firewallRules` | [2022-01-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2022-01-01/flexibleServers/firewallRules) | +| `Microsoft.DBforMySQL/flexibleServers` | [2023-12-30](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/flexibleServers) | +| `Microsoft.DBforMySQL/flexibleServers/administrators` | [2023-06-30](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2023-06-30/flexibleServers/administrators) | +| `Microsoft.DBforMySQL/flexibleServers/databases` | [2023-06-30](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2023-06-30/flexibleServers/databases) | +| `Microsoft.DBforMySQL/flexibleServers/firewallRules` | [2023-06-30](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2023-06-30/flexibleServers/firewallRules) | | `Microsoft.Insights/diagnosticSettings` | [2021-05-01-preview](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Insights/2021-05-01-preview/diagnosticSettings) | ## Usage examples @@ -51,12 +51,13 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: params: { // Required parameters name: 'dfmsfsmin001' - skuName: 'Standard_B1ms' - tier: 'Burstable' + skuName: 'Standard_D2ds_v4' + tier: 'GeneralPurpose' // Non-required parameters administratorLogin: 'adminUserName' administratorLoginPassword: '' location: '' + storageAutoGrow: 'Enabled' } } ``` @@ -78,10 +79,10 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: "value": "dfmsfsmin001" }, "skuName": { - "value": "Standard_B1ms" + "value": "Standard_D2ds_v4" }, "tier": { - "value": "Burstable" + "value": "GeneralPurpose" }, // Non-required parameters "administratorLogin": { @@ -92,6 +93,9 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: }, "location": { "value": "" + }, + "storageAutoGrow": { + "value": "Enabled" } } } @@ -535,16 +539,20 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: params: { // Required parameters name: 'dfmswaf001' - skuName: 'Standard_B1ms' - tier: 'Burstable' + skuName: 'Standard_D2ds_v4' + tier: 'GeneralPurpose' // Non-required parameters administratorLogin: 'adminUserName' administratorLoginPassword: '' + availabilityZone: '1' + highAvailability: 'ZoneRedundant' + highAvailabilityZone: '2' location: '' lock: { kind: 'CanNotDelete' name: 'myCustomLockName' } + storageAutoGrow: 'Enabled' tags: { Environment: 'Non-Prod' 'hidden-title': 'This is visible in the resource name' @@ -571,10 +579,10 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: "value": "dfmswaf001" }, "skuName": { - "value": "Standard_B1ms" + "value": "Standard_D2ds_v4" }, "tier": { - "value": "Burstable" + "value": "GeneralPurpose" }, // Non-required parameters "administratorLogin": { @@ -583,6 +591,15 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: "administratorLoginPassword": { "value": "" }, + "availabilityZone": { + "value": "1" + }, + "highAvailability": { + "value": "ZoneRedundant" + }, + "highAvailabilityZone": { + "value": "2" + }, "location": { "value": "" }, @@ -592,6 +609,9 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: "name": "myCustomLockName" } }, + "storageAutoGrow": { + "value": "Enabled" + }, "tags": { "value": { "Environment": "Non-Prod", @@ -646,6 +666,7 @@ module flexibleServer 'br/public:avm/res/db-for-my-sql/flexible-server: | [`firewallRules`](#parameter-firewallrules) | array | The firewall rules to create in the MySQL flexible server. | | [`geoRedundantBackup`](#parameter-georedundantbackup) | string | A value indicating whether Geo-Redundant backup is enabled on the server. If "Enabled" and "cMKKeyName" is not empty, then "geoBackupCMKKeyVaultResourceId" and "cMKUserAssignedIdentityResourceId" are also required. | | [`highAvailability`](#parameter-highavailability) | string | The mode for High Availability (HA). It is not supported for the Burstable pricing tier and Zone redundant HA can only be set during server provisioning. | +| [`highAvailabilityZone`](#parameter-highavailabilityzone) | string | Standby availability zone information of the server. Default will have no preference set. | | [`location`](#parameter-location) | string | Location for all resources. | | [`lock`](#parameter-lock) | object | The lock settings of the service. | | [`maintenanceWindow`](#parameter-maintenancewindow) | object | Properties for the maintenence window. If provided, "customWindow" property must exist and set to "Enabled". | @@ -1108,7 +1129,7 @@ The mode for High Availability (HA). It is not supported for the Burstable prici - Required: No - Type: string -- Default: `'Disabled'` +- Default: `'ZoneRedundant'` - Allowed: ```Bicep [ @@ -1118,6 +1139,14 @@ The mode for High Availability (HA). It is not supported for the Burstable prici ] ``` +### Parameter: `highAvailabilityZone` + +Standby availability zone information of the server. Default will have no preference set. + +- Required: No +- Type: string +- Default: `''` + ### Parameter: `location` Location for all resources. @@ -1335,7 +1364,7 @@ MySQL Server version. - Required: No - Type: string -- Default: `'5.7'` +- Default: `'8.0.21'` - Allowed: ```Bicep [ diff --git a/avm/res/db-for-my-sql/flexible-server/administrator/README.md b/avm/res/db-for-my-sql/flexible-server/administrator/README.md index ffe1d5f9cd..aa3aa4deaa 100644 --- a/avm/res/db-for-my-sql/flexible-server/administrator/README.md +++ b/avm/res/db-for-my-sql/flexible-server/administrator/README.md @@ -14,7 +14,7 @@ This module deploys a DBforMySQL Flexible Server Administrator. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.DBforMySQL/flexibleServers/administrators` | [2022-01-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2022-01-01/flexibleServers/administrators) | +| `Microsoft.DBforMySQL/flexibleServers/administrators` | [2023-06-30](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2023-06-30/flexibleServers/administrators) | ## Parameters diff --git a/avm/res/db-for-my-sql/flexible-server/administrator/main.bicep b/avm/res/db-for-my-sql/flexible-server/administrator/main.bicep index 912d7cbdcd..8897bdb7f6 100644 --- a/avm/res/db-for-my-sql/flexible-server/administrator/main.bicep +++ b/avm/res/db-for-my-sql/flexible-server/administrator/main.bicep @@ -17,11 +17,11 @@ param login string @description('Optional. The tenantId of the Active Directory administrator.') param tenantId string = tenant().tenantId -resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2022-01-01' existing = { +resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2023-12-30' existing = { name: flexibleServerName } -resource administrator 'Microsoft.DBforMySQL/flexibleServers/administrators@2022-01-01' = { +resource administrator 'Microsoft.DBforMySQL/flexibleServers/administrators@2023-06-30' = { name: 'ActiveDirectory' parent: flexibleServer properties: { diff --git a/avm/res/db-for-my-sql/flexible-server/administrator/main.json b/avm/res/db-for-my-sql/flexible-server/administrator/main.json index e4df947daa..1bcbc49e4c 100644 --- a/avm/res/db-for-my-sql/flexible-server/administrator/main.json +++ b/avm/res/db-for-my-sql/flexible-server/administrator/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.26.54.24096", - "templateHash": "2817201491275445304" + "version": "0.28.1.47646", + "templateHash": "6790232868083578968" }, "name": "DBforMySQL Flexible Server Administrators", "description": "This module deploys a DBforMySQL Flexible Server Administrator.", @@ -47,7 +47,7 @@ "resources": [ { "type": "Microsoft.DBforMySQL/flexibleServers/administrators", - "apiVersion": "2022-01-01", + "apiVersion": "2023-06-30", "name": "[format('{0}/{1}', parameters('flexibleServerName'), 'ActiveDirectory')]", "properties": { "administratorType": "ActiveDirectory", diff --git a/avm/res/db-for-my-sql/flexible-server/database/README.md b/avm/res/db-for-my-sql/flexible-server/database/README.md index d4fe4f68fb..8242a0bd31 100644 --- a/avm/res/db-for-my-sql/flexible-server/database/README.md +++ b/avm/res/db-for-my-sql/flexible-server/database/README.md @@ -14,7 +14,7 @@ This module deploys a DBforMySQL Flexible Server Database. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.DBforMySQL/flexibleServers/databases` | [2022-01-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2022-01-01/flexibleServers/databases) | +| `Microsoft.DBforMySQL/flexibleServers/databases` | [2023-06-30](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2023-06-30/flexibleServers/databases) | ## Parameters diff --git a/avm/res/db-for-my-sql/flexible-server/database/main.bicep b/avm/res/db-for-my-sql/flexible-server/database/main.bicep index 51fdfed6ca..f939ae6354 100644 --- a/avm/res/db-for-my-sql/flexible-server/database/main.bicep +++ b/avm/res/db-for-my-sql/flexible-server/database/main.bicep @@ -14,11 +14,11 @@ param collation string = 'utf8' @description('Optional. The charset of the database.') param charset string = 'utf8_general_ci' -resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2022-09-30-preview' existing = { +resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2023-12-30' existing = { name: flexibleServerName } -resource database 'Microsoft.DBforMySQL/flexibleServers/databases@2022-01-01' = { +resource database 'Microsoft.DBforMySQL/flexibleServers/databases@2023-06-30' = { name: name parent: flexibleServer properties: { diff --git a/avm/res/db-for-my-sql/flexible-server/database/main.json b/avm/res/db-for-my-sql/flexible-server/database/main.json index 77895b3ecb..e327eed2cf 100644 --- a/avm/res/db-for-my-sql/flexible-server/database/main.json +++ b/avm/res/db-for-my-sql/flexible-server/database/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.26.54.24096", - "templateHash": "9734848552595709363" + "version": "0.28.1.47646", + "templateHash": "10336036524933085246" }, "name": "DBforMySQL Flexible Server Databases", "description": "This module deploys a DBforMySQL Flexible Server Database.", @@ -42,7 +42,7 @@ "resources": [ { "type": "Microsoft.DBforMySQL/flexibleServers/databases", - "apiVersion": "2022-01-01", + "apiVersion": "2023-06-30", "name": "[format('{0}/{1}', parameters('flexibleServerName'), parameters('name'))]", "properties": { "collation": "[if(not(empty(parameters('collation'))), parameters('collation'), null())]", diff --git a/avm/res/db-for-my-sql/flexible-server/firewall-rule/README.md b/avm/res/db-for-my-sql/flexible-server/firewall-rule/README.md index 082750e131..3a84a1473e 100644 --- a/avm/res/db-for-my-sql/flexible-server/firewall-rule/README.md +++ b/avm/res/db-for-my-sql/flexible-server/firewall-rule/README.md @@ -14,7 +14,7 @@ This module deploys a DBforMySQL Flexible Server Firewall Rule. | Resource Type | API Version | | :-- | :-- | -| `Microsoft.DBforMySQL/flexibleServers/firewallRules` | [2022-01-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2022-01-01/flexibleServers/firewallRules) | +| `Microsoft.DBforMySQL/flexibleServers/firewallRules` | [2023-06-30](https://learn.microsoft.com/en-us/azure/templates/Microsoft.DBforMySQL/2023-06-30/flexibleServers/firewallRules) | ## Parameters diff --git a/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.bicep b/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.bicep index 19c077118e..bb17c1fb47 100644 --- a/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.bicep +++ b/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.bicep @@ -14,11 +14,11 @@ param endIpAddress string @description('Conditional. The name of the parent MySQL flexible server. Required if the template is used in a standalone deployment.') param flexibleServerName string -resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2022-09-30-preview' existing = { +resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2023-12-30' existing = { name: flexibleServerName } -resource firewallRule 'Microsoft.DBforMySQL/flexibleServers/firewallRules@2022-01-01' = { +resource firewallRule 'Microsoft.DBforMySQL/flexibleServers/firewallRules@2023-06-30' = { name: name parent: flexibleServer properties: { diff --git a/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.json b/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.json index 70bdf3643c..a81f08196a 100644 --- a/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.json +++ b/avm/res/db-for-my-sql/flexible-server/firewall-rule/main.json @@ -4,8 +4,8 @@ "metadata": { "_generator": { "name": "bicep", - "version": "0.26.54.24096", - "templateHash": "2931317814738693960" + "version": "0.28.1.47646", + "templateHash": "15749635080430899727" }, "name": "DBforMySQL Flexible Server Firewall Rules", "description": "This module deploys a DBforMySQL Flexible Server Firewall Rule.", @@ -40,7 +40,7 @@ "resources": [ { "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules", - "apiVersion": "2022-01-01", + "apiVersion": "2023-06-30", "name": "[format('{0}/{1}', parameters('flexibleServerName'), parameters('name'))]", "properties": { "endIpAddress": "[parameters('endIpAddress')]", diff --git a/avm/res/db-for-my-sql/flexible-server/main.bicep b/avm/res/db-for-my-sql/flexible-server/main.bicep index 8d46d38113..a86abc4a07 100644 --- a/avm/res/db-for-my-sql/flexible-server/main.bicep +++ b/avm/res/db-for-my-sql/flexible-server/main.bicep @@ -44,6 +44,9 @@ param tier string @description('Optional. Availability zone information of the server. Default will have no preference set.') param availabilityZone string = '' +@description('Optional. Standby availability zone information of the server. Default will have no preference set.') +param highAvailabilityZone string = '' + @minValue(1) @maxValue(35) @description('Optional. Backup retention days for the server.') @@ -80,7 +83,7 @@ param customerManagedKeyGeo customerManagedKeyType 'ZoneRedundant' ]) @description('Optional. The mode for High Availability (HA). It is not supported for the Burstable pricing tier and Zone redundant HA can only be set during server provisioning.') -param highAvailability string = 'Disabled' +param highAvailability string = 'ZoneRedundant' @description('Optional. Properties for the maintenence window. If provided, "customWindow" property must exist and set to "Enabled".') param maintenanceWindow object = {} @@ -145,7 +148,7 @@ param storageSizeGB int = 64 '8.0.21' ]) @description('Optional. MySQL Server version.') -param version string = '5.7' +param version string = '8.0.21' @description('Optional. The databases to create in the server.') param databases array = [] @@ -162,6 +165,14 @@ param diagnosticSettings diagnosticSettingType @description('Optional. Enable/Disable usage telemetry for module.') param enableTelemetry bool = true +var standByAvailabilityZoneTable = { + Disabled: null + SameZone: availabilityZone + ZoneRedundant: highAvailabilityZone +} + +var standByAvailabilityZone = standByAvailabilityZoneTable[?highAvailability] + var formattedUserAssignedIdentities = reduce( map((managedIdentities.?userAssignedResourceIds ?? []), (id) => { '${id}': {} }), {}, @@ -193,7 +204,6 @@ var builtInRoleNames = { ) } -#disable-next-line no-deployments-resources resource avmTelemetry 'Microsoft.Resources/deployments@2024-03-01' = if (enableTelemetry) { name: '46d3xbcp.res.dbformysql-flexibleserver.${replace('-..--..-', '.', '-')}.${substring(uniqueString(deployment().name, location), 0, 4)}' properties: { @@ -252,7 +262,7 @@ resource cMKGeoUserAssignedIdentity 'Microsoft.ManagedIdentity/userAssignedIdent ) } -resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2022-09-30-preview' = { +resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2023-12-30' = { name: name location: location tags: tags @@ -287,7 +297,7 @@ resource flexibleServer 'Microsoft.DBforMySQL/flexibleServers@2022-09-30-preview : null highAvailability: { mode: highAvailability - standbyAvailabilityZone: highAvailability == 'SameZone' ? availabilityZone : null + standbyAvailabilityZone: standByAvailabilityZone } maintenanceWindow: !empty(maintenanceWindow) ? { diff --git a/avm/res/db-for-my-sql/flexible-server/main.json b/avm/res/db-for-my-sql/flexible-server/main.json index b82fe2edda..cf293bdbf6 100644 --- a/avm/res/db-for-my-sql/flexible-server/main.json +++ b/avm/res/db-for-my-sql/flexible-server/main.json @@ -6,7 +6,7 @@ "_generator": { "name": "bicep", "version": "0.28.1.47646", - "templateHash": "1522380733959447255" + "templateHash": "12896595975186168719" }, "name": "DBforMySQL Flexible Servers", "description": "This module deploys a DBforMySQL Flexible Server.", @@ -349,6 +349,13 @@ "description": "Optional. Availability zone information of the server. Default will have no preference set." } }, + "highAvailabilityZone": { + "type": "string", + "defaultValue": "", + "metadata": { + "description": "Optional. Standby availability zone information of the server. Default will have no preference set." + } + }, "backupRetentionDays": { "type": "int", "defaultValue": 7, @@ -402,7 +409,7 @@ }, "highAvailability": { "type": "string", - "defaultValue": "Disabled", + "defaultValue": "ZoneRedundant", "allowedValues": [ "Disabled", "SameZone", @@ -512,7 +519,7 @@ }, "version": { "type": "string", - "defaultValue": "5.7", + "defaultValue": "8.0.21", "allowedValues": [ "5.7", "8.0.21" @@ -556,6 +563,12 @@ } }, "variables": { + "standByAvailabilityZoneTable": { + "Disabled": null, + "SameZone": "[parameters('availabilityZone')]", + "ZoneRedundant": "[parameters('highAvailabilityZone')]" + }, + "standByAvailabilityZone": "[tryGet(variables('standByAvailabilityZoneTable'), parameters('highAvailability'))]", "formattedUserAssignedIdentities": "[reduce(map(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createArray()), lambda('id', createObject(format('{0}', lambdaVariables('id')), createObject()))), createObject(), lambda('cur', 'next', union(lambdaVariables('cur'), lambdaVariables('next'))))]", "identity": "[if(not(empty(parameters('managedIdentities'))), createObject('type', if(not(empty(coalesce(tryGet(parameters('managedIdentities'), 'userAssignedResourceIds'), createObject()))), 'UserAssigned', null()), 'userAssignedIdentities', if(not(empty(variables('formattedUserAssignedIdentities'))), variables('formattedUserAssignedIdentities'), null())), null())]", "builtInRoleNames": { @@ -650,7 +663,7 @@ }, "flexibleServer": { "type": "Microsoft.DBforMySQL/flexibleServers", - "apiVersion": "2022-09-30-preview", + "apiVersion": "2023-12-30", "name": "[parameters('name')]", "location": "[parameters('location')]", "tags": "[parameters('tags')]", @@ -671,7 +684,7 @@ "dataEncryption": "[if(not(empty(parameters('customerManagedKey'))), createObject('type', 'AzureKeyVault', 'geoBackupKeyURI', if(equals(parameters('geoRedundantBackup'), 'Enabled'), if(not(empty(coalesce(tryGet(parameters('customerManagedKeyGeo'), 'keyVersion'), ''))), format('{0}/{1}', reference('cMKGeoKeyVault::cMKKey').keyUri, parameters('customerManagedKeyGeo').keyVersion), reference('cMKGeoKeyVault::cMKKey').keyUriWithVersion), null()), 'geoBackupUserAssignedIdentityId', if(equals(parameters('geoRedundantBackup'), 'Enabled'), extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', split(coalesce(tryGet(parameters('customerManagedKeyGeo'), 'userAssignedIdentityResourceId'), '//'), '/')[2], split(coalesce(tryGet(parameters('customerManagedKeyGeo'), 'userAssignedIdentityResourceId'), '////'), '/')[4]), 'Microsoft.ManagedIdentity/userAssignedIdentities', last(split(coalesce(tryGet(parameters('customerManagedKeyGeo'), 'userAssignedIdentityResourceId'), 'dummyMsi'), '/'))), null()), 'primaryKeyURI', if(not(empty(coalesce(tryGet(parameters('customerManagedKey'), 'keyVersion'), ''))), format('{0}/{1}', reference('cMKKeyVault::cMKKey').keyUri, parameters('customerManagedKey').keyVersion), reference('cMKKeyVault::cMKKey').keyUriWithVersion), 'primaryUserAssignedIdentityId', extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', split(coalesce(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '//'), '/')[2], split(coalesce(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), '////'), '/')[4]), 'Microsoft.ManagedIdentity/userAssignedIdentities', last(split(coalesce(tryGet(parameters('customerManagedKey'), 'userAssignedIdentityResourceId'), 'dummyMsi'), '/')))), null())]", "highAvailability": { "mode": "[parameters('highAvailability')]", - "standbyAvailabilityZone": "[if(equals(parameters('highAvailability'), 'SameZone'), parameters('availabilityZone'), null())]" + "standbyAvailabilityZone": "[variables('standByAvailabilityZone')]" }, "maintenanceWindow": "[if(not(empty(parameters('maintenanceWindow'))), createObject('customWindow', parameters('maintenanceWindow').customWindow, 'dayOfWeek', if(equals(parameters('maintenanceWindow').customWindow, 'Enabled'), parameters('maintenanceWindow').dayOfWeek, 0), 'startHour', if(equals(parameters('maintenanceWindow').customWindow, 'Enabled'), parameters('maintenanceWindow').startHour, 0), 'startMinute', if(equals(parameters('maintenanceWindow').customWindow, 'Enabled'), parameters('maintenanceWindow').startMinute, 0)), null())]", "network": "[if(and(not(empty(parameters('delegatedSubnetResourceId'))), empty(parameters('firewallRules'))), createObject('delegatedSubnetResourceId', parameters('delegatedSubnetResourceId'), 'privateDnsZoneResourceId', parameters('privateDnsZoneResourceId')), null())]", @@ -800,7 +813,7 @@ "_generator": { "name": "bicep", "version": "0.28.1.47646", - "templateHash": "16124321045090132550" + "templateHash": "10336036524933085246" }, "name": "DBforMySQL Flexible Server Databases", "description": "This module deploys a DBforMySQL Flexible Server Database.", @@ -837,7 +850,7 @@ "resources": [ { "type": "Microsoft.DBforMySQL/flexibleServers/databases", - "apiVersion": "2022-01-01", + "apiVersion": "2023-06-30", "name": "[format('{0}/{1}', parameters('flexibleServerName'), parameters('name'))]", "properties": { "collation": "[if(not(empty(parameters('collation'))), parameters('collation'), null())]", @@ -908,7 +921,7 @@ "_generator": { "name": "bicep", "version": "0.28.1.47646", - "templateHash": "5174688085450924115" + "templateHash": "15749635080430899727" }, "name": "DBforMySQL Flexible Server Firewall Rules", "description": "This module deploys a DBforMySQL Flexible Server Firewall Rule.", @@ -943,7 +956,7 @@ "resources": [ { "type": "Microsoft.DBforMySQL/flexibleServers/firewallRules", - "apiVersion": "2022-01-01", + "apiVersion": "2023-06-30", "name": "[format('{0}/{1}', parameters('flexibleServerName'), parameters('name'))]", "properties": { "endIpAddress": "[parameters('endIpAddress')]", @@ -1015,7 +1028,7 @@ "_generator": { "name": "bicep", "version": "0.28.1.47646", - "templateHash": "1872309055548332882" + "templateHash": "6790232868083578968" }, "name": "DBforMySQL Flexible Server Administrators", "description": "This module deploys a DBforMySQL Flexible Server Administrator.", @@ -1057,7 +1070,7 @@ "resources": [ { "type": "Microsoft.DBforMySQL/flexibleServers/administrators", - "apiVersion": "2022-01-01", + "apiVersion": "2023-06-30", "name": "[format('{0}/{1}', parameters('flexibleServerName'), 'ActiveDirectory')]", "properties": { "administratorType": "ActiveDirectory", @@ -1125,7 +1138,7 @@ "metadata": { "description": "The location the resource was deployed into." }, - "value": "[reference('flexibleServer', '2022-09-30-preview', 'full').location]" + "value": "[reference('flexibleServer', '2023-12-30', 'full').location]" } } } \ No newline at end of file diff --git a/avm/res/db-for-my-sql/flexible-server/tests/e2e/defaults/main.test.bicep b/avm/res/db-for-my-sql/flexible-server/tests/e2e/defaults/main.test.bicep index 8412371c66..e116c6e6a2 100644 --- a/avm/res/db-for-my-sql/flexible-server/tests/e2e/defaults/main.test.bicep +++ b/avm/res/db-for-my-sql/flexible-server/tests/e2e/defaults/main.test.bicep @@ -11,9 +11,6 @@ metadata description = 'This instance deploys the module with the minimum set of @maxLength(90) param resourceGroupName string = 'dep-${namePrefix}-dbformysql.flexibleservers-${serviceShort}-rg' -@description('Optional. The location to deploy resources to.') -param resourceLocation string = deployment().location - @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'dfmsfsmin' @@ -24,6 +21,10 @@ param password string = newGuid() @description('Optional. A token to inject into the name of each resource.') param namePrefix string = '#_namePrefix_#' +// Pipeline is selecting random regions which dont support all cosmos features and have constraints when creating new cosmos +#disable-next-line no-hardcoded-location +var enforcedLocation = 'northeurope' + // ============ // // Dependencies // // ============ // @@ -32,7 +33,7 @@ param namePrefix string = '#_namePrefix_#' // ================= resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = { name: resourceGroupName - location: resourceLocation + location: enforcedLocation } // ============== // @@ -43,14 +44,15 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = { module testDeployment '../../../main.bicep' = [ for iteration in ['init', 'idem']: { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-test-${serviceShort}-${iteration}' + name: '${uniqueString(deployment().name, enforcedLocation)}-test-${serviceShort}-${iteration}' params: { name: '${namePrefix}${serviceShort}001' - location: resourceLocation + location: enforcedLocation administratorLogin: 'adminUserName' administratorLoginPassword: password - skuName: 'Standard_B1ms' - tier: 'Burstable' + skuName: 'Standard_D2ds_v4' + tier: 'GeneralPurpose' + storageAutoGrow: 'Enabled' } } ] diff --git a/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/dependencies2.bicep b/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/dependencies2.bicep index 2966ac2358..7a5c266ae9 100644 --- a/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/dependencies2.bicep +++ b/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/dependencies2.bicep @@ -21,7 +21,7 @@ resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023- location: location } -resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { +resource keyVault 'Microsoft.KeyVault/vaults@2023-07-01' = { name: keyVaultName location: location properties: { @@ -30,8 +30,8 @@ resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { name: 'standard' } tenantId: tenant().tenantId + softDeleteRetentionInDays: 90 // The resource provider requires a 90 day retention period for encryption. Anything less will cause the deployment to fail. Ref: https://learn.microsoft.com/en-us/azure/mysql/flexible-server/concepts-customer-managed-key#requirements-for-configuring-data-encryption-for-azure-database-for-mysql-flexible-server enablePurgeProtection: true // Required for encryption to work - softDeleteRetentionInDays: 7 enabledForTemplateDeployment: true enabledForDiskEncryption: true enabledForDeployment: true @@ -39,7 +39,7 @@ resource keyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { accessPolicies: [] } - resource key 'keys@2023-02-01' = { + resource key 'keys@2023-07-01' = { name: 'keyEncryptionKey' properties: { kty: 'RSA' @@ -65,7 +65,7 @@ resource geoBackupManagedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentit location: geoBackupLocation } -resource geoBackupKeyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { +resource geoBackupKeyVault 'Microsoft.KeyVault/vaults@2023-07-01' = { name: geoBackupKeyVaultName location: geoBackupLocation properties: { @@ -74,8 +74,8 @@ resource geoBackupKeyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { name: 'standard' } tenantId: tenant().tenantId + softDeleteRetentionInDays: 90 // The resource provider requires a 90 day retention period for encryption. Anything less will cause the deployment to fail. Ref: https://learn.microsoft.com/en-us/azure/mysql/flexible-server/concepts-customer-managed-key#requirements-for-configuring-data-encryption-for-azure-database-for-mysql-flexible-server enablePurgeProtection: true // Required for encryption to work - softDeleteRetentionInDays: 7 enabledForTemplateDeployment: true enabledForDiskEncryption: true enabledForDeployment: true @@ -83,7 +83,7 @@ resource geoBackupKeyVault 'Microsoft.KeyVault/vaults@2023-02-01' = { accessPolicies: [] } - resource key 'keys@2023-02-01' = { + resource key 'keys@2023-07-01' = { name: 'keyEncryptionKey' properties: { kty: 'RSA' diff --git a/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/main.test.bicep b/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/main.test.bicep index 09db4d5368..011662e73b 100644 --- a/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/main.test.bicep +++ b/avm/res/db-for-my-sql/flexible-server/tests/e2e/max/main.test.bicep @@ -11,9 +11,6 @@ metadata description = 'This instance deploys the module with most of its featur @maxLength(90) param resourceGroupName string = 'dep-${namePrefix}-dbformysql.flexibleservers-${serviceShort}-rg' -@description('Optional. The location to deploy resources to.') -param resourceLocation string = deployment().location - @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'dfmsmax' @@ -27,6 +24,10 @@ param baseTime string = utcNow('u') @description('Optional. A token to inject into the name of each resource.') param namePrefix string = '#_namePrefix_#' +// Pipeline is selecting random regions which dont support all cosmos features and have constraints when creating new cosmos +#disable-next-line no-hardcoded-location +var enforcedLocation = 'northeurope' + // ============ // // Dependencies // // ============ // @@ -35,15 +36,15 @@ param namePrefix string = '#_namePrefix_#' // ================= resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = { name: resourceGroupName - location: resourceLocation + location: enforcedLocation } module nestedDependencies1 'dependencies1.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-nestedDependencies1' + name: '${uniqueString(deployment().name, enforcedLocation)}-nestedDependencies1' params: { // Adding base time to make the name unique as purge protection must be enabled (but may not be longer than 24 characters total) - location: resourceLocation + location: enforcedLocation managedIdentityName: 'dep-${namePrefix}-msi-ds-${serviceShort}' pairedRegionScriptName: 'dep-${namePrefix}-ds-${serviceShort}' } @@ -51,12 +52,12 @@ module nestedDependencies1 'dependencies1.bicep' = { module nestedDependencies2 'dependencies2.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-nestedDependencies2' + name: '${uniqueString(deployment().name, enforcedLocation)}-nestedDependencies2' params: { // Adding base time to make the name unique as purge protection must be enabled (but may not be longer than 24 characters total) keyVaultName: 'dep-${namePrefix}-kv-${serviceShort}-${substring(uniqueString(baseTime), 0, 3)}' managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}' - location: resourceLocation + location: enforcedLocation geoBackupKeyVaultName: 'dep-${namePrefix}-kvp-${serviceShort}-${substring(uniqueString(baseTime), 0, 2)}' geoBackupManagedIdentityName: 'dep-${namePrefix}-msip-${serviceShort}' geoBackupLocation: nestedDependencies1.outputs.pairedRegionName @@ -67,13 +68,13 @@ module nestedDependencies2 'dependencies2.bicep' = { // =========== module diagnosticDependencies '../../../../../../utilities/e2e-template-assets/templates/diagnostic.dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-diagnosticDependencies' + name: '${uniqueString(deployment().name, enforcedLocation)}-diagnosticDependencies' params: { storageAccountName: 'dep${namePrefix}diasa${serviceShort}01' logAnalyticsWorkspaceName: 'dep-${namePrefix}-law-${serviceShort}' eventHubNamespaceEventHubName: 'dep-${namePrefix}-evh-${serviceShort}' eventHubNamespaceName: 'dep-${namePrefix}-evhns-${serviceShort}' - location: resourceLocation + location: enforcedLocation } } @@ -85,10 +86,10 @@ module diagnosticDependencies '../../../../../../utilities/e2e-template-assets/t module testDeployment '../../../main.bicep' = [ for iteration in ['init', 'idem']: { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-test-${serviceShort}-${iteration}' + name: '${uniqueString(deployment().name, enforcedLocation)}-test-${serviceShort}-${iteration}' params: { name: '${namePrefix}${serviceShort}001' - location: resourceLocation + location: enforcedLocation lock: { kind: 'CanNotDelete' name: 'myCustomLockName' diff --git a/avm/res/db-for-my-sql/flexible-server/tests/e2e/private/main.test.bicep b/avm/res/db-for-my-sql/flexible-server/tests/e2e/private/main.test.bicep index 4966686565..022d81ac27 100644 --- a/avm/res/db-for-my-sql/flexible-server/tests/e2e/private/main.test.bicep +++ b/avm/res/db-for-my-sql/flexible-server/tests/e2e/private/main.test.bicep @@ -11,9 +11,6 @@ metadata description = 'This instance deploys the module with connectivity mode @maxLength(90) param resourceGroupName string = 'dep-${namePrefix}-dbformysql.flexibleservers-${serviceShort}-rg' -@description('Optional. The location to deploy resources to.') -param resourceLocation string = deployment().location - @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') param serviceShort string = 'dfmspvt' @@ -24,6 +21,10 @@ param password string = newGuid() @description('Optional. A token to inject into the name of each resource.') param namePrefix string = '#_namePrefix_#' +// Pipeline is selecting random regions which dont support all cosmos features and have constraints when creating new cosmos +#disable-next-line no-hardcoded-location +var enforcedLocation = 'northeurope' + // ============ // // Dependencies // // ============ // @@ -32,16 +33,16 @@ param namePrefix string = '#_namePrefix_#' // ================= resource resourceGroup 'Microsoft.Resources/resourceGroups@2022-09-01' = { name: resourceGroupName - location: resourceLocation + location: enforcedLocation } module nestedDependencies 'dependencies.bicep' = { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-nestedDependencies' + name: '${uniqueString(deployment().name, enforcedLocation)}-nestedDependencies' params: { virtualNetworkName: 'dep-${namePrefix}-vnet-${serviceShort}' managedIdentityName: 'dep-${namePrefix}-msi-${serviceShort}' - location: resourceLocation + location: enforcedLocation } } @@ -53,10 +54,10 @@ module nestedDependencies 'dependencies.bicep' = { module testDeployment '../../../main.bicep' = [ for iteration in ['init', 'idem']: { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-test-${serviceShort}-${iteration}' + name: '${uniqueString(deployment().name, enforcedLocation)}-test-${serviceShort}-${iteration}' params: { name: '${namePrefix}${serviceShort}001' - location: resourceGroup.location + location: enforcedLocation administratorLogin: 'adminUserName' administratorLoginPassword: password skuName: 'Standard_D2ds_v4' diff --git a/avm/res/db-for-my-sql/flexible-server/tests/e2e/waf-aligned/main.test.bicep b/avm/res/db-for-my-sql/flexible-server/tests/e2e/waf-aligned/main.test.bicep index 9b2301311f..be7429e7f1 100644 --- a/avm/res/db-for-my-sql/flexible-server/tests/e2e/waf-aligned/main.test.bicep +++ b/avm/res/db-for-my-sql/flexible-server/tests/e2e/waf-aligned/main.test.bicep @@ -12,9 +12,6 @@ metadata description = 'This instance deploys the module in alignment with the b // e.g., for a module 'network/private-endpoint' you could use 'dep-dev-network.privateendpoints-${serviceShort}-rg' param resourceGroupName string = 'dep-${namePrefix}-dbformysql.flexibleservers-${serviceShort}-rg' -@description('Optional. The location to deploy resources to.') -param resourceLocation string = deployment().location - @description('Optional. A short identifier for the kind of deployment. Should be kept short to not run into resource-name length-constraints.') // e.g., for a module 'network/private-endpoint' you could use 'npe' as a prefix and then 'waf' as a suffix for the waf-aligned test param serviceShort string = 'dfmswaf' @@ -26,6 +23,10 @@ param password string = newGuid() @description('Optional. A token to inject into the name of each resource. This value can be automatically injected by the CI.') param namePrefix string = '#_namePrefix_#' +// Pipeline is selecting random regions which dont support all cosmos features and have constraints when creating new cosmos +#disable-next-line no-hardcoded-location +var enforcedLocation = 'northeurope' + // ============ // // Dependencies // // ============ // @@ -34,7 +35,7 @@ param namePrefix string = '#_namePrefix_#' // ================= resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { name: resourceGroupName - location: resourceLocation + location: enforcedLocation } // ============== // @@ -45,14 +46,18 @@ resource resourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' = { module testDeployment '../../../main.bicep' = [ for iteration in ['init', 'idem']: { scope: resourceGroup - name: '${uniqueString(deployment().name, resourceLocation)}-test-${serviceShort}-${iteration}' + name: '${uniqueString(deployment().name, enforcedLocation)}-test-${serviceShort}-${iteration}' params: { name: '${namePrefix}${serviceShort}001' - location: resourceLocation + location: enforcedLocation + availabilityZone: '1' administratorLogin: 'adminUserName' administratorLoginPassword: password - skuName: 'Standard_B1ms' - tier: 'Burstable' + highAvailability: 'ZoneRedundant' + highAvailabilityZone: '2' + skuName: 'Standard_D2ds_v4' + tier: 'GeneralPurpose' + storageAutoGrow: 'Enabled' lock: { kind: 'CanNotDelete' name: 'myCustomLockName' diff --git a/avm/res/db-for-my-sql/flexible-server/version.json b/avm/res/db-for-my-sql/flexible-server/version.json index 7fa401bdf7..9481fea58e 100644 --- a/avm/res/db-for-my-sql/flexible-server/version.json +++ b/avm/res/db-for-my-sql/flexible-server/version.json @@ -1,6 +1,6 @@ { "$schema": "https://aka.ms/bicep-registry-module-version-file-schema#", - "version": "0.1", + "version": "0.2", "pathFilters": [ "./main.json" ] diff --git a/avm/utilities/pipelines/staticValidation/psrule/ps-rule.yaml b/avm/utilities/pipelines/staticValidation/psrule/ps-rule.yaml index 3f1c9005fa..ac04f433c9 100644 --- a/avm/utilities/pipelines/staticValidation/psrule/ps-rule.yaml +++ b/avm/utilities/pipelines/staticValidation/psrule/ps-rule.yaml @@ -80,3 +80,4 @@ rule: - Azure.KeyVault.PurgeProtect - Azure.VM.UseHybridUseBenefit - Azure.AppConfig.PurgeProtect + - Azure.MySQL.MaintenanceWindow # Must be excluded until https://msdata.visualstudio.com/Database%20Systems/_workitems/edit/2788114 is fixed