# Individually-managed authoritative records for the unkin.net zone.
# DNSRecords must live in the same namespace as their BindZone (the operator
# resolves zoneRef/clusterRef/updateKeyRef within the record's namespace), so
# these sit alongside the zone in bind-internal, not in the app namespace.
---
apiVersion: bind.unkin.net/v1alpha1
kind: DNSRecord
metadata:
  # "internal" in the name distinguishes this from the external DNS that
  # Authentik will manage its own records from later.
  name: identity-dns-internal
  namespace: bind-internal
spec:
  zoneRef: unkin-net
  name: identity
  type: A
  ttl: 600
  values:
    # traefik-internal gateway VIP; the authentik Gateway serves the
    # identity.unkin.net hostname there.
    - 198.18.200.4
---
# PRODUCTION CUTOVER RECORD — intentionally commented out.
# git.unkin.net currently resolves to the LIVE VM forge (HAProxy VRRP VIP
# 198.18.19.17), which holds every repo the estate depends on. Uncommenting this
# repoints the whole org's git.unkin.net at the new k8s Gitea gateway VIP, so it
# is the FINAL step of the forge migration — gated on the data migration (gitea
# dump/restore + SECRET_KEY copy) in argocd-apps docs/gitea-migration.md.
# NOTE: the live git.unkin.net answer is served by the puppet DNS master today
# (profiles::dns::master, records from PuppetDB); this k8s apex zone holds only
# SOA+NS + a few DNSRecords so far. Confirm the k8s bind cluster is the live
# authority for unkin.net (or update the puppet record instead) before relying
# on this CR at cutover.
# ---
# apiVersion: bind.unkin.net/v1alpha1
# kind: DNSRecord
# metadata:
#   name: git-dns-internal
#   namespace: bind-internal
# spec:
#   zoneRef: unkin-net
#   name: git
#   type: A
#   ttl: 600
#   values:
#     # traefik-internal gateway VIP; the gitea Gateway serves git.unkin.net there.
#     - 198.18.200.4
---
apiVersion: bind.unkin.net/v1alpha1
kind: DNSRecord
metadata:
  name: s3-ceph-cname
  namespace: bind-internal
spec:
  zoneRef: ceph-unkin-net
  name: s3
  type: CNAME
  ttl: 600
  values:
    # radosgw S3 endpoint. Points at the Consul service for now; the real
    # target will be changed later.
    - radosgw.service.consul.
---
apiVersion: bind.unkin.net/v1alpha1
kind: DNSRecord
metadata:
  name: dashboard-ceph-cname
  namespace: bind-internal
spec:
  zoneRef: ceph-unkin-net
  name: dashboard
  type: CNAME
  ttl: 600
  values:
    # Ceph mgr dashboard, reached via lb1. Lets in-cluster clients (the
    # cephrgw-operator) resolve dashboard.ceph.unkin.net.
    - lb1.unkin.net.
---
apiVersion: bind.unkin.net/v1alpha1
kind: DNSRecord
metadata:
  name: lb1-unkin-net
  namespace: bind-internal
spec:
  zoneRef: unkin-net
  name: lb1
  type: A
  ttl: 600
  values:
    - 103.216.191.185
---
apiVersion: bind.unkin.net/v1alpha1
kind: DNSRecord
metadata:
  name: ghp-dns-internal
  namespace: bind-internal
spec:
  zoneRef: unkin-net
  name: ghp
  type: A
  ttl: 600
  values:
    # traefik-internal gateway VIP; the ghp Gateway serves ghp.unkin.net there.
    - 198.18.200.4
---
apiVersion: bind.unkin.net/v1alpha1
kind: DNSRecord
metadata:
  name: arrstack-dns-internal
  namespace: bind-internal
spec:
  zoneRef: unkin-net
  name: arrstack
  type: A
  ttl: 600
  values:
    # traefik-EXTERNAL (DMZ) gateway VIP; the arrproxy Gateway serves the
    # arrstack.unkin.net front door (oauth2-proxy) there.
    - 198.18.199.0
---
apiVersion: bind.unkin.net/v1alpha1
kind: DNSRecord
metadata:
  name: logviewer-dns-internal
  namespace: bind-internal
spec:
  zoneRef: unkin-net
  name: logviewer
  type: A
  ttl: 600
  values:
    # traefik-internal gateway VIP; the logviewer Gateway serves
    # logviewer.unkin.net there.
    - 198.18.200.4
