NetApp / trident

Storage orchestrator for containers
Apache License 2.0
762 stars 222 forks source link

Support for Talos #806

Open killcity opened 1 year ago

killcity commented 1 year ago

With the dependency on OS binaries such as mount and mkdir, Trident cannot be used with more sophisticated/progressive operating systems like Talos. Will this dependency be lifted at some point?

Untersander commented 1 year ago

Would also be very interested to know if this would be possible at some point.

Nauno33 commented 1 year ago

I am also interested in using Astra Trident on a Kubernetes cluster using Talos. Do you have a solution?

k999o commented 3 months ago

I'm working for a large retail(150+ ONTAP clusters)we'd really like to see Talos support. This keeps Netapp in the running as we vet out the best storage selection in our Kubernetes hybrid cloud environment.

We plan to move everything in that direction.

stijoh commented 3 months ago

Yes, this is needed. Shelling out on the nodes is not a good option. Getting rid of this dependency will benefit all Linux distros, not just Talos, as they would need much less tools installed on them.

louhisuo commented 2 months ago

+1 for Talos support.

redbeard28 commented 2 months ago

+1 for Talos support.

sempex commented 2 months ago

+1 for Talos support.

clementnuss commented 1 month ago

for what it's worth, I managed to mount a trident share on talos, by using a debian:latest BASE image in the Dockerfile (cf this commit. through that, the basic binaries needed (e.g. mkdir, mount, mount.nfs) to mount NFS shares become accessible. This is not ideal as those binaries probably have some sort of correlation with the host kernel version, but for a workaround it does it.

There are some limitations though:

I'm not yet sure if we are "ready" to change all our current workloads to NFSv4, I have to read this netapp article on the topic first, but at least we know that technically it is not fully impossible to mount a trident NFS share on talos.

clementnuss commented 1 month ago

TLDR; in theory it's possible, but it's tricky and I'm not going to invest more time in this for the time being.

here are my latest findings:

All of that being said, we are currently putting our trident exploration on hold, and might get back to this issue later. solving it would require:

  1. building a system extension with the rpcbind and rpc.statd daemons, which is not trivial, partly because building those from scratch with the musl library requires some adaptations it appears.
  2. starting those daemons in a dedicated pod, (e.g. in a daemonset with hostNetwork), however given how critical those daemons would be w.r.t. to locks, we do not want to adventure ourselves in this direction.

1 is much cleaner than 2, but requires too much development at this stage.