Skip to content

Commit a43cc46

Browse files
author
shiftstack-merge-bot
committed
2 parents c063251 + cb2d722 commit a43cc46

File tree

392 files changed

+26024
-12388
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

392 files changed

+26024
-12388
lines changed

.github/workflows/trivy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- name: Install go
1616
uses: actions/setup-go@v5
1717
with:
18-
go-version: 1.23.1
18+
go-version: 1.23.5
1919

2020
- name: Build an image from Dockerfile
2121
run: |

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ include release-tools/build.make
2727

2828
GIT_COMMIT = $(shell git rev-parse HEAD)
2929
BUILD_DATE = $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
30-
IMAGE_VERSION ?= v4.9.0
30+
IMAGE_VERSION ?= v4.11.0
3131
LDFLAGS = -X ${PKG}/pkg/nfs.driverVersion=${IMAGE_VERSION} -X ${PKG}/pkg/nfs.gitCommit=${GIT_COMMIT} -X ${PKG}/pkg/nfs.buildDate=${BUILD_DATE}
3232
EXT_LDFLAGS = -s -w -extldflags "-static"
3333
# Use a custom version for E2E tests if we are testing in CI
@@ -42,7 +42,7 @@ REGISTRY_NAME ?= $(shell echo $(REGISTRY) | sed "s/.azurecr.io//g")
4242
IMAGE_TAG = $(REGISTRY)/$(IMAGENAME):$(IMAGE_VERSION)
4343
IMAGE_TAG_LATEST = $(REGISTRY)/$(IMAGENAME):latest
4444

45-
E2E_HELM_OPTIONS ?= --set image.nfs.repository=$(REGISTRY)/$(IMAGENAME) --set image.nfs.tag=$(IMAGE_VERSION) --set image.nfs.pullPolicy=Always --set feature.enableInlineVolume=true --set externalSnapshotter.enabled=true
45+
E2E_HELM_OPTIONS ?= --set image.nfs.repository=$(REGISTRY)/$(IMAGENAME) --set image.nfs.tag=$(IMAGE_VERSION) --set image.nfs.pullPolicy=Always --set feature.enableInlineVolume=true --set externalSnapshotter.enabled=true --set controller.runOnControlPlane=true
4646
E2E_HELM_OPTIONS += ${EXTRA_HELM_OPTIONS}
4747

