Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

azurerm_linux_function_app azurerm_function_app_slot azurerm_windows_function_app azurerm_windows_function_app - taint resource when resource was partially created. #24520

Merged
merged 1 commit into from
Apr 8, 2024

Conversation

lonegunmanb
Copy link
Contributor

@lonegunmanb lonegunmanb commented Jan 17, 2024

This pr should resolve #24517.

#24517 was caused by the following code:

                        if functionApp.ZipDeployFile != "" {
				if err = helpers.GetCredentialsAndPublish(ctx, client, id.ResourceGroup, id.SiteName, functionApp.ZipDeployFile); err != nil {
					return err
				}
			}

			metadata.SetID(id)

Once an error occurred during GetCredentialsAndPublish, the Create function would return error without recording resource's state, but on the service side the resource was partially created, when the user run apply again, the Create function would read a resource with the very same id, then threw an error that required user to import the resource.

This pr pushed metadata.SetID(id) right after we've created the resource.

Actually, this behavior is as same as we're doing for azurerm_linux_web_app_resource and azurerm_linux_web_app_slot.

Once the id was set and Create function returned an error, the resource was recorded in the state file with tainted status, when the user run apply again, Terraform would try to delete the partially created resource first, then try to create it again.

@tombuildsstuff @jackofallops WDYT?

@lonegunmanb lonegunmanb changed the title azurerm_linux_function_app azurerm_function_app_slot azurerm_windows_function_app azurerm_windows_function_app - Taint resource when resource was partially created. azurerm_linux_function_app azurerm_function_app_slot azurerm_windows_function_app azurerm_windows_function_app - taint resource when resource was partially created. Jan 17, 2024
Copy link
Member

@stephybun stephybun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @lonegunmanb LGTM 👍

@stephybun stephybun added the bug label Mar 14, 2024
Copy link
Member

@stephybun stephybun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lonegunmanb would you mind resolving the merge conflicts?

@katbyte
Copy link
Collaborator

katbyte commented Mar 20, 2024

@lonegunmanb - could you fix up these merge conflicts

@lonegunmanb
Copy link
Contributor Author

@stephybun @katbyte sorry for the late reply, would you please give this pr another review? Thanks!

@katbyte katbyte merged commit 4f03524 into hashicorp:main Apr 8, 2024
29 checks passed
@github-actions github-actions bot added this to the v3.99.0 milestone Apr 8, 2024
katbyte added a commit that referenced this pull request Apr 8, 2024
dduportal pushed a commit to jenkins-infra/azure that referenced this pull request Apr 15, 2024
<Actions>
<action
id="f410411e63aff4bb73a81c2aec1d373cf8a903e63b30dee2006b0030d8a94cc8">
        <h3>Bump Terraform `azurerm` provider version</h3>
<details
id="1d9343c012f5434ac9fe8a98135bae3667b399259be16d9b14302ea3bd424a24">
            <summary>Update Terraform lock file</summary>
<p>changes detected:&#xA;&#x9;&#34;hashicorp/azurerm&#34; updated from
&#34;3.98.0&#34; to &#34;3.99.0&#34; in file
&#34;.terraform.lock.hcl&#34;</p>
            <details>
                <summary>3.99.0</summary>
