Skip to main content
Platform-provided resource. Datum operates this resource; you typically reference or read it rather than create it. See Platform resources.
API resource reference for DNSZoneClass. See Platform resources for related platform-provided resources. A DNSZone selects a class through its spec.dnsZoneClassName. To read or inspect, see Reading resources. For the underlying concept, see Domains & DNS.
This resource is part of the v1alpha1 API and is subject to change. Fields and behavior may evolve in future releases.

Identity

Groupdns.networking.miloapis.com
Versionv1alpha1
KindDNSZoneClass
ScopePlatform

Overview

A DNSZoneClass describes a class of DNS zone: which downstream controller or backend implementation serves the zones that reference it, and the default behavior applied to those zones. You define a DNSZoneClass once, at the Platform level, so that individual DNS zones can select a backend (for example, powerdns or hickory) along with default TTLs and a nameserver-assignment policy.

Spec fields

FieldTypeRequiredDescription
spec.controllerNamestringYesIdentifies the downstream controller/backend implementation (e.g., powerdns, hickory).
spec.defaultsObjectNoProvides optional default values applied to managed zones.
spec.defaults.defaultTTLintegerNoDefault TTL applied to records when not otherwise specified.
spec.nameServerPolicyObjectNoDefines how nameservers are assigned for zones using this class.
spec.nameServerPolicy.modestringYesWhich policy to use. Enum: Static.
spec.nameServerPolicy.staticObjectNoA static list of authoritative nameservers when mode == "Static".
spec.nameServerPolicy.static.servers[]stringYesThe authoritative nameservers.
spec.nameServerPolicy.mode and spec.nameServerPolicy.static.servers are only required when their parent object is present. The single top-level required field is spec.controllerName.

Status fields (read-only)

FieldTypeDescription
status.conditions[]ObjectRepresent the current state of the resource. Common types include Accepted and Programmed to standardize readiness reporting across controllers.

Usage

apiVersion: dns.networking.miloapis.com/v1alpha1
kind: DNSZoneClass
metadata:
  name: powerdns
spec:
  controllerName: powerdns
# Create or update the DNSZoneClass
datumctl apply -f dnszoneclass.yaml

# List all DNSZoneClasses
datumctl get dnszoneclasses

# Inspect a single DNSZoneClass
datumctl describe dnszoneclass powerdns
Run datumctl explain dnszoneclasses --recursive to see the full, live field tree for this resource.
Last modified on July 2, 2026