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

Destroy on cloudflare_authenticated_origin_pulls disables instead of deleting #4648

Open
3 tasks done
PhilipSkinner opened this issue Nov 22, 2024 · 3 comments
Open
3 tasks done
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/stale triage/needs-information Indicates an issue needs more information in order to work on it.

Comments

@PhilipSkinner
Copy link

PhilipSkinner commented Nov 22, 2024

Confirmation

  • This is a bug with an existing resource and is not a feature request or enhancement. Feature requests should be submitted with Cloudflare Support or your account team.
  • I have searched the issue tracker and my issue isn't already found.
  • I have replicated my issue using the latest version of the provider and it is still present.

Terraform and Cloudflare provider version

Terraform: 1.6.6
Provider: 4.46.0

Affected resource(s)

cloudflare_authenticated_origin_pulls

Terraform configuration files

resource "cloudflare_authenticated_origin_pulls" "my_per_hostname_aop" {
  zone_id                                = "..."
  authenticated_origin_pulls_certificate = "..."
  hostname                               = "..."
  enabled                                = true
}

Link to debug output

N/A

Panic output

No response

Expected output

Enabled flag set to null as per the documentation: https://developers.cloudflare.com/api/operations/per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication

Actual output

Enabled flag set to false, which disables the association but does not destroy it - see documentation: https://developers.cloudflare.com/api/operations/per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication

Steps to reproduce

  • Create a cloudflare_authenticated_origin_pulls via tf plan/apply etc
  • Destroy the resource using tf destroy
  • Query the cloudflare API and verify that the association has not been removed:

curl -X GET "https://api.cloudflare.com/client/v4/zones/${cloudflare_zone}/origin_tls_client_auth/hostnames?page=${page}" --header "X-Auth-Email: $CLOUDFLARE_USER" --header "X-Auth-Key: $CLOUDFLARE_KEY"

Additional factoids

See: https://github.com/cloudflare/terraform-provider-cloudflare/blob/master/internal/sdkv2provider/resource_cloudflare_authenticated_origin_pulls.go#L126

References

No response

@PhilipSkinner PhilipSkinner added kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Nov 22, 2024
Copy link
Contributor

Community Note

Voting for Prioritization

  • Please vote on this issue by adding a 👍 reaction to the original post to help the community and maintainers prioritize this request.
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.

Volunteering to Work on This Issue

  • If you are interested in working on this issue, please leave a comment.
  • If this would be your first contribution, please review the contribution guide.

Copy link
Contributor

Thank you for reporting this issue! For maintainers to dig into issues it is required that all issues include the entirety of TF_LOG=DEBUG output to be provided. The only parts that should be redacted are your user credentials in the X-Auth-Key, X-Auth-Email and Authorization HTTP headers. Details such as zone or account identifiers are not considered sensitive but can be redacted if you are very cautious. This log file provides additional context from Terraform, the provider and the Cloudflare API that helps in debugging issues. Without it, maintainers are very limited in what they can do and may hamper diagnosis efforts.

This issue has been marked with triage/needs-information and is unlikely to receive maintainer attention until the log file is provided making this a complete bug report.

@github-actions github-actions bot added triage/needs-information Indicates an issue needs more information in order to work on it. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Nov 22, 2024
PhilipSkinner pushed a commit to PhilipSkinner/terraform-provider-cloudflare that referenced this issue Nov 22, 2024
…or nil)

in order for the association to be destroyed. Setting this to false keeps the
association in a disabled state instead of destroying the resource.

Documentation on this API endpoint can be found here:

https://developers.cloudflare.com/api/operations/per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication

Referencing issue raised on provider:

cloudflare#4648
PhilipSkinner pushed a commit to PhilipSkinner/terraform-provider-cloudflare that referenced this issue Nov 22, 2024
…or nil)

in order for the association to be destroyed. Setting this to false keeps the
association in a disabled state instead of destroying the resource.

Documentation on this API endpoint can be found here:

https://developers.cloudflare.com/api/operations/per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication

Referencing issue raised on provider:

cloudflare#4648
PhilipSkinner pushed a commit to PhilipSkinner/cloudflare-go that referenced this issue Nov 27, 2024
the API docs state that in order to delete an instance the enabled
flag must be set to null.

API docs can be found here:

https://developers.cloudflare.com/api/operations/per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication

This fix is required to correct an issue with the cloudflare terraform
provider which is currently failing to destroy these resources correctly.

This can lead to a hard lock of mtls certificates and origin pulls configured
on them as the cloudflare API contains validation bugs on the endpoint
documented on the URL above.

Issue raised on the terraform provider:

cloudflare/terraform-provider-cloudflare#4648

PR raised to fix this on the terraform provider:

cloudflare/terraform-provider-cloudflare#4649
PhilipSkinner pushed a commit to PhilipSkinner/cloudflare-go that referenced this issue Nov 27, 2024
the API docs state that in order to delete an instance the enabled
flag must be set to null.

API docs can be found here:

https://developers.cloudflare.com/api/operations/per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication

This fix is required to correct an issue with the cloudflare terraform
provider which is currently failing to destroy these resources correctly.

This can lead to a hard lock of mtls certificates and origin pulls configured
on them as the cloudflare API contains validation bugs on the endpoint
documented on the URL above.

Issue raised on the terraform provider:

cloudflare/terraform-provider-cloudflare#4648

PR raised to fix this on the terraform provider:

cloudflare/terraform-provider-cloudflare#4649
veggiedefender pushed a commit to veggiedefender/terraform-provider-cloudflare that referenced this issue Dec 4, 2024
…or nil)

in order for the association to be destroyed. Setting this to false keeps the
association in a disabled state instead of destroying the resource.

Documentation on this API endpoint can be found here:

https://developers.cloudflare.com/api/operations/per-hostname-authenticated-origin-pull-enable-or-disable-a-hostname-for-client-authentication

Referencing issue raised on provider:

cloudflare#4648
Copy link
Contributor

Marking this issue as stale due to 30 days of inactivity. This helps our maintainers find and focus on the active issues. If this issue receives no comments in the next 7 days it will automatically be closed. Maintainers can also remove the lifecycle/stale label.
If this issue was automatically closed and you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. lifecycle/stale triage/needs-information Indicates an issue needs more information in order to work on it.
Projects
None yet
Development

No branches or pull requests

1 participant