<pre>Changelog retrieved
from:&#xA;&#x9;https://github.com/hashicorp/terraform-provider-azurerm/releases/tag/v3.99.0&#xA;BREAKING
CHANGE: &#xA;&#xA;* `azurerm_linux_web_app` -
`site_config.0.application_stack.0.java_version` must be specified with
`java_server` and `java_server_version`
([#25553](https://github.com/hashicorp/terraform-provider-azurerm/issues/25553))&#xA;&#xA;ENHANCEMENTS:&#xA;&#xA;*
dependencies: updating to `v0.20240411.1104331` of
`github.com/hashicorp/go-azure-sdk/resourcemanager` and
`github.com/hashicorp/go-azure-sdk/sdk`
([#25546](hashicorp/terraform-provider-azurerm#25546
dependencies: updating to `v0.26.1` of
`github.com/tombuildsstuff/giovanni`
([#25551](hashicorp/terraform-provider-azurerm#25551
`azurerm_key_vault` - deprecate the `contact` property from v3.x
provider and update properties to Computed &amp; Optional
([#25552](hashicorp/terraform-provider-azurerm#25552
`azurerm_key_vault_certificate_contacts` - in v4.0 make the `contact`
property optional to allow for deletion of contacts from the key vault
([#25552](hashicorp/terraform-provider-azurerm#25552
`azurerm_signalr_service` - support for setting the `sku` property to
`Premium_P2`
([#25578](hashicorp/terraform-provider-azurerm#25578
`azurerm_snapshot` - support for the `network_access_policy` and
`public_network_access_enabled` properties
([#25421](hashicorp/terraform-provider-azurerm#25421
`azurerm_storage_account` - extend the support level of
`(blob|queue|share)_properties` for Storage kind
([#25427](hashicorp/terraform-provider-azurerm#25427
`azurerm_storage_blob` - support for the `encryption_scope` property
([#25551](hashicorp/terraform-provider-azurerm#25551
`azurerm_storage_container` - support for the `default_encryption_scope`
and `encryption_scope_override_enabled` properties
([#25551](hashicorp/terraform-provider-azurerm#25551
`azurerm_storage_data_lake_gen2_filesystem` - support for the
`default_encryption_scope` property
([#25551](hashicorp/terraform-provider-azurerm#25551
`azurerm_subnet` - the `delegation.x.service_delegation.x.name` property
now supports `Oracle.Database/networkAttachments`
([#25571](hashicorp/terraform-provider-azurerm#25571
`azurerm_web_pubsub` - support setting the `sku` property to
`Premium_P2`
([#25578](https://github.com/hashicorp/terraform-provider-azurerm/issues/25578))&#xA;&#xA;BUG
FIXES:&#xA;&#xA;* provider: fix an issue where the provider was not
correctly configured when using a custom metadata host
([#25546](hashicorp/terraform-provider-azurerm#25546
storage: fix a number of potential crashes during plan/apply with
resources using the Storage data plane API
([#25525](hashicorp/terraform-provider-azurerm#25525
`azurerm_application_insights` - fix issue where the wrong Application
ID was set into the property `app_id`
([#25520](hashicorp/terraform-provider-azurerm#25520
`azurerm_application_insights_api_key` - add a state migration to
re-case static segments of the resource ID
([#25567](hashicorp/terraform-provider-azurerm#25567
`azurerm_container_app_environment_certificate` - the `subject_name`
attribute is now correctly populated
([#25516](hashicorp/terraform-provider-azurerm#25516
`azurerm_function_app_slot` - will now taint the resource when partially
created
([#24520](hashicorp/terraform-provider-azurerm#24520
`azurerm_linux_function_app` - will now taint the resource when
partially created
([#24520](hashicorp/terraform-provider-azurerm#24520
`azurerm_managed_disk` - filtering the Resource SKUs response to reduce
the memory overhead, when determining whether a Managed Disk can be
online resized or not
([#25549](hashicorp/terraform-provider-azurerm#25549
`azurerm_monitor_alert_prometheus_rule_group` - the `severity` property
is now set correctly when `0`
([#25408](hashicorp/terraform-provider-azurerm#25408
`azurerm_monitor_smart_detector_alert_rule` - normalising the value for
`id` within the `action_group` block
([#25559](hashicorp/terraform-provider-azurerm#25559
`azurerm_redis_cache_access_policy_assignment` - the `object_id_alias`
property now allows usernames
([#25523](hashicorp/terraform-provider-azurerm#25523
`azurerm_windows_function_app` - will not taint the resource when
partially created
([#24520](hashicorp/terraform-provider-azurerm#24520
`azurerm_windows_function_app` - will not taint the resource when
partially created
([#24520](https://github.com/hashicorp/terraform-provider-azurerm/issues/24520))&#xA;&#xA;DEPRECATIONS:&#xA;&#xA;*
`azurerm_cosmosdb_account` - the `connection_strings` property has been
superseded by the primary and secondary connection strings for sql,
mongodb and readonly
([#25510](hashicorp/terraform-provider-azurerm#25510
`azurerm_cosmosdb_account` - the `enable_free_tier` property has been
superseded by `free_tier_enabled`
([#25510](hashicorp/terraform-provider-azurerm#25510
`azurerm_cosmosdb_account` - the `enable_multiple_write_locations`
property has been superseded by `multiple_write_locations_enabled`
([#25510](hashicorp/terraform-provider-azurerm#25510
`azurerm_cosmosdb_account` - the `enable_automatic_failover` property
has been superseded by `automatic_failover_enabled`
([#25510](https://github.com/hashicorp/terraform-provider-azurerm/issues/25510))&#xA;&#xA;&#xA;</pre>
            </details>
        </details>
<a
href="https://infra.ci.jenkins.io/job/updatecli/job/azure/job/main/105/">Jenkins
pipeline link</a>
    </action>
</Actions>

---

<table>
  <tr>
    <td width="77">
<img src="https://www.updatecli.io/images/updatecli.png" alt="Updatecli
logo" width="50" height="50">
    </td>
    <td>
      <p>
Created automatically by <a
href="https://www.updatecli.io/">Updatecli</a>
      </p>
      <details><summary>Options:</summary>
        <br />
<p>Most of Updatecli configuration is done via <a
href="https://www.updatecli.io/docs/prologue/quick-start/">its
manifest(s)</a>.</p>
        <ul>
<li>If you close this pull request, Updatecli will automatically reopen
it, the next time it runs.</li>
<li>If you close this pull request and delete the base branch, Updatecli
will automatically recreate it, erasing all previous commits made.</li>
        </ul>
        <p>
Feel free to report any issues at <a
href="https://github.com/updatecli/updatecli/issues">github.com/updatecli/updatecli</a>.<br
/>
If you find this tool useful, do not hesitate to star <a
href="https://github.com/updatecli/updatecli/stargazers">our GitHub
repository</a> as a sign of appreciation, and/or to tell us directly on
our <a
href="https://matrix.to/#/#Updatecli_community:gitter.im">chat</a>!
        </p>
      </details>
    </td>
  </tr>
</table>

Co-authored-by: Jenkins Infra Bot (updatecli) <[email protected]>
Copy link

github-actions bot commented May 9, 2024

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

azurerm_linux_function_app zip deploy failures do not result in a tainted resource
4 participants