Skip to content

Commit 1d7cf8e

Browse files
committed
Merge remote-tracking branch 'upstream/master' into sync-master
NOTE(stephenfin): Conflicts are due to the Go version in use. A follow-up CARRY patch addresses this. Conflicts: go.mod
2 parents c063251 + 9dfd9c7 commit 1d7cf8e

File tree

3,547 files changed

+248197
-112660
lines changed

Some content is hidden

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

3,547 files changed

+248197
-112660
lines changed

.github/workflows/static.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ jobs:
1515
- name: Run linter
1616
uses: golangci/golangci-lint-action@v6
1717
with:
18-
version: v1.60
19-
args: -E=gofmt,unused,ineffassign,revive,misspell,exportloopref,asciicheck,bodyclose,contextcheck --timeout=30m0s
18+
version: v1.64
19+
args: -E=gofmt,unused,ineffassign,revive,misspell,copyloopvar,asciicheck,bodyclose,contextcheck --timeout=30m0s
2020
verify-helm:
2121
name: Verify Helm
2222
runs-on: ubuntu-latest

.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.6
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.12.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: 2 additions & 2 deletions
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.11.0 | 1.21+ | GA |
17+
|v4.10.0 | 1.21+ | GA |
1618
|v4.9.0 | 1.21+ | GA |
17-
|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 4.11.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: 35 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,36 @@
11
apiVersion: v1
22
entries:
33
csi-driver-nfs:
4+
- apiVersion: v1
5+
appVersion: 4.11.0
6+
created: "2025-03-18T05:42:20.617086456Z"
7+
description: CSI NFS Driver for Kubernetes
8+
digest: e44bcd7f6934fe6cb07194a1b6e780ca4a428c5d37330a9db2bfa7a9300c8da5
9+
name: csi-driver-nfs
10+
urls:
11+
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v4.11.0/csi-driver-nfs-4.11.0.tgz
12+
version: 4.11.0
13+
- apiVersion: v1
14+
appVersion: v4.10.0
15+
created: "2025-03-18T05:42:20.616108324Z"
16+
description: CSI NFS Driver for Kubernetes
17+
digest: f9d1ac2610373fa0d668b26031f3daae583806d135213fb41fca7342365d790a
18+
name: csi-driver-nfs
19+
urls:
20+
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v4.10.0/csi-driver-nfs-v4.10.0.tgz
21+
version: v4.10.0
422
- apiVersion: v1
523
appVersion: v4.9.0
6-
created: "2024-09-01T13:43:08.057021276Z"
24+
created: "2025-03-18T05:42:20.624206184Z"
725
description: CSI NFS Driver for Kubernetes
8-
digest: ad8815f634a482daaa37827480ed0d01ef4a1311d06ef51f2ef99dc010ce98b2
26+
digest: 045f8c0995a657d2dcd7aa36fc16fd18315e23e68fc8cc4b328dcdc2e37a0c9a
927
name: csi-driver-nfs
1028
urls:
1129
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/v4.9.0/csi-driver-nfs-v4.9.0.tgz
1230
version: v4.9.0
1331
- apiVersion: v1
1432
appVersion: v4.8.0
15-
created: "2024-09-01T13:43:08.056273832Z"
33+
created: "2025-03-18T05:42:20.623463845Z"
1634
description: CSI NFS Driver for Kubernetes
1735
digest: 6bcfc35f85ff56c20c464392e914c37818bc67b54f241f7c683bf6a2b5a675f7
1836
name: csi-driver-nfs
@@ -21,7 +39,7 @@ entries:
2139
version: v4.8.0
2240
- apiVersion: v1
2341
appVersion: v4.7.0
24-
created: "2024-09-01T13:43:08.055532971Z"
42+
created: "2025-03-18T05:42:20.622661943Z"
2543
description: CSI NFS Driver for Kubernetes
2644
digest: b629c5fa9543223339952d9f7c478189c2e8f8695846f513b8d2a45ded7a5ac9
2745
name: csi-driver-nfs
@@ -30,7 +48,7 @@ entries:
3048
version: v4.7.0
3149
- apiVersion: v1
3250
appVersion: v4.6.0
33-
created: "2024-09-01T13:43:08.054774285Z"
51+
created: "2025-03-18T05:42:20.621829092Z"
3452
description: CSI NFS Driver for Kubernetes
3553
digest: c641e8ac0f86b631f07109c10e78c6aa893f57281c7bda595a78651e382e8648
3654
name: csi-driver-nfs
@@ -39,7 +57,7 @@ entries:
3957
version: v4.6.0
4058
- apiVersion: v1
4159
appVersion: v4.5.0
42-
created: "2024-09-01T13:43:08.054010238Z"
60+
created: "2025-03-18T05:42:20.620108208Z"
4361
description: CSI NFS Driver for Kubernetes
4462
digest: 3d170cecde5a71fdf02b86c4c375b7818787c39311938e36199fb3e7a2d5162d
4563
name: csi-driver-nfs
@@ -48,7 +66,7 @@ entries:
4866
version: v4.5.0
4967
- apiVersion: v1
5068
appVersion: v4.4.0
51-
created: "2024-09-01T13:43:08.052423836Z"
69+
created: "2025-03-18T05:42:20.619241099Z"
5270
description: CSI NFS Driver for Kubernetes
5371
digest: edb60e4ae8b0f94457d1425834567c0bd25ad4d63d30cf9400e71650279edca3
5472
name: csi-driver-nfs
@@ -57,7 +75,7 @@ entries:
5775
version: v4.4.0
5876
- apiVersion: v1
5977
appVersion: v4.3.0
60-
created: "2024-09-01T13:43:08.051682677Z"
78+
created: "2025-03-18T05:42:20.61841015Z"
6179
description: CSI NFS Driver for Kubernetes
6280
digest: 84202da067ec3672e75c41bbfd78e9cc95bc3bb81652ef68b84f71ee8a1b8f52
6381
name: csi-driver-nfs
@@ -66,7 +84,7 @@ entries:
6684
version: v4.3.0
6785
- apiVersion: v1
6886
appVersion: v4.2.0
69-
created: "2024-09-01T13:43:08.050986928Z"
87+
created: "2025-03-18T05:42:20.617610185Z"
7088
description: CSI NFS Driver for Kubernetes
7189
digest: e702f6c9be35f2649f5736ca5fcdc40ab1c6a235f41e7fb2472d208e8a5ebf47
7290
name: csi-driver-nfs
@@ -75,7 +93,7 @@ entries:
7593
version: v4.2.0
7694
- apiVersion: v1
7795
appVersion: v4.1.0
78-
created: "2024-09-01T13:43:08.050516086Z"
96+
created: "2025-03-18T05:42:20.615172009Z"
7997
description: CSI NFS Driver for Kubernetes
8098
digest: b2baa2f129976cf2981c8873290aac509aa3c5937ffc319fbf69fbe3271c23eb
8199
name: csi-driver-nfs
@@ -84,7 +102,7 @@ entries:
84102
version: v4.1.0
85103
- apiVersion: v1
86104
appVersion: v4.0.0
87-
created: "2024-09-01T13:43:08.05009261Z"
105+
created: "2025-03-18T05:42:20.614720737Z"
88106
description: CSI NFS Driver for Kubernetes
89107
digest: 3145fd12225a639908b14675c8ae1f272bc0e57ffa2895b6f17411486a24229d
90108
name: csi-driver-nfs
@@ -93,7 +111,7 @@ entries:
93111
version: v4.0.0
94112
- apiVersion: v1
95113
appVersion: v3.1.0
96-
created: "2024-09-01T13:43:08.049658627Z"
114+
created: "2025-03-18T05:42:20.614272659Z"
97115
description: CSI NFS Driver for Kubernetes
98116
digest: 7e51bb9188b013195cafc265102fa365de9ec5513780e1dfc5363289f811a4d9
99117
name: csi-driver-nfs
@@ -102,7 +120,7 @@ entries:
102120
version: v3.1.0
103121
- apiVersion: v1
104122
appVersion: v3.0.0
105-
created: "2024-09-01T13:43:08.0492145Z"
123+
created: "2025-03-18T05:42:20.613831671Z"
106124
description: CSI NFS Driver for Kubernetes
107125
digest: 44406231cd5cdada1c62a0541b93b4f5d5a70ccc8c50b33553a8692fe6cfae96
108126
name: csi-driver-nfs
@@ -111,7 +129,7 @@ entries:
111129
version: v3.0.0
112130
- apiVersion: v1
113131
appVersion: v2.0.0
114-
created: "2024-09-01T13:43:08.048792062Z"
132+
created: "2025-03-18T05:42:20.613417211Z"
115133
description: CSI NFS Driver for Kubernetes
116134
digest: 1a32c6fc016526fe19a0c9e0dfbe83d0ddde67ced533bb5f5d24d713f706c613
117135
name: csi-driver-nfs
@@ -120,11 +138,11 @@ entries:
120138
version: v2.0.0
121139
- apiVersion: v1
122140
appVersion: latest
123-
created: "2024-09-01T13:43:08.04854528Z"
141+
created: "2025-03-18T05:42:20.613181817Z"
124142
description: CSI NFS Driver for Kubernetes
125-
digest: 1850c4492caaead20c9049fba0d48ce50f2e96a4dca925a99df5b8a390c04053
143+
digest: 89b8ca37d40c3e884390dcfebf4dc95a9abef79da9951293bf57366590986063
126144
name: csi-driver-nfs
127145
urls:
128146
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-nfs/master/charts/latest/csi-driver-nfs-v0.0.0.tgz
129147
version: v0.0.0
130-
generated: "2024-09-01T13:43:08.047626652Z"
148+
generated: "2025-03-18T05:42:20.612152798Z"
507 Bytes
Binary file not shown.

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

Lines changed: 48 additions & 8 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 tpl "{{ .Values.controller.affinity }}" . | contains "nodeSelectorTerms" }}
29+
{{- with .Values.controller.affinity }}
2830
affinity:
2931
{{ toYaml . | indent 8 }}
30-
{{- end }}
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 tpl "{{ .Values.controller.affinity }}" . | contains "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:

0 commit comments

Comments
 (0)