4848
# Output type of docker buildx build

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ This is a repository for [NFS](https://en.wikipedia.org/wiki/Network_File_System
1313
|driver version | supported k8s version | status |
1414
|----------------|-----------------------|--------|
1515
|master branch | 1.21+ | GA |
16+
|v4.10.0 | 1.21+ | GA |
1617
|v4.9.0 | 1.21+ | GA |
1718
|v4.8.0 | 1.21+ | GA |
18-
|v4.7.0 | 1.21+ | GA |
1919

2020
### Install driver on a Kubernetes cluster
2121
> [install NFS CSI driver on microk8s](https://microk8s.io/docs/how-to-nfs)

charts/README.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
### install a specific version
1717
```console
1818
helm repo add csi-driver-nfs https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts
19-
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version v4.9.0
19+
helm install csi-driver-nfs csi-driver-nfs/csi-driver-nfs --namespace kube-system --version v4.10.0
2020
```
2121

2222
### install driver with customized driver name, deployment name
@@ -53,13 +53,13 @@ The following table lists the configurable parameters of the latest NFS CSI Driv
5353
| `image.nfs.tag` | csi-driver-nfs image tag | `latest` |
5454
| `image.nfs.pullPolicy` | csi-driver-nfs image pull policy | `IfNotPresent` |
5555
| `image.csiProvisioner.repository` | csi-provisioner docker image | `registry.k8s.io/sig-storage/csi-provisioner` |
56-
| `image.csiProvisioner.tag` | csi-provisioner docker image tag | `v5.1.0` |
56+
| `image.csiProvisioner.tag` | csi-provisioner docker image tag | `v5.2.0` |
5757
| `image.csiProvisioner.pullPolicy` | csi-provisioner image pull policy | `IfNotPresent` |
5858
| `image.livenessProbe.repository` | liveness-probe docker image | `registry.k8s.io/sig-storage/livenessprobe` |
59-
| `image.livenessProbe.tag` | liveness-probe docker image tag | `v2.14.0` |
59+
| `image.livenessProbe.tag` | liveness-probe docker image tag | `v2.15.0` |
6060
| `image.livenessProbe.pullPolicy` | liveness-probe image pull policy | `IfNotPresent` |
6161
| `image.nodeDriverRegistrar.repository` | csi-node-driver-registrar docker image | `registry.k8s.io/sig-storage/csi-node-driver-registrar` |
62-
| `image.nodeDriverRegistrar.tag` | csi-node-driver-registrar docker image tag | `v2.12.0` |
62+
| `image.nodeDriverRegistrar.tag` | csi-node-driver-registrar docker image tag | `v2.13.0` |
6363
| `image.nodeDriverRegistrar.pullPolicy` | csi-node-driver-registrar image pull policy | `IfNotPresent` |
6464
| `imagePullSecrets` | Specify docker-registry secret names as an array | [] (does not add image pull secrets to deployed pods) |
6565
| `serviceAccount.create` | whether create service account of csi-nfs-controller | `true` |
@@ -79,6 +79,9 @@ The following table lists the configurable parameters of the latest NFS CSI Driv
7979
| `controller.resources.csiProvisioner.limits.memory` | csi-provisioner memory limits | 100Mi |
8080
| `controller.resources.csiProvisioner.requests.cpu` | csi-provisioner cpu requests limits | 10m |
8181
| `controller.resources.csiProvisioner.requests.memory` | csi-provisioner memory requests limits | 20Mi |
82+
| `controller.resources.csiResizer.limits.memory` | csi-resizer memory limits | 400Mi |
83+
| `controller.resources.csiResizer.requests.cpu` | csi-resizer cpu requests | 10m |
84+
| `controller.resources.csiResizer.requests.memory` | csi-resizer memory requests | 20Mi |
8285
| `controller.resources.livenessProbe.limits.memory` | liveness-probe memory limits | 100Mi |
8386
| `controller.resources.livenessProbe.requests.cpu` | liveness-probe cpu requests limits | 10m |
8487
| `controller.resources.livenessProbe.requests.memory` | liveness-probe memory requests limits | 20Mi |

charts/index.yaml

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11
apiVersion: v1
22
entries:
33
csi-driver-nfs:
4+
- apiVersion: v1
5+
appVersion: v4.10.0
6+
created: "2025-01-23T13:45:17.621876642Z"
7+
description: CSI NFS Driver for Kubernetes
8+
digest: 9685daf9a5d4f87d46bf2343da0ad2ad26061802d596315e6677389226bd8319
9+
name: csi-driver-nfs
10+
urls:
11+
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v4.10.0/csi-driver-nfs-v4.10.0.tgz
12+
version: v4.10.0
413
- apiVersion: v1
514
appVersion: v4.9.0
6-
created: "2024-09-01T13:43:08.057021276Z"
15+
created: "2025-01-23T13:45:17.628951299Z"
716
description: CSI NFS Driver for Kubernetes
8-
digest: ad8815f634a482daaa37827480ed0d01ef4a1311d06ef51f2ef99dc010ce98b2
17+
digest: 045f8c0995a657d2dcd7aa36fc16fd18315e23e68fc8cc4b328dcdc2e37a0c9a
918
name: csi-driver-nfs
1019
urls:
1120
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v4.9.0/csi-driver-nfs-v4.9.0.tgz
1221
version: v4.9.0
1322
- apiVersion: v1
1423
appVersion: v4.8.0
15-
created: "2024-09-01T13:43:08.056273832Z"
24+
created: "2025-01-23T13:45:17.6281972Z"
1625
description: CSI NFS Driver for Kubernetes
1726
digest: 6bcfc35f85ff56c20c464392e914c37818bc67b54f241f7c683bf6a2b5a675f7
1827
name: csi-driver-nfs
@@ -21,7 +30,7 @@ entries:
2130
version: v4.8.0
2231
- apiVersion: v1
2332
appVersion: v4.7.0
24-
created: "2024-09-01T13:43:08.055532971Z"
33+
created: "2025-01-23T13:45:17.627419238Z"
2534
description: CSI NFS Driver for Kubernetes
2635
digest: b629c5fa9543223339952d9f7c478189c2e8f8695846f513b8d2a45ded7a5ac9
2736
name: csi-driver-nfs
@@ -30,7 +39,7 @@ entries:
3039
version: v4.7.0
3140
- apiVersion: v1
3241
appVersion: v4.6.0
33-
created: "2024-09-01T13:43:08.054774285Z"
42+
created: "2025-01-23T13:45:17.626676376Z"
3443
description: CSI NFS Driver for Kubernetes
3544
digest: c641e8ac0f86b631f07109c10e78c6aa893f57281c7bda595a78651e382e8648
3645
name: csi-driver-nfs
@@ -39,7 +48,7 @@ entries:
3948
version: v4.6.0
4049
- apiVersion: v1
4150
appVersion: v4.5.0
42-
created: "2024-09-01T13:43:08.054010238Z"
51+
created: "2025-01-23T13:45:17.625760071Z"
4352
description: CSI NFS Driver for Kubernetes
4453
digest: 3d170cecde5a71fdf02b86c4c375b7818787c39311938e36199fb3e7a2d5162d
4554
name: csi-driver-nfs
@@ -48,7 +57,7 @@ entries:
4857
version: v4.5.0
4958
- apiVersion: v1
5059
appVersion: v4.4.0
51-
created: "2024-09-01T13:43:08.052423836Z"
60+
created: "2025-01-23T13:45:17.624646939Z"
5261
description: CSI NFS Driver for Kubernetes
5362
digest: edb60e4ae8b0f94457d1425834567c0bd25ad4d63d30cf9400e71650279edca3
5463
name: csi-driver-nfs
@@ -57,7 +66,7 @@ entries:
5766
version: v4.4.0
5867
- apiVersion: v1
5968
appVersion: v4.3.0
60-
created: "2024-09-01T13:43:08.051682677Z"
69+
created: "2025-01-23T13:45:17.6229797Z"
6170
description: CSI NFS Driver for Kubernetes
6271
digest: 84202da067ec3672e75c41bbfd78e9cc95bc3bb81652ef68b84f71ee8a1b8f52
6372
name: csi-driver-nfs
@@ -66,7 +75,7 @@ entries:
6675
version: v4.3.0
6776
- apiVersion: v1
6877
appVersion: v4.2.0
69-
created: "2024-09-01T13:43:08.050986928Z"
78+
created: "2025-01-23T13:45:17.622327254Z"
7079
description: CSI NFS Driver for Kubernetes
7180
digest: e702f6c9be35f2649f5736ca5fcdc40ab1c6a235f41e7fb2472d208e8a5ebf47
7281
name: csi-driver-nfs
@@ -75,7 +84,7 @@ entries:
7584
version: v4.2.0
7685
- apiVersion: v1
7786
appVersion: v4.1.0
78-
created: "2024-09-01T13:43:08.050516086Z"
87+
created: "2025-01-23T13:45:17.621005144Z"
7988
description: CSI NFS Driver for Kubernetes
8089
digest: b2baa2f129976cf2981c8873290aac509aa3c5937ffc319fbf69fbe3271c23eb
8190
name: csi-driver-nfs
@@ -84,7 +93,7 @@ entries:
8493
version: v4.1.0
8594
- apiVersion: v1
8695
appVersion: v4.0.0
87-
created: "2024-09-01T13:43:08.05009261Z"
96+
created: "2025-01-23T13:45:17.620571167Z"
8897
description: CSI NFS Driver for Kubernetes
8998
digest: 3145fd12225a639908b14675c8ae1f272bc0e57ffa2895b6f17411486a24229d
9099
name: csi-driver-nfs
@@ -93,7 +102,7 @@ entries:
93102
version: v4.0.0
94103
- apiVersion: v1
95104
appVersion: v3.1.0
96-
created: "2024-09-01T13:43:08.049658627Z"
105+
created: "2025-01-23T13:45:17.620125026Z"
97106
description: CSI NFS Driver for Kubernetes
98107
digest: 7e51bb9188b013195cafc265102fa365de9ec5513780e1dfc5363289f811a4d9
99108
name: csi-driver-nfs
@@ -102,7 +111,7 @@ entries:
102111
version: v3.1.0
103112
- apiVersion: v1
104113
appVersion: v3.0.0
105-
created: "2024-09-01T13:43:08.0492145Z"
114+
created: "2025-01-23T13:45:17.619704391Z"
106115
description: CSI NFS Driver for Kubernetes
107116
digest: 44406231cd5cdada1c62a0541b93b4f5d5a70ccc8c50b33553a8692fe6cfae96
108117
name: csi-driver-nfs
@@ -111,7 +120,7 @@ entries:
111120
version: v3.0.0
112121
- apiVersion: v1
113122
appVersion: v2.0.0
114-
created: "2024-09-01T13:43:08.048792062Z"
123+
created: "2025-01-23T13:45:17.619273863Z"
115124
description: CSI NFS Driver for Kubernetes
116125
digest: 1a32c6fc016526fe19a0c9e0dfbe83d0ddde67ced533bb5f5d24d713f706c613
117126
name: csi-driver-nfs
@@ -120,11 +129,11 @@ entries:
120129
version: v2.0.0
121130
- apiVersion: v1
122131
appVersion: latest
123-
created: "2024-09-01T13:43:08.04854528Z"
132+
created: "2025-01-23T13:45:17.619028474Z"
124133
description: CSI NFS Driver for Kubernetes
125-
digest: 1850c4492caaead20c9049fba0d48ce50f2e96a4dca925a99df5b8a390c04053
134+
digest: 4dcad0bd25fd3be82bbe625a6cb155ac3143e3aa722e4b0cfb21343a21c74c97
126135
name: csi-driver-nfs
127136
urls:
128137
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/latest/csi-driver-nfs-v0.0.0.tgz
129138
version: v0.0.0
130-
generated: "2024-09-01T13:43:08.047626652Z"
139+
generated: "2025-01-23T13:45:17.617949026Z"
512 Bytes
Binary file not shown.

charts/latest/csi-driver-nfs/templates/csi-nfs-controller.yaml

Lines changed: 49 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,29 @@ spec:
2424
hostNetwork: true # controller also needs to mount nfs to create dir
2525
dnsPolicy: {{ .Values.controller.dnsPolicy }}
2626
serviceAccountName: {{ .Values.serviceAccount.controller }}
27-
{{- with .Values.controller.affinity }}
27+
# runOnControlPlane=true or runOnMaster=true only takes effect if affinity is not set
28+
{{- if contains (tpl "{{ .Values.controller.affinity }}" .) "nodeSelectorTerms" }}
29+
{{- with .Values.controller.affinity }}
2830
affinity:
29-
{{ toYaml . | indent 8 }}
30-
{{- end }}
31+
{{ toYaml . | indent 8 }}
32+
{{- end }}
33+
{{- else if or .Values.controller.runOnControlPlane .Values.controller.runOnMaster}}
34+
affinity:
35+
nodeAffinity:
36+
requiredDuringSchedulingIgnoredDuringExecution:
37+
nodeSelectorTerms:
38+
- matchExpressions:
39+
{{- if .Values.controller.runOnControlPlane}}
40+
- key: node-role.kubernetes.io/control-plane
41+
operator: Exists
42+
{{- end}}
43+
{{- if .Values.controller.runOnMaster}}
44+
- key: node-role.kubernetes.io/master
45+
operator: Exists
46+
{{- end}}
47+
{{- end }}
3148
nodeSelector:
3249
kubernetes.io/os: linux
33-
{{- if .Values.controller.runOnMaster}}
34-
node-role.kubernetes.io/master: ""
35-
{{- end}}
36-
{{- if .Values.controller.runOnControlPlane}}
37-
node-role.kubernetes.io/control-plane: ""
38-
{{- end}}
3950
{{- with .Values.controller.nodeSelector }}
4051
{{ toYaml . | indent 8 }}
4152
{{- end }}
@@ -62,6 +73,7 @@ spec:
6273
- "--extra-create-metadata=true"
6374
- "--feature-gates=HonorPVReclaimPolicy=true"
6475
- "--timeout=1200s"
76+
- "--retry-interval-max=30m"
6577
env:
6678
- name: ADDRESS
6779
value: /csi/csi.sock
@@ -75,6 +87,31 @@ spec:
7587
capabilities:
7688
drop:
7789
- ALL
90+
- name: csi-resizer
91+
{{- if hasPrefix "/" .Values.image.csiResizer.repository }}
92+
image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}"
93+
{{- else }}
94+
image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}"
95+
{{- end }}
96+
args:
97+
- "-csi-address=$(ADDRESS)"
98+
- "-v=2"
99+
- "-leader-election"
100+
- "--leader-election-namespace={{ .Release.Namespace }}"
101+
- '-handle-volume-inuse-error=false'
102+
env:
103+
- name: ADDRESS
104+
value: /csi/csi.sock
105+
imagePullPolicy: {{ .Values.image.csiResizer.pullPolicy }}
106+
volumeMounts:
107+
- name: socket-dir
108+
mountPath: /csi
109+
resources: {{- toYaml .Values.controller.resources.csiResizer | nindent 12 }}
110+
securityContext:
111+
capabilities:
112+
drop:
113+
- ALL
114+
{{- if .Values.controller.enableSnapshotter }}
78115
- name: csi-snapshotter
79116
{{- if hasPrefix "/" .Values.image.csiSnapshotter.repository }}
80117
image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiSnapshotter.repository }}:{{ .Values.image.csiSnapshotter.tag }}"
@@ -87,6 +124,7 @@ spec:
87124
- "--leader-election-namespace={{ .Release.Namespace }}"
88125
- "--leader-election"
89126
- "--timeout=1200s"
127+
- "--retry-interval-max=30m"
90128
env:
91129
- name: ADDRESS
92130
value: /csi/csi.sock
@@ -99,6 +137,7 @@ spec:
99137
capabilities:
100138
drop:
101139
- ALL
140+
{{- end }}
102141
- name: liveness-probe
103142
{{- if hasPrefix "/" .Values.image.livenessProbe.repository }}
104143
image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
@@ -142,6 +181,7 @@ spec:
142181
- "--mount-permissions={{ .Values.driver.mountPermissions }}"
143182
- "--working-mount-dir={{ .Values.controller.workingMountDir }}"
144183
- "--default-ondelete-policy={{ .Values.controller.defaultOnDeletePolicy }}"
184+
- "--use-tar-command-in-snapshot={{ .Values.controller.useTarCommandInSnapshot }}"
145185
env:
146186
- name: NODE_ID
147187
valueFrom:

