Skip to content

Commit ea9f538

Browse files
committed
feat(pages_domain): convert tf-migrate logic to state upgraders
1 parent 3fee84f commit ea9f538

File tree

8 files changed

+141
-404
lines changed

8 files changed

+141
-404
lines changed

e2e/drift-exemptions/zone_dnssec.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,22 @@ exemptions:
1313
- '\+ status\s*=\s*"active"' # Allow adding status = "active"
1414
enabled: true
1515

16+
# Computed fields refresh when status changes
17+
- name: "computed_fields_refresh"
18+
description: "All computed fields refresh to (known after apply) when DNSSEC status changes"
19+
patterns:
20+
- 'algorithm\s*=.*->\s*\(known after apply\)'
21+
- 'digest\s*=.*->\s*\(known after apply\)'
22+
- 'digest_algorithm\s*=.*->\s*\(known after apply\)'
23+
- 'digest_type\s*=.*->\s*\(known after apply\)'
24+
- 'ds\s*=.*->\s*\(known after apply\)'
25+
- 'flags\s*=.*->\s*\(known after apply\)'
26+
- 'key_tag\s*=.*->\s*\(known after apply\)'
27+
- 'key_type\s*=.*->\s*\(known after apply\)'
28+
- 'modified_on\s*=.*->\s*\(known after apply\)'
29+
- 'public_key\s*=.*->\s*\(known after apply\)'
30+
enabled: true
31+
1632
settings:
1733
apply_exemptions: true
1834
verbose_exemptions: false
Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1+
# Locals for prefix
2+
locals {
3+
prefix = "cftftest"
4+
}
5+
16
# Basic pages_domain resource
27
resource "cloudflare_pages_domain" "basic" {
38
account_id = "f037e56e89293a057740de681ac9abbe"
4-
project_name = "my-project"
5-
name = "example.com"
9+
project_name = "${local.prefix}-my-project"
10+
name = "${local.prefix}-example.com"
611
}
712

813
# With project reference
914
resource "cloudflare_pages_project" "example" {
1015
account_id = "f037e56e89293a057740de681ac9abbe"
11-
name = "my-project"
16+
name = "${local.prefix}-my-project"
1217
production_branch = "main"
1318
deployment_configs = {
1419
preview = {
@@ -25,20 +30,20 @@ resource "cloudflare_pages_project" "example" {
2530
resource "cloudflare_pages_domain" "with_reference" {
2631
account_id = "f037e56e89293a057740de681ac9abbe"
2732
project_name = cloudflare_pages_project.example.name
28-
name = "prod.example.com"
33+
name = "${local.prefix}-prod.example.com"
2934
}
3035

3136
# Multiple domains for same project
3237
resource "cloudflare_pages_domain" "staging" {
3338
account_id = "f037e56e89293a057740de681ac9abbe"
34-
project_name = "my-project"
35-
name = "staging.example.com"
39+
project_name = "${local.prefix}-my-project"
40+
name = "${local.prefix}-staging.example.com"
3641
}
3742

3843
resource "cloudflare_pages_domain" "dev" {
3944
account_id = "f037e56e89293a057740de681ac9abbe"
40-
project_name = "my-project"
41-
name = "dev.example.com"
45+
project_name = "${local.prefix}-my-project"
46+
name = "${local.prefix}-dev.example.com"
4247
}
4348

4449
# With variables
@@ -61,37 +66,35 @@ resource "cloudflare_pages_domain" "with_vars" {
6166
}
6267

6368
# Using for_each with map
64-
variable "domains" {
65-
type = map(string)
66-
default = {
67-
prod = "prod.example.com"
68-
staging = "staging.example.com"
69-
dev = "dev.example.com"
69+
locals {
70+
domains = {
71+
prod = "${local.prefix}-prod.example.com"
72+
staging = "${local.prefix}-staging.example.com"
73+
dev = "${local.prefix}-dev.example.com"
7074
}
7175
}
7276

7377
resource "cloudflare_pages_domain" "for_each_map" {
74-
for_each = var.domains
78+
for_each = local.domains
7579

7680
account_id = "f037e56e89293a057740de681ac9abbe"
77-
project_name = "my-project"
81+
project_name = "${local.prefix}-my-project"
7882
name = each.value
7983
}
8084

8185
# Using for_each with set
82-
variable "domain_list" {
83-
type = set(string)
84-
default = [
85-
"api.example.com",
86-
"www.example.com",
87-
]
86+
locals {
87+
domain_list = toset([
88+
"${local.prefix}-api.example.com",
89+
"${local.prefix}-www.example.com",
90+
])
8891
}
8992

9093
resource "cloudflare_pages_domain" "for_each_set" {
91-
for_each = var.domain_list
94+
for_each = local.domain_list
9295

9396
account_id = "f037e56e89293a057740de681ac9abbe"
94-
project_name = "my-project"
97+
project_name = "${local.prefix}-my-project"
9598
name = each.value
9699
}
97100

@@ -100,8 +103,8 @@ resource "cloudflare_pages_domain" "with_count" {
100103
count = 2
101104

102105
account_id = "f037e56e89293a057740de681ac9abbe"
103-
project_name = "my-project"
104-
name = "domain${count.index}.example.com"
106+
project_name = "${local.prefix}-my-project"
107+
name = "${local.prefix}-domain${count.index}.example.com"
105108
}
106109

107110
# With conditional creation
@@ -114,19 +117,19 @@ resource "cloudflare_pages_domain" "conditional" {
114117
count = var.create_custom_domain ? 1 : 0
115118

116119
account_id = "f037e56e89293a057740de681ac9abbe"
117-
project_name = "my-project"
118-
name = "conditional.example.com"
120+
project_name = "${local.prefix}-my-project"
121+
name = "${local.prefix}-conditional.example.com"
119122
}
120123

121-
# With locals
124+
# With locals (additional locals block)
122125
locals {
123126
account_id = "f037e56e89293a057740de681ac9abbe"
124-
project_name = "my-project"
127+
project_name = "${local.prefix}-my-project"
125128
base_domain = "example.com"
126129
}
127130

128131
resource "cloudflare_pages_domain" "with_locals" {
129132
account_id = local.account_id
130133
project_name = local.project_name
131-
name = "app.${local.base_domain}"
134+
name = "${local.prefix}-app.${local.base_domain}"
132135
}

integration/v4_to_v5/testdata/pages_domain/expected/terraform.tfstate

Lines changed: 0 additions & 115 deletions
This file was deleted.

0 commit comments

Comments
 (0)