F5BigDnsLocalZone

The F5BigDnsLocalZone Custom Resource Definition (CRD) defines an authoritative DNS zone on F5 BIG-IP Next. Use this CRD to create and manage DNS zones, including their Start of Authority (SOA) settings, zone options, and resource records.

You can define individual DNS records using the records field, or provide a complete zone file using the zoneFile field. Each zone can be assigned to a specific BIND view using the viewName field, and supports standard zone types including primary, secondary, stub, and forward.

When you create or update an F5BigDnsLocalZone resource, ZoneRunner automatically detects the changes and applies only the necessary updates to BIND, without rebuilding the entire zone.

Parameters

The following tables describe the F5BigDnsLocalZone CR parameters.

metadata

Parameter Description
name The name of the DNS zone.
namespace The namespace where the DNS zone is installed.

Spec

Field

Type

Required

Default

Description

zoneName

string

Yes

—

The fully qualified domain name (FQDN) of the DNS zone (for example, example.com).

zoneType

string

No

primary

The zone type. Valid values: primary, secondary, stub, forward, hint.

viewName

string

No

default

The BIND view this zone belongs to. Must match the viewName of an existing F5BigDnsView resource or be default.

soaMname

string

No

ns1.<zoneName>.

The primary nameserver hostname in the Start of Authority (SOA) record.

soaRname

string

No

hostmaster.<zoneName>.

The responsible person email in the SOA record (use a dot instead of @).

soaRefresh

integer

No

28800

The SOA refresh interval in seconds. Tells secondary servers how often to check for zone updates.

soaRetry

integer

No

7200

The SOA retry interval in seconds. Tells secondary servers how long to wait before retrying a failed refresh.

soaExpire

integer

No

604800

The SOA expire time in seconds. After this time without a successful refresh, secondaries stop serving the zone.

soaMinimum

integer

No

86400

The SOA minimum TTL in seconds. Used as the TTL for negative (NXDOMAIN) responses.

soaSerialStrategy

string

No

increment

Controls how the SOA serial number is updated. Valid values: increment, yyyymmddnn, unixtime.

options

string[]

No

—

BIND zone options in standard syntax (for example, "allow-transfer { 10.0.0.5; }").

zoneFile

string

No

—

Raw zone file content. When set, this overrides soaMname, soaRname, and records.

records

object[]

No

—

DNS resource records for the zone.

records.name

string

Yes

The record name relative to the zone origin. Use @ for the zone apex.

records.type

string

Yes

The DNS record type (for example, A, AAAA, CNAME, MX, NS, TXT, SRV, PTR).

records.ttl

integer

No

3600

The Time to Live (TTL) in seconds.

records.rdata

string

Yes

The record data in standard BIND rdata format.

The admission webhook enforces a maximum of 256 F5BigDnsLocalZone resources per controller namespace.

Configure F5BigDnsLocalZone

Prerequisites

Make sure:

  • BIG-IP Next CNF 2.4 or later is installed and the F5 Ingress controller is running.

  • You have oc access to the CNF cluster with permissions to create Custom Resources.

Apply DNS local zone

  1. Copy the F5BigDnsLocalZone example CR below to a YAML file.

apiVersion: k8s.f5net.com/v1
kind: F5BigDnsLocalZone
metadata:
  name: example-zone
  namespace: default
spec:
  zoneName: example.com
  zoneType: primary
  viewName: default
  soaMname: ns1.example.com
  soaRname: admin.example.com
  soaSerialStrategy: increment
  options:
    - "allow-transfer { 10.0.0.5; }"
    - "also-notify { 10.0.0.10; }"
  records:
    - name: "@"
      type: NS
      ttl: 3600
      rdata: "ns1.example.com."
    - name: "ns1"
      type: A
      ttl: 3600
      rdata: "10.0.0.1"
    - name: "www"
      type: A
      ttl: 300
      rdata: "10.0.0.100"
    - name: "mail"
      type: MX
      ttl: 3600
      rdata: "10 mail.example.com."
    - name: "@"
      type: TXT
      ttl: 3600
      rdata: "\"v=spf1 mx -all\""
    - name: "api"
      type: A
      ttl: 60
      rdata: "10.0.0.50"
    - name: "_sip._tcp"
      type: SRV
      ttl: 3600
      rdata: "0 0 5060 sip.example.com."
    - name: "ipv6"
      type: AAAA
      ttl: 3600
      rdata: "2001:db8::1"
  1. Apply the CR to your cluster:

    oc apply -f example-zone.yaml