Open Patricol opened 2 months ago
@Patricol definitely its on iscsiadm
binary and version. We generally test the iscsiadm
from open-iscsi https://github.com/open-iscsi/open-iscsi . The iscsiadm here looks like coming from nixos
.. do you have any other setup where you can test this ? or can you try the iscsiadm
based on open-iscsi and revert ?
Perhaps I'm misunderstanding, but NixOS's iscsiadm
is from open-iscsi
.
The package is built here, it basically just clones https://github.com/open-iscsi/open-iscsi and runs its regular build; only setting a few directory locations.
Summary:
csi-driver-iscsi
tries to update values that don't exist; and just keeps retrying - never successfully mounting anything.What happened:
exit status 7 is
ISCSI_ERR_INVAL - invalid argument
., and sure enough; when running directly I get(It'll mention whichever arg is first in the list; all 5 are invalid.) Relevant function is here: https://github.com/kubernetes-csi/csi-driver-iscsi/blob/2214d7113eb76501a189c7948937fe2cc19ec8b8/pkg/iscsilib/iscsiadm.go#L127 Replacing all the
discovery.sendtargets
prefixes withnode.session
works; so it's likely an issue of myiscsiadm
(which is v2.1.10) not populating thediscovery.sendtargets
fields; so they're not there to be updated.What you expected to happen: Not actually sure if or where the
discovery.sendtargets
should be added; theiscsiadm
docs show rather limited uses of-o update
with-n
and-v
. (Updating name/value pairs.) So that does imply that it might just need to be skipped; or the initial population of args should be adjusted to ensure they are set.How to reproduce it:
Used both
discoveryCHAPAuth=true
andsessionCHAPAuth=true
; specified all 8 values in thesecret
json. Ran on a fresh node; so the rescan etc. failed (which isn't an issue.) Used the example nginx yaml from this repo.Anything else we need to know?:
Environment:
2214d7113eb76501a189c7948937fe2cc19ec8b8
)kubectl version
):v1.30.3
; kubectl isv1.31.0
.nixos 24.11.20240824.d0e1602
uname -a
):6.10.6
v2.1.10
.