Skip to main content
API resource reference for DNSRecordSet, part of the DNS service. To create or change one, see Changing resources; to read or inspect, see Reading resources. For the underlying concept, see Domains & DNS.
This resource is part of an alpha API (v1alpha1). Fields and behavior are subject to change without notice.

Identity

Groupdns.networking.miloapis.com
Versionv1alpha1
KindDNSRecordSet
ScopeProject

Overview

A DNSRecordSet defines a set of DNS resource records of a single type (for example, A, AAAA, CNAME, or TXT) within a DNS zone. Each recordset references the DNSZone it belongs to and carries one or more owner names, each with values appropriate for the record type. Use it to publish and manage the DNS records that resolve names in a zone you own.

Spec fields

FieldTypeRequiredDescription
spec.dnsZoneRefObjectYesDNSZoneRef references the DNSZone this recordset belongs to.
spec.dnsZoneRef.namestringNoName of the referent DNSZone.
spec.recordTypestringYesThe DNS RR type for this recordset. One of the enum values A, AAAA, ALIAS, CNAME, and others.
spec.records[]ObjectYesOne or more owner names with values appropriate for the RecordType.
spec.records[].namestringYesThe owner name (relative to the zone or FQDN).
spec.records[].ttlintegerNoOptionally overrides the TTL for this owner/RRset.
spec.records[].aObjectNoValue for an A record. Exactly one type-specific field should be set matching RecordType.
spec.records[].a.contentstringYes*The record value. Required when the a object is set.
spec.records[].aaaaObjectNoValue for an AAAA record.
spec.records[].aliasObjectNoValue for an ALIAS/ANAME-style record; content is a hostname (FQDN or relative) with an optional trailing dot.
spec.records[].caaObjectNoValue for a CAA record.
spec.records[].cnameObjectNoValue for a CNAME record.
spec.records[].cname.contentstringYes*The record value. Required when the cname object is set.
spec.records[].httpsObjectNoValue for an HTTPS record.
spec.records[].mxObjectNoValue for an MX record.
spec.records[].nsObjectNoValue for an NS record.
spec.records[].ptrObjectNoValue for a PTR record.
spec.records[].soaObjectNoValue for an SOA record.
spec.records[].srvObjectNoValue for an SRV record.
spec.records[].svcbObjectNoValue for an SVCB record.
spec.records[].tlsaObjectNoValue for a TLSA record.
spec.records[].txtObjectNoValue for a TXT record.
spec.records[].txt.contentstringYes*The record value. Required when the txt object is set.
Within each entry in spec.records, exactly one type-specific object (a, aaaa, cname, txt, and so on) should be set, matching spec.recordType. Fields marked Yes* are required only when their parent type-specific object is present.

Status fields (read-only)

FieldTypeDescription
status.conditions[]ObjectIncludes Accepted and Programmed readiness.
status.recordSets[]ObjectCaptures per-owner (per name) status and conditions.

Usage

apiVersion: dns.networking.miloapis.com/v1alpha1
kind: DNSRecordSet
metadata:
  name: www-a
spec:
  dnsZoneRef:
    name: example-com
  recordType: A
  records:
    - name: www
      ttl: 300
      a:
        content: 203.0.113.10
# Apply the recordset
datumctl apply -f dnsrecordset.yaml --project my-project

# List DNS recordsets in the project
datumctl get dnsrecordsets --project my-project

# Inspect a specific recordset
datumctl describe dnsrecordset www-a --project my-project
Run datumctl explain dnsrecordsets --recursive to see the full, live field tree for this resource.
Last modified on July 2, 2026