From 0920a991f9f01db4c5b881399074c3334b4cf6aa Mon Sep 17 00:00:00 2001 From: Tobi Nehrlich Date: Thu, 28 Mar 2024 10:42:54 +0100 Subject: [PATCH] Use new restricted liveness probe endpoint The `--health-port` option is deprecated and `--http-endpoint` the new option to use. Since `--http-endpoint` additionally exposes metrics, the liveness probe is limited to only listen on localhost by default. With this only processes on the host network, like kubelet, can call the endpoint. Regular pods can no longer access the liveness probe via the node IP address. Signed-off-by: Tobi Nehrlich --- charts/README.md | 3 +++ charts/latest/csi-driver-nfs-v0.0.0.tgz | Bin 11022 -> 11026 bytes .../templates/csi-nfs-controller.yaml | 9 +++------ .../templates/csi-nfs-node.yaml | 9 +++------ charts/latest/csi-driver-nfs/values.yaml | 2 ++ 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/charts/README.md b/charts/README.md index 9350211c..e0000980 100644 --- a/charts/README.md +++ b/charts/README.md @@ -69,6 +69,8 @@ The following table lists the configurable parameters of the latest NFS CSI Driv | `controller.runOnControlPlane` | run controller on control plane node |`false` | | `controller.dnsPolicy` | dnsPolicy of controller driver, available values: `Default`, `ClusterFirstWithHostNet`, `ClusterFirst` | `ClusterFirstWithHostNet` | | `controller.defaultOnDeletePolicy` | default policy for deleting subdirectory when deleting a volume, available values: `delete`, `retain`, `archive` | `delete` | +| `controller.livenessProbe.host ` | the health check host for the liveness probe | `localhost` | +| `controller.livenessProbe.healthPort ` | the health check port for liveness probe | `29652` | | `controller.logLevel` | controller driver log level |`5` | | `controller.workingMountDir` | working directory for provisioner to mount nfs shares temporarily | `/tmp` | | `controller.affinity` | controller pod affinity | `{}` | @@ -88,6 +90,7 @@ The following table lists the configurable parameters of the latest NFS CSI Driv | `node.dnsPolicy` | dnsPolicy of driver node daemonset, available values: `Default`, `ClusterFirstWithHostNet`, `ClusterFirst` |`ClusterFirstWithHostNet` | `node.maxUnavailable` | `maxUnavailable` value of driver node daemonset | `1` | `node.logLevel` | node driver log level |`5` | +| `node.livenessProbe.host ` | the health check host for the liveness probe | `localhost` | | `node.livenessProbe.healthPort ` | the health check port for liveness probe |`29653` | | `node.affinity` | node pod affinity | {} | | `node.nodeSelector` | node pod node selector | `{}` | diff --git a/charts/latest/csi-driver-nfs-v0.0.0.tgz b/charts/latest/csi-driver-nfs-v0.0.0.tgz index b81d9f024a5d0560130552b1b4c94a9fc8081f7f..9cdaad594a947b60a56b77acb943237f5c15f308 100644 GIT binary patch delta 9260 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 O0RR6iIi8{bTmb-AmJ7xJ delta 9318 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

cj!~G!HheUu&s;nwI7fZ?o3dSN0pk|n6P)^RZ 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 U9>Mef0{{U3{}I