charts/latest/csi-driver-nfs/templates/csi-snapshot-controller.yaml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,27 @@ spec:
4646
{{- end }}
4747
nodeSelector:
4848
kubernetes.io/os: linux
49+
# runOnControlPlane=true or runOnMaster=true only takes effect if affinity is not set
50+
{{- if contains (tpl "{{ .Values.controller.affinity }}" .) "nodeSelectorTerms" }}
51+
{{- with .Values.controller.affinity }}
52+
affinity:
53+
{{ toYaml . | indent 8 }}
54+
{{- end }}
55+
{{- else if or .Values.controller.runOnControlPlane .Values.controller.runOnMaster}}
56+
affinity:
57+
nodeAffinity:
58+
requiredDuringSchedulingIgnoredDuringExecution:
59+
nodeSelectorTerms:
60+
- matchExpressions:
61+
{{- if .Values.controller.runOnControlPlane}}
62+
- key: node-role.kubernetes.io/control-plane
63+
operator: Exists
64+
{{- end}}
65+
{{- if .Values.controller.runOnMaster}}
66+
- key: node-role.kubernetes.io/master
67+
operator: Exists
68+
{{- end}}
69+
{{- end }}
4970
priorityClassName: {{ .Values.externalSnapshotter.priorityClassName }}
5071
securityContext:
5172
seccompProfile:

