Skip to content

Create a partial zone using Terraform

A partial zone lets you use Cloudflare for a subdomain while keeping your existing authoritative DNS provider for the parent domain. This guide shows how to automate the setup using the Cloudflare Terraform provider.

Prerequisites

Create the zone

Add the zone configuration and apply the change to create the zone:

resource "cloudflare_zone" "subdomain_example_com" {
account = {
id = var.cloudflare_account_id
}
name = "subdomain.example.com"
}

Then, in a new Terraform plan and apply cycle, upgrade the zone to a Business plan or higher:

resource "cloudflare_zone_subscription" "example_zone_subscription" {
zone_id = cloudflare_zone.subdomain_example_com.id
frequency = "monthly"
rate_plan = {
id = "business"
currency = "USD"
}
}

Then, again in a new Terraform plan and apply cycle, update your Terraform configuration to add type = "partial" to the zone:

resource "cloudflare_zone" "subdomain_example_com" {
account = {
id = var.cloudflare_account_id
}
name = "subdomain.example.com"
type = "partial"
}

Terraform places the zone in a Pending state. You must add the necessary DNS records and verify domain ownership before Cloudflare activates it.