65 Commits
Author SHA1 Message Date
benzheng d6e51755fb Bump version to 1.3.1 v1.3.1 2026-07-29 14:21:55 +08:00
benzheng daae1c14ab fix: copy synocli into builder image for default make target
The Makefile default build target includes bin/synocli, but the
Dockerfile builder stage never copies synocli/ into the build context,
so building the image fails with
"stat /go/src/synok8scsiplugin/synocli: directory not found".

Copy synocli/ so the in-image make behaves the same as in a full
checkout.
2026-07-29 14:21:55 +08:00
benzheng 4c5e192954 feat: verify DSM HTTPS certificate to prevent credential exposure
The DSM WebAPI client disabled TLS certificate verification for all
HTTPS connections (InsecureSkipVerify: true), then sent the configured
DSM account and password to the endpoint. An attacker able to intercept,
redirect, or impersonate the DSM HTTPS endpoint could therefore obtain
the DSM credentials stored in the CSI client config / Kubernetes secret
(CWE-295 Improper Certificate Validation, OWASP A3:2017 Sensitive Data Exposure)

TLS certificate verification is now enabled by default. The client trusts
the system CA pool, so certificates signed by a public CA work without
extra configuration. Three optional client-info fields are added:

  - tlsCACert:          PEM CA cert to trust (for DSM self-signed certs);
                        merged with the system CA pool.
  - tlsServerName:      override the name checked during verification,
                        e.g. when connecting by IP.
  - insecureSkipVerify: explicit opt-out that restores the old behavior;
                        logs a warning on every connection.

The new fields are propagated through all DSM construction sites
(service, synocli, and the HA GetAnotherController path).

BREAKING CHANGE: deployments using `https: true` against a DSM with a
self-signed certificate (the DSM default) will fail to connect after
upgrade until they set `tlsCACert`, `tlsServerName`, or (discouraged)
`insecureSkipVerify: true`.

Adds TLS tests covering default-reject, valid-CA accept, wrong-CA reject,
insecureSkipVerify opt-in, and the tlsServerName DNS-SAN scenarios.
2026-07-29 14:21:55 +08:00
benzheng 5cb10abf21 docs: add DSME support and NVMe/TCP StorageClass to README
- Add DSME 1.0 or above to the supported Synology NAS list (PAS7700)
- Add NVMe/TCP StorageClass example from deploy/example/storageclass-nvme.yaml
- Document 'nvme' in the protocol parameter: creates NVMe namespaces on DSM
2026-07-29 14:21:55 +08:00
chihyuwuandbenzheng 4d3655e8fb Bump version to 1.3.0 v1.3.0 2026-05-20 23:31:48 +08:00
chihyuwuandbenzheng cbe97aa18e Support NVMe/TCP protocol with namespace 2026-05-20 23:31:48 +08:00
chihyuwu 72de5adc69 iscsi: use discovery -o new to avoid overwriting existing node settings 2026-01-28 18:46:41 +08:00
Chih Yu WuandGitHub 280790021b Merge pull request #115 from marcofranssen/add-ci-job
ci: Add workflow
2026-01-28 16:22:06 +08:00
Chih Yu WuandGitHub e0ae5e2f32 Merge pull request #110 from yp28/add-node-extra-args
feat: add additional arguments for node csi-plugin
2026-01-28 15:30:29 +08:00
Yordi Pauptit 1671c1b6e3 fix: close support chroot dir check 2025-12-21 22:36:52 +01:00
Yordi PauptitandGitHub 54133da29d Merge branch 'main' into add-node-extra-args 2025-12-21 21:53:55 +01:00
Marco Franssen 3c44698e46 ci: Add workflow 2025-12-18 17:08:23 +01:00
Marco Franssen b092f590f0 deps: Add dependabot configuration to keep dependencies updated 2025-12-18 16:34:12 +01:00
chihyuwu 13a525c0bb Bump version to 1.2.1 v1.2.1 2025-10-07 10:54:06 +08:00
Yordi Pauptit 894c708a82 feat: add additional arguments for node csi-plugin 2025-09-26 19:23:16 +02:00
chihyuwu 9a9ebd07d9 fix #29: Allow enabling space reclamation and FUA/Sync Cache SCSI commands for LUNs
Add enableSpaceReclamation and enableFuaSyncCache parameters to StorageClass
2025-07-30 14:25:19 +08:00
chihyuwu f1a262bdb9 Add pod-security labels to namespace 2025-07-30 14:24:28 +08:00
Chih Yu WuandGitHub 5ece26b7b1 Merge pull request #85 from ressu/main
Predefined tool paths
2025-07-30 14:14:56 +08:00
Sami HaahtinenandSami Haahtinen bf76a99957 only enable chroot on the node
Instead of checking the existence of chroot target directory runtime, only enable chroot on the node daemon. This way the service will fail early if the chroot doesn't exist, instead of printing an error during runtime.
2025-05-31 11:46:41 +01:00
Sami HaahtinenandSami Haahtinen 78e7a08c0e Implement a tool executor
The tool executor is capable of running given tools in chroot either by automatically locating the tools in path using the `env` command or directly if the path is known.

