Skip to content

Commit

Permalink
[Terraform] Clarify updates with impact on rule IDs (#18643)
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrosousa authored Dec 9, 2024
1 parent f31d938 commit 1f24a5c
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/content/docs/terraform/troubleshooting/rule-id-changes.mdx
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
pcx_content_type: troubleshooting
title: The rule ID changes when I modify a rule
title: Rule IDs change when I modify a ruleset
sidebar:
label: Rule ID changes
label: Rule IDs change when making updates
---

For [`cloudflare_ruleset`](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/ruleset) resources, the Cloudflare provider may delete a rule and create a new one when you modify a ruleset rule in your Terraform configuration. This happens because the API cannot match rules in your new Terraform configuration with existing rules in your Cloudflare configuration. Modifying a rule in your Terraform configuration and applying the changes will create a new rule with a different rule ID in your Cloudflare account or zone.
For [`cloudflare_ruleset`](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/ruleset) resources, the Cloudflare provider may delete a rule and create a new one when you modify a ruleset in your Terraform configuration. This happens because the API cannot match rules in your new Terraform configuration with existing rules in your Cloudflare configuration. Modifying a ruleset in your Terraform configuration and applying the changes will create new rules with different rule IDs in your Cloudflare account or zone.

This behavior may have an impact on any automation or monitoring systems you may have configured that rely on having immutable rule IDs between rule modifications.

## How to keep the same rule ID between modifications

To keep the existing rule ID when making changes to a rule through Terraform, add a `ref` field to the rule.
To keep existing rule IDs when making changes to a ruleset through Terraform, add a `ref` field to each rule.

The `ref` field is a user-defined external identifier that must be unique for each rule in a ruleset. When you provide a `ref` value, the provider will match the rule in your updated Terraform configuration with the existing rule with the same `ref` external identifier, and the rule ID will be preserved.

Expand All @@ -25,4 +25,4 @@ By default, when you create a rule, its `ref` value will be equal to the rule ID

When you [import your existing Cloudflare configuration to Terraform](/terraform/advanced-topics/import-cloudflare-resources/) using [`cf-terraforming`](https://github.com/cloudflare/cf-terraforming), the generated Terraform configuration will have `ref` values for each rule, with the same value as the rule ID.

If you manually created your Terraform configuration and your rules' configuration does not have a `ref` field, add a `ref` field to each rule so that each rule modification does not generate a new rule ID.
If you manually created your Terraform configuration and your rules' configuration does not have a `ref` field, add a `ref` field to each rule so that each ruleset modification does not generate new rule IDs.

0 comments on commit 1f24a5c

Please sign in to comment.