Compare commits

..

1 Commits

Author SHA1 Message Date
unkinben 4163bf80b3 Add identity.unkin.net internal DNS record
ci/woodpecker/pr/kubeconform Pipeline is pending
ci/woodpecker/pr/pre-commit Pipeline is pending
identity.unkin.net was configured as the Authentik OIDC issuer but has no DNS
record anywhere, so in-cluster OIDC discovery (e.g. argocd-server) fails to
resolve it. Add an authoritative A record via the bind-operator so the
internal bind system serves it.

- New DNSRecord identity-dns-internal -> 198.18.200.4 (traefik-internal VIP,
  where the authentik Gateway serves the identity.unkin.net hostname).
- Placed in the bind-internal namespace alongside the unkin-net BindZone: the
  operator resolves zoneRef/clusterRef/updateKeyRef within the record's own
  namespace, so it cannot live in the app namespace.
- "internal" in the name distinguishes it from the external DNS Authentik will
  manage its own records from later.
2026-07-15 07:45:59 +10:00
5 changed files with 25 additions and 3 deletions
@@ -6,4 +6,5 @@ resources:
- cluster.yaml
- tsigkey.yaml
- zones.yaml
- records.yaml
- acls.yaml
@@ -0,0 +1,21 @@
# 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
@@ -13,7 +13,7 @@ metadata:
name: bind-tsig-api
namespace: bind-internal
spec:
image: git.unkin.net/unkin/bind-tsig-api:v0.2.3
image: git.unkin.net/unkin/bind-tsig-api:v0.2.2
replicas: 1
port: 8443
# targetNamespace defaults to this resource's namespace (bind-internal), where
+1 -1
View File
@@ -21,7 +21,7 @@ spec:
runAsNonRoot: true
containers:
- name: operator
image: git.unkin.net/unkin/bind-operator:v0.2.3
image: git.unkin.net/unkin/bind-operator:v0.2.2
args:
- --metrics-bind-address=:8080
- --health-probe-bind-address=:8081
+1 -1
View File
@@ -6,6 +6,6 @@ resources:
- namespace.yaml
# CRDs are pulled from the bind-operator repo at the matching tag rather than
# vendored here, so they never drift from the operator.
- https://git.unkin.net/unkin/bind-operator/raw/tag/v0.2.3/config/crd/install.yaml
- https://git.unkin.net/unkin/bind-operator/raw/tag/v0.2.2/config/crd/install.yaml
- rbac.yaml
- deployment.yaml