This removes the need for the shell script to wrap commands and reduces number of needed external binaries on the node.
2025-05-31 11:46:33 +01:00
chihyuwu e2cc8de2fa Assign node addresses to NFS privileges instead of using the wildcard character.
Small refactor.
2024-08-28 00:19:46 +08:00
chihyuwu 575ea81976 Update to version 1.2.0 v1.2.0 2024-08-27 10:00:29 +08:00
Chih Yu WuandGitHub 66614eba9c Merge pull request #86 from mdan16/main
Uninstall for v1.20 or higher
2024-08-15 19:13:36 +08:00
Chih Yu WuandGitHub 6c990fc954 Merge pull request #80 from huats/fixdeploymentshortflag
Removing the short flag from kubectl
2024-08-15 19:13:20 +08:00
mdan16 c2e1263b52 Uninstall for v1.20 2024-08-11 11:39:00 +00:00
Christophe Sauthier d2cae9f1fa Removing the short flag from kubectl
Signed-off-by: Christophe Sauthier <christophe.sauthier@gmail.com>
2024-02-09 15:15:27 -05:00
Chih Yu WuandGitHub 53cefcbc02 Merge pull request #70 from outductor/update_deps
Run Golang 1.21 by default and update outstanding packages
2024-01-15 19:12:58 +08:00
outductor fbe1b7e992 Run Golang 1.21 by default and update outstanding packages 2023-11-17 14:15:11 +09:00
chihyuwu a4270a3a9c Update to version 1.1.3 v1.1.3 2023-11-08 19:49:11 +08:00
chihyuwu 0cd2cbe816 fix #58 - Helm: correct the storageclass name for helm test 2023-11-08 19:13:43 +08:00
Chih Yu WuandGitHub ba5b22511c Merge pull request #68 from vaskozl/main
Enable volume stats and use statfs to report more accurate LUN usage
2023-11-08 18:45:15 +08:00
Chih Yu WuandGitHub f2f773dc9a Merge pull request #60 from rtim75/feature/populate-lun-description-with-pvc-info
Add pvc-namespace/pvc-name to lun descriptions
2023-11-08 18:44:49 +08:00
Vasil Zlatanov 9c19c7f1e3 Report more accurate lun util metrics 2023-11-07 23:10:08 +00:00
Vasil Zlatanov b502422656 Report GET_VOLUME_STATS support 2023-11-07 23:09:56 +00:00
Chih Yu WuandGitHub 9ca5077e2f Merge pull request #56 from kincl/retry-login-session-timeout
Add login retry for session timeout
2023-10-12 11:12:49 +08:00
Ruslan Timofieiev f8161e9954 add lun description to createVolume 2023-08-22 17:43:16 +03:00
Chih Yu WuandGitHub 78c814d565 Merge pull request #57 from Golgautier/Helm-update-for-kubelet-path
Update helm for custom kubelet path support
2023-07-25 16:16:02 +08:00
Chih Yu WuandGitHub 90441acf67 Merge pull request #55 from kincl/node-startup
Set node.startup to manual for iSCSI targets at login
2023-07-25 16:13:23 +08:00
GautierLeblanc 629b5090ad Fix node.yaml helm template 2023-07-24 23:57:49 +00:00
GautierLeblanc 2a5a149bb4 Update helm for custom kubelet path support 2023-07-18 08:45:46 +00:00
Jason Kincl b3908498a2 Add login retry for session timeout
Error code 106 is a session timeout error so we should retry login
before erroring out on the request
2023-07-15 20:59:23 -04:00
Jason Kincl bcb39ab919 Updating gofmt 2023-06-25 21:23:56 -04:00
Jason Kincl c089d5f221 Set node.startup to manual for iscsi
Fixes a condition where the default node.startup is automatic and a node
reboots iscsid will attempt to create sessions for all of the targets.

Instead we want the CSI to control when sessions get created.
2023-06-25 21:23:56 -04:00
chihyuwu 9d6b375935 Update golang image version in Dockerfile 2023-06-13 19:27:33 +08:00
Chih Yu WuandGitHub 42710dfdd5 Merge pull request #49 from rtim75/main
fix #25 - Add ability to provide format options
2023-06-13 19:16:45 +08:00
chihyuwu 489b474da1 Update to version 1.1.2 v1.1.2 2023-06-06 18:15:21 +08:00
chihyuwu 368e89fa32 Helm: configure charts 2023-06-06 18:13:20 +08:00
chihyuwu dbf1c3b192 fix #8 - Helm: pull from christian-schlichtherle/synology-csi-chart 2023-06-06 18:11:23 +08:00
Ruslan Timofieiev 817a51b7f6 Add ability to provide format options 2023-04-16 20:11:58 +03:00
Chih Yu WuandGitHub 3cd6acc598 Merge pull request #46 from inductor/modify_registry_name
Update registry name
2023-03-15 11:37:19 +08:00