-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Containerized SSH-less provisioner #134
Comments
Hi |
I will try without it. I assumed it was necessary because of the |
It does not seem to work without the privileged security context:
|
It does seem legit though that a container having access to the host mount namespace as well as the ability to create or destroy datasets on the host requires elevated permissions. |
Hm, yeah makes sense. |
It seems that there would be some architectural changes to make in the project if we wanted to integrate this feature. For example, the container running the provisioner would have to be pinned on the ZFS node at the deployment level, therefore rendering the storage class Similarly, the mount path of the parent dataset has to be provided at the deployment level too, making it impossible to select a different parent dataset using storage class parameters. Overall, it feels like it would make things less "flexible" although I'm pretty sure most users only use a single parent dataset on a single ZFS host (with a single storage class). I think it will be very difficult to make the SSH-less and the SSH use case coexist, so if you're not prepared to give up the SSH use case, it's probably not worth carrying on with it. Since it fits my own use-case better, I'm actually considering creating a fork of this project to implement this fully, if you don't have any objection. |
I agree with you. I have no data what most users use for their setup, so any statement about usage are probably equally true :D
I agree.
No objection at all. I may even link to your repo for users that may interested in SSH-less version ;) |
Hi,
The documentation states:
I spent some time working on a small proof of concept that shows it is possible to create ZFS dataset from within a container and have the volumes shared with NFS by the container. Also, the volume mounts are visible by both the host and the container, making it shareable using
HostPath
.I'm using this Dockerfile:
With this
entrypoint.sh
:The secret sauce is to use
mountPropagation: Bidirectional
for the dataset volume mount, so each dataset mounted by the container is also visible in the host and vice versa:Note that I had to make a small patch within
kubernetes-zfs-provisioner
so that the pod IP address (contained in theZFS_NFS_HOSTNAME
environment variable) gets used a theNFSVolumeSource
's server address instead of the storage class'shostname
parameter.Is this something that would be worth having as a default configuration? It needs the ZFS host to be part of the cluster, but has the advantage not to require extra setup such as SSH keys.
The text was updated successfully, but these errors were encountered: