diff --git a/clusters/prod/kustomization.yaml b/clusters/prod/kustomization.yaml index 697297f..92ee79c 100644 --- a/clusters/prod/kustomization.yaml +++ b/clusters/prod/kustomization.yaml @@ -431,7 +431,22 @@ patches: # where these manifests are meant to be proven first. - op: replace path: /data/BULK_NFS_SERVER - value: "TBD-PROD-BULK-NFS-SERVER" + # 192.168.2.102 is pfSense's WAN address, which DNATs tcp/2049 through to the Proxmox + # host's REAL address 192.168.1.9 on pfSense's LAN. Prod sits on the WAN side and cannot + # reach 192.168.1.9 directly, so the cluster mounts the NAT address. Dev is on the LAN and + # keeps the base value 192.168.1.9. + # + # PROVEN from k3s-prod-1 on 2026-09-12, not inferred: + # - mount of 192.168.2.102:/mnt/Storage/plex negotiated nfs4 vers=4.1 proto=tcp + # - a write as uid 1000 succeeded. Tested as 1000 and NOT root deliberately: the export + # carries no_root_squash, so a root write would have passed and proved nothing, while + # LSIO images default to PUID 911 and would have gone Ready then failed every import + # with EACCES. The tree is 0755 1000:3000, so uid 1000 is the only writer. + # - ln() across downloads/ -> tv/ returned link count 2 (same inode), so the arrs get + # real atomic moves instead of silently degrading to copy-then-delete on EXDEV. + # pfSense DNATs WITHOUT source NAT (the host logs prod's own node addresses as the peer), + # so the ZFS export ACL names 192.168.2.10/.11/.12 directly rather than one translated IP. + value: "192.168.2.102" # ========================================================================================== # OFF-CLUSTER DR TARGET — Cloudflare R2 (operator, 2026-09-05; bucket + token 2026-09-07). # ==========================================================================================