yandex-cloud / k8s-csi-s3

GeeseFS-based CSI for mounting S3 buckets as PersistentVolumes
Other
565 stars 97 forks source link

Manual Pvc Error 'Cannot set property ExecStopPost, or unknown property' #56

Open Neii opened 1 year ago

Neii commented 1 year ago

When following this tutorial to operate https://github.com/yandex-cloud/k8s-csi-s3#static-provisioning --no-systemd options not working

got this error E0531 05:37:28.119030 1 utils.go:101] GRPC error: Error starting systemd unit geesefs-manualbucket_2fpath.service on host: Cannot set property ExecStopPost, or unknown property.

vskubriev commented 1 year ago

Sure, i faced same issue.

When utilizing static pv (without storage class). Or with storageClassName: "" i.e.: # Empty storage class disables dynamic provisioning

There is no way (more likely) to setup static persistent volumes with option --no-systemd

vskubriev commented 1 year ago

Here is a link to the code https://github.com/yandex-cloud/k8s-csi-s3/blob/519c4f0bd7f661bd09cc2f4b20b460c2eb26cd77/pkg/mounter/geesefs.go#L105

As I understand there is no way to disable systemd in our case (

vskubriev commented 1 year ago

So. I found a workaround to issue.

Just comment a volume in volumeMounts and volumes in DaemonSet at deploy/kubernetes/csi-s3.yaml and reinstall it and maybe other components.

This is because mounter /geesefs.go uses in pod mount if systemd is not connected.

See here:

https://github.com/yandex-cloud/k8s-csi-s3/blob/519c4f0bd7f661bd09cc2f4b20b460c2eb26cd77/pkg/mounter/geesefs.go#LL138C3-L138C3

To be honest i'am interested in my original issue. We utilizes croc cloud kaas cluster, which is based on 1.23 / centos7 with systemd 219 and when I encounter a problem with it (systemd) like:

I0607 10:21:08.756456       1 geesefs.go:148] Starting geesefs using systemd: /var/lib/kubelet/plugins/ru.yandex.s3.csi/geesefs -f -o allow_other --endpoint https://storage.cloud.croc.ru/ --region croc --setuid 65534 --setgid 65534 boot-config-dev:develop /var/lib/kubelet/plugins/kubernetes.io/csi/pv/manualbucket-with-path/globalmount
E0607 10:21:08.761435       1 utils.go:101] GRPC error: Error starting systemd unit geesefs-boot_2dconfig_2ddev_2fdevelop.service on host: Cannot set property ExecStopPost, or unknown property.

So for us there is only one solution: don't use systemd at all. For now. If there will be any help from project dev's that would be appricated.

Neii commented 1 year ago

Yeah I guess it might be a compatibility issue, try this release version v0.35.4 . In my testing, mount static PV success, i don't add --no-systemd options. The disadvantage of the old version is that it may not be so elegant when ‘cleanup’. See here: https://github.com/yandex-cloud/k8s-csi-s3/commit/96818e563aac7779e8799fe220ace2108cc659de

Neii commented 1 year ago

Or this way? https://github.com/yandex-cloud/k8s-csi-s3/pull/34/files

vskubriev commented 1 year ago

Thank you very much for help. I tested version v0.35.4 and found that it works out of the box with systemd like a charm.

So I think this issues should not be closed as issue describe by me above in the ticket with systemd exists.

vskubriev commented 1 year ago

Or this way? https://github.com/yandex-cloud/k8s-csi-s3/pull/34/files

Amazing flow. It seemed to me that this would not work. But I did not look in the code whether this parameter is processed or not. That's why I didn't try this trick. But I will keep it in mind. Thanks a lot again.

vitalif commented 1 year ago

Hi, maybe this is related to your systemd version? https://www.freedesktop.org/wiki/Software/systemd/dbus/ shows that the dbus interface does have ExecStopPost