You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bypass kernel DNS upcall in NFS mount path (CRUSOE-70481)
The CSI driver previously passed remoteports=dns to the kernel NFS client
when the hostname was nfs.crusoecloudcompute.com, which triggered the
dns_resolver keyring upcall through OVN's DNS intercept. That intercept
produced three distinct production failure modes: ENOKEY (required key
not available), EPROTONOSUPPORT (requested NFS version or transport
protocol is not supported), and the musl REFUSED bug from INC-450.
Resolve the hostname in-process at NodePublishVolume time, filter out
unspecified (::, 0.0.0.0) and non-IPv4 results, and pass an explicit IPv4
list in remoteports=ip,ip,ip so the kernel never invokes the keyring
upcall. The first IP also becomes the host portion of the mount source
("<ip>:/volumes/<id>"), so busybox-mount in the Alpine CSI pod no longer
needs to do its own getaddrinfo — closing the INC-450 musl surface too.
Also invert ResolveNFSTarget's preference so disk.Vips is tried before
disk.DnsName: the VIP list is the authoritative VIP set from the storage
API and doesn't round-trip through OVN at all.
On resolver failure the helper logs a warning and falls back to the
legacy "dns" pair so a bug in the new path can never make the situation
worse than before this change.
0 commit comments