charts/latest/csi-driver-nfs/templates/rbac-csi-nfs.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,42 @@ rules:
5757
resources: ["secrets"]
5858
verbs: ["get"]
5959
---
60+
kind: ClusterRole
61+
apiVersion: rbac.authorization.k8s.io/v1
62+
metadata:
63+
name: {{ .Values.rbac.name }}-external-resizer-role
64+
{{ include "nfs.labels" . | indent 2 }}
65+
rules:
66+
- apiGroups: [""]
67+
resources: ["persistentvolumes"]
68+
verbs: ["get", "list", "watch", "update", "patch"]
69+
- apiGroups: [""]
70+
resources: ["persistentvolumeclaims"]
71+
verbs: ["get", "list", "watch"]
72+
- apiGroups: [""]
73+
resources: ["persistentvolumeclaims/status"]
74+
verbs: ["update", "patch"]
75+
- apiGroups: [""]
76+
resources: ["events"]
77+
verbs: ["list", "watch", "create", "update", "patch"]
78+
- apiGroups: ["coordination.k8s.io"]
79+
resources: ["leases"]
80+
verbs: ["get", "list", "watch", "create", "update", "patch"]
81+
---
82+
kind: ClusterRoleBinding
83+
apiVersion: rbac.authorization.k8s.io/v1
84+
metadata:
85+
name: {{ .Values.rbac.name }}-csi-resizer-role
86+
{{ include "nfs.labels" . | indent 2 }}
87+
subjects:
88+
- kind: ServiceAccount
89+
name: {{ .Values.serviceAccount.controller }}
90+
namespace: {{ .Release.Namespace }}
91+
roleRef:
92+
kind: ClusterRole
93+
name: {{ .Values.rbac.name }}-external-resizer-role
94+
apiGroup: rbac.authorization.k8s.io
95+
---
6096
kind: ClusterRoleBinding
6197
apiVersion: rbac.authorization.k8s.io/v1
6298
metadata:

0 commit comments

Comments
 (0)