π‘ cf-terraforming: Export Cloudflare DNS into β Executive Summary
Technical architectural analysis, practical configuration manifests, and deployment instructions for cf-terraforming: Export Cloudflare DNS into.
installation
- brew
bash
brew tap cloudflare/cloudflare
brew install cloudflare/cloudflare/cf-terraforming
- go
bash
go install github.com/cloudflare/cf-terraforming/cmd/cf-terraforming@latest
- amd64
bash
# latest μ°ΎκΈ°
version=$(curl -I https://github.com/cloudflare/cf-terraforming/releases/latest | grep -i location | sed 's%location: https://github.com/cloudflare/cf-terraforming/releases/tag/v%%g' | tr -d '\r')
wget https://github.com/cloudflare/cf-terraforming/releases/download/v${version}/cf-terraforming_${version}_linux_amd64.tar.gz
tar xvzf cf-terraforming_${version}_linux_amd64.tar.gz
sudo mv ./cf-terraforming /usr/local/bin/cf-terraforming
Exec
bash
export CLOUDFLARE_EMAIL=
export CLOUDFLARE_API_TOKEN=
export CLOUDFLARE_ZONE_ID=
export CLOUDFLARE_ACCOUNT_ID=
# Zone-Type Resources
cf-terraforming generate --email $CLOUDFLARE_EMAIL --token $CLOUDFLARE_API_TOKEN -z $CLOUDFLARE_ZONE_ID --resource-type cloudflare_record > main-record.tf
cf-terraforming generate --email $CLOUDFLARE_EMAIL --token $CLOUDFLARE_API_TOKEN -z $CLOUDFLARE_ZONE_ID --resource-type cloudflare_zone_settings_override > main-zone_settings_override.tf
# Account-Type Resources
cf-terraforming generate --email $CLOUDFLARE_EMAIL --token $CLOUDFLARE_API_TOKEN -a $CLOUDFLARE_ACCOUNT_ID --resource-type cloudflare_access_application > main-access_application.tf
cf-terraforming generate --email $CLOUDFLARE_EMAIL --token $CLOUDFLARE_API_TOKEN -a $CLOUDFLARE_ACCOUNT_ID --resource-type cloudflare_tunnel > main-cloudflare_tunnel.tf
.cf-terraforming.yaml usage example
bash
# Home dir μ¬μ©μ --config μ κ±° κ°λ₯
vi ~/.cf-terraforming.yaml
cf-terraforming generate --resource-type cloudflare_record
# νΉμ dir μ¬μ©μ
vi ./.cf-terraforming.yaml
cf-terraforming generate --resource-type cloudflare_record --config .cf-terraforming.yaml
for-loop
bash
#!/bin/bash
zone_config="--config .cf-terraforming-zone.yaml"
account_config="--config .cf-terraforming-account.yaml"
resource_names=(
...
)
for resource_name in "${resource_names[@]}"; do
cf-terraforming generate $zone_config --resource-type $resource_name > cf-zone/main-${resource_name}.tf
cf-terraforming generate $account_config --resource-type $resource_name > cf-account/main-${resource_name}.tf
don
Resources of Provider Release
provider v4 all
| Resource | Resource Scope | Generate Supported | Import Supported |
| [cloudflare\_access\_application](https://www.terraform.io/docs/providers/cloudflare/r/access_application) | Account | β | β |
| [cloudflare\_access\_group](https://www.terraform.io/docs/providers/cloudflare/r/access_group) | Account | β | β |
| [cloudflare\_access\_identity\_provider](https://www.terraform.io/docs/providers/cloudflare/r/access_identity_provider) | Account | β | β |
| [cloudflare\_access\_mutual\_tls\_certificate](https://www.terraform.io/docs/providers/cloudflare/r/access_mutual_tls_certificate) | Account | β | β |
| [cloudflare\_access\_policy](https://www.terraform.io/docs/providers/cloudflare/r/access_policy) | Account | β | β |
| [cloudflare\_access\_rule](https://www.terraform.io/docs/providers/cloudflare/r/access_rule) | Account | β | β |
| [cloudflare\_access\_service\_token](https://www.terraform.io/docs/providers/cloudflare/r/access_service_token) | Account | β | β |
| [cloudflare\_account\_member](https://www.terraform.io/docs/providers/cloudflare/r/account_member) | Account | β | β |
| [cloudflare\_api\_shield](https://www.terraform.io/docs/providers/cloudflare/r/api_shield) | Zone | β | β |
| [cloudflare\_api\_token](https://www.terraform.io/docs/providers/cloudflare/r/api_token) | User | β | β |
| [cloudflare\_argo](https://www.terraform.io/docs/providers/cloudflare/r/argo) | Zone | β | β |
| [cloudflare\_authenticated\_origin\_pulls](https://www.terraform.io/docs/providers/cloudflare/r/authenticated_origin_pulls) | Zone | β | β |
| [cloudflare\_authenticated\_origin\_pulls\_certificate](https://www.terraform.io/docs/providers/cloudflare/r/authenticated_origin_pulls_certificate) | Zone | β | β |
| [cloudflare\_bot\_management](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/bot_management) | Zone | β | β |
| [cloudflare\_byo\_ip\_prefix](https://www.terraform.io/docs/providers/cloudflare/r/byo_ip_prefix) | Account | β | β |
| [cloudflare\_certificate\_pack](https://www.terraform.io/docs/providers/cloudflare/r/certificate_pack) | Zone | β | β |
| [cloudflare\_custom\_hostname](https://www.terraform.io/docs/providers/cloudflare/r/custom_hostname) | Zone | β | β |
| [cloudflare\_custom\_hostname\_fallback\_origin](https://www.terraform.io/docs/providers/cloudflare/r/custom_hostname_fallback_origin) | Account | β | β |
| [cloudflare\_custom\_pages](https://www.terraform.io/docs/providers/cloudflare/r/custom_pages) | Account or Zone | β | β |
| [cloudflare\_custom\_ssl](https://www.terraform.io/docs/providers/cloudflare/r/custom_ssl) | Zone | β | β |
| [cloudflare\_filter](https://www.terraform.io/docs/providers/cloudflare/r/filter) | Zone | β | β |
| [cloudflare\_firewall\_rule](https://www.terraform.io/docs/providers/cloudflare/r/firewall_rule) | Zone | β | β |
| [cloudflare\_healthcheck](https://www.terraform.io/docs/providers/cloudflare/r/healthcheck) | Zone | β | β |
| [cloudflare\_ip\_list](https://www.terraform.io/docs/providers/cloudflare/r/ip_list) | Account | β | β |
| [cloudflare\_list](https://www.terraform.io/docs/providers/cloudflare/r/list) | Account | β | β |
| [cloudflare\_load\_balancer](https://www.terraform.io/docs/providers/cloudflare/r/load_balancer) | Zone | β | β |
| [cloudflare\_load\_balancer\_monitor](https://www.terraform.io/docs/providers/cloudflare/r/load_balancer_monitor) | Account | β | β |
| [cloudflare\_load\_balancer\_pool](https://www.terraform.io/docs/providers/cloudflare/r/load_balancer_pool) | Account | β | β |
| [cloudflare\_logpull\_retention](https://www.terraform.io/docs/providers/cloudflare/r/logpull_retention) | Zone | β | β |
| [cloudflare\_logpush\_job](https://www.terraform.io/docs/providers/cloudflare/r/logpush_job) | Zone | β | β |
| [cloudflare\_logpush\_ownership\_challenge](https://www.terraform.io/docs/providers/cloudflare/r/logpush_ownership_challenge) | Zone | β | β |
| [cloudflare\_magic\_firewall\_ruleset](https://www.terraform.io/docs/providers/cloudflare/r/magic_firewall_ruleset) | Account | β | β |
| [cloudflare\_origin\_ca\_certificate](https://www.terraform.io/docs/providers/cloudflare/r/origin_ca_certificate) | Zone | β | β |
| [cloudflare\_page\_rule](https://www.terraform.io/docs/providers/cloudflare/r/page_rule) | Zone | β | β |
| [cloudflare\_rate\_limit](https://www.terraform.io/docs/providers/cloudflare/r/rate_limit) | Zone | β | β |
| [cloudflare\_record](https://www.terraform.io/docs/providers/cloudflare/r/record) | Zone | β | β |
| [cloudflare\_ruleset](https://www.terraform.io/docs/providers/cloudflare/r/ruleset) | Account or Zone | β | β |
| [cloudflare\_spectrum\_application](https://www.terraform.io/docs/providers/cloudflare/r/spectrum_application) | Zone | β | β |
| [cloudflare\_tiered\_cache](https://www.terraform.io/docs/providers/cloudflare/r/tiered_cache) | Zone | β | β |
| [cloudflare\_teams\_list](https://www.terraform.io/docs/providers/cloudflare/r/teams_list) | Account | β | β |
| [cloudflare\_teams\_location](https://www.terraform.io/docs/providers/cloudflare/r/teams_location) | Account | β | β |
| [cloudflare\_teams\_proxy\_endpoint](https://www.terraform.io/docs/providers/cloudflare/r/teams_proxy_endpoint) | Account | β | β |
| [cloudflare\_teams\_rule](https://www.terraform.io/docs/providers/cloudflare/r/teams_rule) | Account | β | β |
| [cloudflare\_tunnel](https://www.terraform.io/docs/providers/cloudflare/r/tunnel) | Account | β | β |
| [cloudflare\_turnstile\_widget](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/turnstile_widget) | Account | β | β |
| [cloudflare\_url\_normalization\_settings](https://www.terraform.io/docs/providers/cloudflare/r/url_normalization_settings) | Zone | β | β |
| [cloudflare\_waf\_group](https://www.terraform.io/docs/providers/cloudflare/r/waf_group) | Zone | β | β |
| [cloudflare\_waf\_override](https://www.terraform.io/docs/providers/cloudflare/r/waf_override) | Zone | β | β |
| [cloudflare\_waf\_package](https://www.terraform.io/docs/providers/cloudflare/r/waf_package) | Zone | β | β |
| [cloudflare\_waf\_rule](https://www.terraform.io/docs/providers/cloudflare/r/waf_rule) | Zone | β | β |
| [cloudflare\_waiting\_room](https://www.terraform.io/docs/providers/cloudflare/r/waiting_room) | Zone | β | β |
| [cloudflare\_worker\_cron\_trigger](https://www.terraform.io/docs/providers/cloudflare/r/worker_cron_trigger) | Account | β | β |
| [cloudflare\_worker\_route](https://www.terraform.io/docs/providers/cloudflare/r/worker_route) | Zone | β | β |
| [cloudflare\_worker\_script](https://www.terraform.io/docs/providers/cloudflare/r/worker_script) | Account | β | β |
| [cloudflare\_workers\_kv](https://www.terraform.io/docs/providers/cloudflare/r/workers_kv) | Account | β | β |
| [cloudflare\_workers\_kv\_namespace](https://www.terraform.io/docs/providers/cloudflare/r/workers_kv_namespace) | Account | β | β |
| [cloudflare\_zone](https://www.terraform.io/docs/providers/cloudflare/r/zone) | Account | β | β |
| [cloudflare\_zone\_dnssec](https://www.terraform.io/docs/providers/cloudflare/r/zone_dnssec) | Zone | β | β |
| [cloudflare\_zone\_lockdown](https://www.terraform.io/docs/providers/cloudflare/r/zone_lockdown) | Zone | β | β |
| [cloudflare\_zone\_settings\_override](https://www.terraform.io/docs/providers/cloudflare/r/zone_settings_override) | Zone | β | β |
provider v5 importable
Any resources not listed may have known issues or may not yet support import.
| Resource Type | Identifier Type | CLI Flags Example |
|---|---|---|
| cloudflare_account | account | |
| cloudflare_account_member | account | |
| cloudflare_address_map | account | |
| cloudflare_api_shield_operation | zone | |
| cloudflare_bot_management | zone | |
| cloudflare_certificate_pack | zone | |
| cloudflare_custom_hostname | zone | |
| cloudflare_custom_hostname_fallback_origin | zone | |
| cloudflare_d1_database | account | |
| cloudflare_dns_firewall | account | |
| cloudflare_dns_record | zone | |
| cloudflare_dns_zone_transfers_acl | account | |
| cloudflare_dns_zone_transfers_incoming | zone | |
| cloudflare_dns_zone_transfers_outgoing | zone | |
| cloudflare_dns_zone_transfers_peer | account | |
| cloudflare_dns_zone_transfers_tsig | account | |
| cloudflare_email_routing_address | account | |
| cloudflare_email_routing_catch_all | zone | |
| cloudflare_email_routing_dns | zone | |
| cloudflare_email_routing_rule | zone | |
| cloudflare_email_routing_settings | zone | |
| cloudflare_email_security_block_sender | account | |
| cloudflare_email_security_impersonation_registry | account | |
| cloudflare_email_security_trusted_domains | account | |
| cloudflare_filter | zone | |
| cloudflare_healthcheck | zone | |
| cloudflare_hostname_tls_setting | zone | cloudflare_hostname_tls_setting=ciphers,min_tls_version |
| cloudflare_keyless_certificate | zone | |
| cloudflare_list | account | |
| cloudflare_list_item | account | cloudflare_list_item=2a4b8b2017aa4b3cb9e1151b52c81d22 |
| cloudflare_load_balancer | zone | |
| cloudflare_load_balancer_monitor | account | |
| cloudflare_load_balancer_pool | account | |
| cloudflare_logpush_job | account or zone | |
| cloudflare_managed_transforms | zone | |
| cloudflare_mtls_certificate | account | |
| cloudflare_notification_policy | account | |
| cloudflare_notification_policy_webhooks | account | |
| cloudflare_origin_ca_certificate | zone | |
| cloudflare_page_rule | zone | |
| cloudflare_page_shield_policy | zone | |
| cloudflare_pages_domain | account | cloudflare_pages_domain=ykfjmcgpfs |
| cloudflare_pages_project | account | |
| cloudflare_queue | account | |
| cloudflare_r2_bucket | account | |
| cloudflare_r2_custom_domain | account | cloudflare_r2_custom_domain=jb-test-bucket,bnfywlzwpt |
| cloudflare_r2_managed_domain | account | cloudflare_r2_managed_domain=jb-test-bucket,bnfywlzwpt |
| cloudflare_rate_limit | zone | |
| cloudflare_regional_hostname | zone | |
| cloudflare_regional_tiered_cache | zone | |
| cloudflare_ruleset | account or zone | |
| cloudflare_spectrum_application | zone | |
| cloudflare_tiered_cache | zone | |
| cloudflare_total_tls | zone | |
| cloudflare_turnstile_widget | account | |
| cloudflare_url_normalization_settings | zone | |
| cloudflare_waiting_room | zone | |
| cloudflare_waiting_room_event | zone | cloudflare_waiting_room_event=e7f9e4c190ea8d6c66cab32ac110f39a |
| cloudflare_waiting_room_rules | zone | cloudflare_waiting_room_rules=8bbd1b13450f6c63ab6ab4e08a63762d |
| cloudflare_waiting_room_settings | zone | |
| cloudflare_web3_hostname | zone | |
| cloudflare_web_analytics_rule | account | cloudflare_web_analytics_rule=2fa89d8f-35f7-49ef-87d3-f24e866a5d5e |
| cloudflare_web_analytics_site | account | |
| cloudflare_workers_custom_domain | account | |
| cloudflare_workers_for_platforms_dispatch_namespace | account | |
| cloudflare_workers_kv_namespace | account | |
| cloudflare_zero_trust_access_application | account or zone |




Leave a Reply