The chart can run the Publisher in two networking modes. pod is
the default since chart v1.1.0. host is still available for
clusters that rely on the legacy host-networking layout.
Mode comparison
networking.mode: host |
networking.mode: pod |
|
|---|---|---|
hostNetwork |
true |
false |
| Owns | host’s network namespace | pod’s network namespace |
dnsPolicy |
ClusterFirstWithHostNet |
ClusterFirst |
| Iptables modifications | on the host | inside the pod |
| Reach cluster services | via host network | via cluster DNS / kube-proxy |
| Survives node reboot | yes | yes |
Works with PSA restricted |
no — hostNetwork: true blocked |
partial — still needs NET_ADMIN, NET_RAW, and /dev/net/tun hostPath exception |
| Multi-replica per node | no (single host netns) | yes |
Since chart 1.2.0,
hostNetwork,dnsPolicy, and the containersecurityContextare derived fromnetworking.modeand are no
longer settable in values. Flipping the mode is the only knob.
Pod mode values
1 | networking: |
The tunDevice mount is critical — the pod’s tun0 interface needs the
host’s /dev/net/tun exposed as a hostPath. Without it the Publisher
fails on startup with cannot open /dev/net/tun.
The chart automatically renders hostNetwork: false, dnsPolicy: ClusterFirst, and a minimal securityContext (privileged: false,NET_ADMIN, NET_RAW, runAsUser: 0).
Pod mode uses a local-dns dnsmasq sidecar instead of BIND9 in the
Publisher container. dnsmasq listens only on 127.0.0.1:53, discovers
the Kubernetes cluster DNS server from /etc/resolv.conf, and forwards
there. Keep bind.forwarders unset in pod mode. For private
authoritative DNS, configure forwarding on CoreDNS so cluster service
names and private domains both resolve through the same cluster DNS
path.
Host mode values
1 | networking: |
Use this on k3s/single-node clusters where host networking is
acceptable, or for legacy installs you’re maintaining.
The chart automatically renders hostNetwork: true, dnsPolicy: ClusterFirstWithHostNet, and a privileged securityContext
(privileged: true, allowPrivilegeEscalation: true, NET_ADMIN,NET_RAW, runAsUser: 0).
Picking
- New EKS/AKS/GKE/OpenShift deployment → pod
- k3s, kind, bare-metal single-node → either; host is simplest
- Cluster with strict PSA enforcement → pod (still need
privileged
exemption — see distributions)