Files
argocd-apps/apps/base/bind-system/deployment.yaml
T
unkinben 8886fe71ee
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful
Configure resolvers like puppet (openforwarder view + forward zones)
Fixes recursion being refused for external clients: the resolver had no
allow-recursion, so BIND defaulted to localnets. Mirrors the puppet
resolver config exactly.

- add openforwarder BindView: match-clients = internal ACLs, recursion
  yes, allow-recursion/allow-query any (match-clients gates access)
- add 4 BindACLs (acl-main.unkin.net / acl-dmz / acl-common /
  acl-nomad-jobs) from puppet acls.conf
- add 26 conditional forward zones (unkin/consul/k8s/dmz upstreams),
  bound to the openforwarder view; needs operator v0.1.4 to render them
  on every pod
- global forwarders 8.8.8.8/1.1.1.1 (puppet default)
- bump operator image to v0.1.4
2026-07-04 11:59:37 +10:00

58 lines
1.4 KiB
YAML

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: bind-operator
namespace: bind-system
labels:
app.kubernetes.io/name: bind-operator
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: bind-operator
template:
metadata:
labels:
app.kubernetes.io/name: bind-operator
spec:
serviceAccountName: bind-operator
securityContext:
runAsNonRoot: true
containers:
- name: operator
image: git.unkin.net/unkin/bind-operator:v0.1.4
args:
- --metrics-bind-address=:8080
- --health-probe-bind-address=:8081
- --leader-elect
ports:
- containerPort: 8080
name: metrics
- containerPort: 8081
name: health
readinessProbe:
httpGet:
path: /readyz
port: 8081
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /healthz
port: 8081
initialDelaySeconds: 15
periodSeconds: 20
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 500m
memory: 256Mi