doc: cut v1.16.0 release

This commit is contained in:
andyzhangx 2024-09-01 13:39:41 +00:00
parent 54c6421b9b
commit 35d5601d06
28 changed files with 1427 additions and 48 deletions

View File

@ -13,9 +13,9 @@ This driver allows Kubernetes to access [SMB](https://wiki.wireshark.org/SMB) se
|Driver Version | supported k8s version | supported [Windows csi-proxy](https://github.com/kubernetes-csi/csi-proxy) version | |Driver Version | supported k8s version | supported [Windows csi-proxy](https://github.com/kubernetes-csi/csi-proxy) version |
|---------------|-----------------------|-------------------------------------| |---------------|-----------------------|-------------------------------------|
|master branch | 1.21+ | v0.2.2+ | |master branch | 1.21+ | v0.2.2+ |
|v1.16.0 | 1.21+ | v0.2.2+ |
|v1.15.0 | 1.21+ | v0.2.2+ | |v1.15.0 | 1.21+ | v0.2.2+ |
|v1.14.0 | 1.21+ | v0.2.2+ | |v1.14.0 | 1.21+ | v0.2.2+ |
|v1.13.0 | 1.21+ | v0.2.2+ |
### Driver parameters ### Driver parameters
Please refer to `smb.csi.k8s.io` [driver parameters](./docs/driver-parameters.md) Please refer to `smb.csi.k8s.io` [driver parameters](./docs/driver-parameters.md)

View File

@ -15,7 +15,7 @@
```console ```console
helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0 helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.16.0
``` ```
### install driver with customized driver name, deployment name ### install driver with customized driver name, deployment name

View File

@ -2,53 +2,71 @@ apiVersion: v1
entries: entries:
csi-driver-smb: csi-driver-smb:
- apiVersion: v1 - apiVersion: v1
appVersion: v1.15.0 appVersion: v1.16.0
created: "2024-07-18T07:01:35.913226539Z" created: "2024-09-01T13:38:18.751018927Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: fcadda7e1af1bcfbfd42da9f4a02f6baaa96b0b48bafe7241dc4c5a588d9e4b4 digest: 60c6a2c4663c639eb1be8f88b0edcfa7ea4450386bf41e02778fe512db8f3ba0
name: csi-driver-smb
urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/latest/csi-driver-smb-v1.16.0.tgz
version: v1.16.0
- apiVersion: v1
appVersion: v1.16.0
created: "2024-09-01T13:38:18.76227771Z"
description: SMB CSI Driver for Kubernetes
digest: 60c6a2c4663c639eb1be8f88b0edcfa7ea4450386bf41e02778fe512db8f3ba0
name: csi-driver-smb
urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.16.0/csi-driver-smb-v1.16.0.tgz
version: v1.16.0
- apiVersion: v1
appVersion: v1.15.0
created: "2024-09-01T13:38:18.761689813Z"
description: SMB CSI Driver for Kubernetes
digest: 1f006480427f88f781c3f7b3cf5e3d0429c68bb082a6a9337363ea5ef5a5cd0b
name: csi-driver-smb name: csi-driver-smb
urls: urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.15.0/csi-driver-smb-v1.15.0.tgz - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.15.0/csi-driver-smb-v1.15.0.tgz
version: v1.15.0 version: v1.15.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.14.0 appVersion: v1.14.0
created: "2024-07-18T07:01:35.912556862Z" created: "2024-09-01T13:38:18.760822176Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 5d63c8c4824b43ad35f498854be6d24a06e3d7c19a50c57dc5c6de26d7f39850 digest: a84e22518f5e6cd1d3fcb06ef8c7616371c96400e8db6227bc84cd0474f6cce1
name: csi-driver-smb name: csi-driver-smb
urls: urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.14.0/csi-driver-smb-v1.14.0.tgz - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.14.0/csi-driver-smb-v1.14.0.tgz
version: v1.14.0 version: v1.14.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.13.0 appVersion: v1.13.0
created: "2024-07-18T07:01:35.911302429Z" created: "2024-09-01T13:38:18.758680643Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 962ae1f26a13852e86256464e534228ae6118109aeb1e63abbee07ca18809cff digest: 21ee866afbf5a59892c5588b00518e0f7853beac7643e8e558d440a260c6f142
name: csi-driver-smb name: csi-driver-smb
urls: urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.13.0/csi-driver-smb-v1.13.0.tgz - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.13.0/csi-driver-smb-v1.13.0.tgz
version: v1.13.0 version: v1.13.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.12.0 appVersion: v1.12.0
created: "2024-07-18T07:01:35.910377602Z" created: "2024-09-01T13:38:18.757527292Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: eb1f894fa5ad0c20da3b26a3ad4c20857914c8d76a098fd2185ff068d6118ddd digest: fccc852a3e723b9d273ea21d1d59697a0a94b65665406de1fd7c461bd894d2a3
name: csi-driver-smb name: csi-driver-smb
urls: urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.12.0/csi-driver-smb-v1.12.0.tgz - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.12.0/csi-driver-smb-v1.12.0.tgz
version: v1.12.0 version: v1.12.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.11.0 appVersion: v1.11.0
created: "2024-07-18T07:01:35.909790622Z" created: "2024-09-01T13:38:18.756676418Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: ab3cab9509579264ed95e49a0ad077019a52a45b4e6cc436de5b1f70c03699ed digest: 1c0f9b72801cbeb240d06dfe665a58e4b6ac0c25c5315ee5b9fe7972362796d0
name: csi-driver-smb name: csi-driver-smb
urls: urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.11.0/csi-driver-smb-v1.11.0.tgz - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.11.0/csi-driver-smb-v1.11.0.tgz
version: v1.11.0 version: v1.11.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.10.0 appVersion: v1.10.0
created: "2024-07-18T07:01:35.909229141Z" created: "2024-09-01T13:38:18.755908113Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 82e460e6fa80da9ca523a86c28e001e15595d27c3507864f2123dbadc64c7fec digest: 82e460e6fa80da9ca523a86c28e001e15595d27c3507864f2123dbadc64c7fec
name: csi-driver-smb name: csi-driver-smb
@ -57,7 +75,7 @@ entries:
version: v1.10.0 version: v1.10.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.9.0 appVersion: v1.9.0
created: "2024-07-18T07:01:35.917886844Z" created: "2024-09-01T13:38:18.770960453Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 5c78c650b9755e508afecb3f6a554c549509023f7b0610b53853a41783d1c08f digest: 5c78c650b9755e508afecb3f6a554c549509023f7b0610b53853a41783d1c08f
name: csi-driver-smb name: csi-driver-smb
@ -66,7 +84,7 @@ entries:
version: v1.9.0 version: v1.9.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.8.0 appVersion: v1.8.0
created: "2024-07-18T07:01:35.916780844Z" created: "2024-09-01T13:38:18.767677819Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: d19d156c2143d753085bcbcb32506f8ebd7ebdee275e726f9c8d774a1f0b9f34 digest: d19d156c2143d753085bcbcb32506f8ebd7ebdee275e726f9c8d774a1f0b9f34
name: csi-driver-smb name: csi-driver-smb
@ -75,7 +93,7 @@ entries:
version: v1.8.0 version: v1.8.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.7.0 appVersion: v1.7.0
created: "2024-07-18T07:01:35.916262439Z" created: "2024-09-01T13:38:18.766821155Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 65594a1ff09d912a33ee0674bba1fad1f7c717638a281fb68bcfa2c98c288453 digest: 65594a1ff09d912a33ee0674bba1fad1f7c717638a281fb68bcfa2c98c288453
name: csi-driver-smb name: csi-driver-smb
@ -84,7 +102,7 @@ entries:
version: v1.7.0 version: v1.7.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.6.0 appVersion: v1.6.0
created: "2024-07-18T07:01:35.9157366Z" created: "2024-09-01T13:38:18.766033926Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 31dd4c8b0b0d4a61565631aa5b433b18b5375aeb24812bf4fa9958d5b7917485 digest: 31dd4c8b0b0d4a61565631aa5b433b18b5375aeb24812bf4fa9958d5b7917485
name: csi-driver-smb name: csi-driver-smb
@ -93,7 +111,7 @@ entries:
version: v1.6.0 version: v1.6.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.5.0 appVersion: v1.5.0
created: "2024-07-18T07:01:35.915194658Z" created: "2024-09-01T13:38:18.765235009Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: b7dc9e9dc5d46df12a6d1a5643efe86439bff6c36867968f772e6899692083d6 digest: b7dc9e9dc5d46df12a6d1a5643efe86439bff6c36867968f772e6899692083d6
name: csi-driver-smb name: csi-driver-smb
@ -102,7 +120,7 @@ entries:
version: v1.5.0 version: v1.5.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.4.0 appVersion: v1.4.0
created: "2024-07-18T07:01:35.91471083Z" created: "2024-09-01T13:38:18.764618377Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 9b1a6166ab72c09d0eefb448ecc998639b9f6255afb00bfc0ae0a4fdad76f119 digest: 9b1a6166ab72c09d0eefb448ecc998639b9f6255afb00bfc0ae0a4fdad76f119
name: csi-driver-smb name: csi-driver-smb
@ -111,7 +129,7 @@ entries:
version: v1.4.0 version: v1.4.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.3.0 appVersion: v1.3.0
created: "2024-07-18T07:01:35.9142089Z" created: "2024-09-01T13:38:18.763827043Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: d2236d36f1cb24139ddf87ea87229369ed856efc42330e656330f6cfa7635858 digest: d2236d36f1cb24139ddf87ea87229369ed856efc42330e656330f6cfa7635858
name: csi-driver-smb name: csi-driver-smb
@ -120,7 +138,7 @@ entries:
version: v1.3.0 version: v1.3.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.2.0 appVersion: v1.2.0
created: "2024-07-18T07:01:35.913729165Z" created: "2024-09-01T13:38:18.763063358Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 9d7099165db24d5412c95b298a59cca9b233ab8800d04efd34bb055812390915 digest: 9d7099165db24d5412c95b298a59cca9b233ab8800d04efd34bb055812390915
name: csi-driver-smb name: csi-driver-smb
@ -129,7 +147,7 @@ entries:
version: v1.2.0 version: v1.2.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.1.0 appVersion: v1.1.0
created: "2024-07-18T07:01:35.908645738Z" created: "2024-09-01T13:38:18.755025892Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 5b39613c9104db06815ee2d42fec8507c3bb2038264513449079a4eb5b6530a8 digest: 5b39613c9104db06815ee2d42fec8507c3bb2038264513449079a4eb5b6530a8
name: csi-driver-smb name: csi-driver-smb
@ -138,7 +156,7 @@ entries:
version: v1.1.0 version: v1.1.0
- apiVersion: v1 - apiVersion: v1
appVersion: v1.0.0 appVersion: v1.0.0
created: "2024-07-18T07:01:35.90818241Z" created: "2024-09-01T13:38:18.754222539Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 3e4721dd007cc51750f7221be8f66ec7e287c83a8cdcfeb9a71c30f526b06dc4 digest: 3e4721dd007cc51750f7221be8f66ec7e287c83a8cdcfeb9a71c30f526b06dc4
name: csi-driver-smb name: csi-driver-smb
@ -147,7 +165,7 @@ entries:
version: v1.0.0 version: v1.0.0
- apiVersion: v1 - apiVersion: v1
appVersion: v0.6.0 appVersion: v0.6.0
created: "2024-07-18T07:01:35.907895082Z" created: "2024-09-01T13:38:18.753656885Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 6fc9d05bc78ca98fb17071b7f5ad05b4c071f2403114d72feae99fb89ca1fc9f digest: 6fc9d05bc78ca98fb17071b7f5ad05b4c071f2403114d72feae99fb89ca1fc9f
name: csi-driver-smb name: csi-driver-smb
@ -156,7 +174,7 @@ entries:
version: v0.6.0 version: v0.6.0
- apiVersion: v1 - apiVersion: v1
appVersion: v0.5.0 appVersion: v0.5.0
created: "2024-07-18T07:01:35.907635599Z" created: "2024-09-01T13:38:18.753161977Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 8264c6630806325613234c2d7951c188d073607e6f0f89d781ec32afed04157b digest: 8264c6630806325613234c2d7951c188d073607e6f0f89d781ec32afed04157b
name: csi-driver-smb name: csi-driver-smb
@ -165,7 +183,7 @@ entries:
version: v0.5.0 version: v0.5.0
- apiVersion: v1 - apiVersion: v1
appVersion: v0.4.0 appVersion: v0.4.0
created: "2024-07-18T07:01:35.9073598Z" created: "2024-09-01T13:38:18.752592007Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: fb6d581ba5d4d1d78ca468f6daa4a24c47bb147b74d005d3c394521b4e534a3e digest: fb6d581ba5d4d1d78ca468f6daa4a24c47bb147b74d005d3c394521b4e534a3e
name: csi-driver-smb name: csi-driver-smb
@ -174,7 +192,7 @@ entries:
version: v0.4.0 version: v0.4.0
- apiVersion: v1 - apiVersion: v1
appVersion: v0.3.0 appVersion: v0.3.0
created: "2024-07-18T07:01:35.90705017Z" created: "2024-09-01T13:38:18.752062233Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: ee9e58db6d4a95491e2012c6607126bbff827b9c439e90e9a9798d2a73b0cb22 digest: ee9e58db6d4a95491e2012c6607126bbff827b9c439e90e9a9798d2a73b0cb22
name: csi-driver-smb name: csi-driver-smb
@ -183,7 +201,7 @@ entries:
version: v0.3.0 version: v0.3.0
- apiVersion: v1 - apiVersion: v1
appVersion: v0.2.0 appVersion: v0.2.0
created: "2024-07-18T07:01:35.906774642Z" created: "2024-09-01T13:38:18.751549685Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 8d8667106306d78dea9f63e5a3e8ee7ad2b60f86bd625f5968e37ca6a0cad317 digest: 8d8667106306d78dea9f63e5a3e8ee7ad2b60f86bd625f5968e37ca6a0cad317
name: csi-driver-smb name: csi-driver-smb
@ -192,20 +210,11 @@ entries:
version: v0.2.0 version: v0.2.0
- apiVersion: v1 - apiVersion: v1
appVersion: latest appVersion: latest
created: "2024-07-18T07:01:35.917321375Z" created: "2024-09-01T13:38:18.768465572Z"
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
digest: 37a15bd85f6f9f2df20aed317d9baa3774128552488d02c2897d561e67777963 digest: 37a15bd85f6f9f2df20aed317d9baa3774128552488d02c2897d561e67777963
name: csi-driver-smb name: csi-driver-smb
urls: urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.9.0/csi-driver-smb-v0.0.0.tgz - https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.9.0/csi-driver-smb-v0.0.0.tgz
version: v0.0.0 version: v0.0.0
- apiVersion: v1 generated: "2024-09-01T13:38:18.750259778Z"
appVersion: latest
created: "2024-07-18T07:01:35.906489397Z"
description: SMB CSI Driver for Kubernetes
digest: 9f33f890081370cf54c706201a6a549ea9c081a878ffaf8c3a3afc03fb6ab134
name: csi-driver-smb
urls:
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/latest/csi-driver-smb-v0.0.0.tgz
version: v0.0.0
generated: "2024-07-18T07:01:35.905706656Z"

Binary file not shown.

View File

@ -1,5 +1,5 @@
apiVersion: v1 apiVersion: v1
appVersion: latest appVersion: v1.16.0
description: SMB CSI Driver for Kubernetes description: SMB CSI Driver for Kubernetes
name: csi-driver-smb name: csi-driver-smb
version: v0.0.0 version: v1.16.0

View File

@ -1,8 +1,8 @@
image: image:
baseRepo: registry.k8s.io/sig-storage baseRepo: registry.k8s.io/sig-storage
smb: smb:
repository: gcr.io/k8s-staging-sig-storage/smbplugin repository: registry.k8s.io/sig-storage/smbplugin
tag: canary tag: v1.16.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
csiProvisioner: csiProvisioner:
repository: /csi-provisioner repository: /csi-provisioner

Binary file not shown.

View File

@ -0,0 +1,5 @@
apiVersion: v1
appVersion: v1.16.0
description: SMB CSI Driver for Kubernetes
name: csi-driver-smb
version: v1.16.0

View File

@ -0,0 +1,5 @@
The CSI SMB Driver is getting deployed to your cluster.
To check CSI SMB Driver pods status, please run:
kubectl --namespace={{ .Release.Namespace }} get pods --selector="app.kubernetes.io/name={{ .Release.Name }}" --watch

View File

@ -0,0 +1,29 @@
{{/* vim: set filetype=mustache: */}}
{{/* Expand the name of the chart.*/}}
{{- define "smb.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/* labels for helm resources */}}
{{- define "smb.labels" -}}
labels:
app.kubernetes.io/instance: "{{ .Release.Name }}"
app.kubernetes.io/managed-by: "{{ .Release.Service }}"
app.kubernetes.io/name: "{{ template "smb.name" . }}"
app.kubernetes.io/version: "{{ .Chart.AppVersion }}"
helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
{{- if .Values.customLabels }}
{{ toYaml .Values.customLabels | indent 2 -}}
{{- end }}
{{- end -}}
{{/* pull secrets for containers */}}
{{- define "smb.pullSecrets" -}}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- range .Values.imagePullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
{{- end -}}

View File

@ -0,0 +1,48 @@
{{- if .Values.windows.csiproxy.enabled}}
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: {{ .Values.windows.csiproxy.dsName }}
namespace: {{ .Release.Namespace }}
{{ include "smb.labels" . | indent 2 }}
spec:
updateStrategy:
rollingUpdate:
maxUnavailable: {{ .Values.node.maxUnavailable }}
type: RollingUpdate
selector:
matchLabels:
app: {{ .Values.windows.csiproxy.dsName }}
template:
metadata:
{{ include "smb.labels" . | indent 6 }}
app: {{ .Values.windows.csiproxy.dsName }}
spec:
{{- with .Values.windows.csiproxy.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
securityContext:
windowsOptions:
hostProcess: true
runAsUserName: {{ .Values.windows.csiproxy.username | quote }}
hostNetwork: true
nodeSelector:
{{- with .Values.windows.csiproxy.nodeSelector }}
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.node.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- include "smb.pullSecrets" . | indent 6 }}
containers:
- name: csi-proxy
{{- if hasPrefix "/" .Values.image.csiproxy.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiproxy.repository }}:{{ .Values.image.csiproxy.tag }}"
{{- else }}
image: "{{ .Values.image.csiproxy.repository }}:{{ .Values.image.csiproxy.tag }}"
{{- end }}
imagePullPolicy: {{ .Values.image.csiproxy.pullPolicy }}
{{- end -}}

View File

@ -0,0 +1,142 @@
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: {{ .Values.controller.name }}
namespace: {{ .Release.Namespace }}
{{ include "smb.labels" . | indent 2 }}
spec:
strategy:
type: Recreate
replicas: {{ .Values.controller.replicas }}
selector:
matchLabels:
app: {{ .Values.controller.name }}
template:
metadata:
{{ include "smb.labels" . | indent 6 }}
app: {{ .Values.controller.name }}
{{- if .Values.podLabels }}
{{- toYaml .Values.podLabels | nindent 8 }}
{{- end }}
{{- if .Values.podAnnotations }}
annotations:
{{ toYaml .Values.podAnnotations | indent 8 }}
{{- end }}
spec:
{{- with .Values.controller.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
hostNetwork: true
dnsPolicy: {{ .Values.controller.dnsPolicy }}
serviceAccountName: {{ .Values.serviceAccount.controller }}
nodeSelector:
{{- with .Values.controller.nodeSelector }}
{{ toYaml . | indent 8 }}
{{- end }}
kubernetes.io/os: linux
{{- if .Values.controller.runOnMaster}}
node-role.kubernetes.io/master: ""
{{- end}}
{{- if .Values.controller.runOnControlPlane}}
node-role.kubernetes.io/control-plane: ""
{{- end}}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- if .Values.securityContext }}
securityContext: {{- toYaml .Values.securityContext | nindent 8 }}
{{- end }}
{{- with .Values.controller.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
{{- include "smb.pullSecrets" . | indent 6 }}
containers:
- name: csi-provisioner
{{- if hasPrefix "/" .Values.image.csiProvisioner.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}"
{{- else }}
image: "{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}"
{{- end }}
args:
- "-v=2"
- "--csi-address=$(ADDRESS)"
- "--leader-election"
- "--leader-election-namespace={{ .Release.Namespace }}"
- "--extra-create-metadata=true"
- "--feature-gates=HonorPVReclaimPolicy=true"
env:
- name: ADDRESS
value: /csi/csi.sock
imagePullPolicy: {{ .Values.image.csiProvisioner.pullPolicy }}
volumeMounts:
- mountPath: /csi
name: socket-dir
resources: {{- toYaml .Values.controller.resources.csiProvisioner | nindent 12 }}
securityContext:
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
- name: liveness-probe
{{- if hasPrefix "/" .Values.image.livenessProbe.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
{{- else }}
image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
{{- end }}
args:
- --csi-address=/csi/csi.sock
- --probe-timeout=3s
- --http-endpoint=localhost:{{ .Values.controller.livenessProbe.healthPort }}
- --v=2
imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }}
volumeMounts:
- name: socket-dir
mountPath: /csi
resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }}
securityContext:
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
- name: smb
{{- if hasPrefix "/" .Values.image.smb.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.smb.repository }}:{{ .Values.image.smb.tag }}"
{{- else }}
image: "{{ .Values.image.smb.repository }}:{{ .Values.image.smb.tag }}"
{{- end }}
imagePullPolicy: {{ .Values.image.smb.pullPolicy }}
args:
- "--v={{ .Values.controller.logLevel }}"
- "--endpoint=$(CSI_ENDPOINT)"
- "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}"
- "--drivername={{ .Values.driver.name }}"
- "--working-mount-dir={{ .Values.controller.workingMountDir }}"
ports:
- containerPort: {{ .Values.controller.metricsPort }}
name: metrics
protocol: TCP
livenessProbe:
failureThreshold: 5
httpGet:
host: localhost
path: /healthz
port: {{ .Values.controller.livenessProbe.healthPort }}
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix:///csi/csi.sock
securityContext:
privileged: true
capabilities:
drop:
- ALL
volumeMounts:
- mountPath: /csi
name: socket-dir
resources: {{- toYaml .Values.controller.resources.smb | nindent 12 }}
volumes:
- name: socket-dir
emptyDir: {}

View File

@ -0,0 +1,8 @@
---
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
name: {{ .Values.driver.name }}
spec:
attachRequired: false
podInfoOnMount: true

View File

@ -0,0 +1,183 @@
{{- if .Values.windows.enabled}}
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: {{ .Values.windows.dsName }}
namespace: {{ .Release.Namespace }}
{{ include "smb.labels" . | indent 2 }}
spec:
updateStrategy:
rollingUpdate:
maxUnavailable: {{ .Values.node.maxUnavailable }}
type: RollingUpdate
selector:
matchLabels:
app: {{ .Values.windows.dsName }}
template:
metadata:
{{ include "smb.labels" . | indent 6 }}
app: {{ .Values.windows.dsName }}
spec:
{{- with .Values.windows.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
nodeSelector:
kubernetes.io/os: windows
{{- with .Values.node.nodeSelector }}
{{ toYaml . | indent 8 }}
{{- end }}
{{- with .Values.node.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- if .Values.securityContext }}
securityContext: {{- toYaml .Values.securityContext | nindent 8 }}
{{- end }}
serviceAccountName: {{ .Values.serviceAccount.node }}
{{- include "smb.pullSecrets" . | indent 6 }}
containers:
- name: liveness-probe
volumeMounts:
- mountPath: C:\csi
name: plugin-dir
{{- if hasPrefix "/" .Values.image.livenessProbe.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
{{- else }}
image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
{{- end }}
args:
- --csi-address=$(CSI_ENDPOINT)
- --probe-timeout=3s
- --health-port={{ .Values.node.livenessProbe.healthPort }}
- --v=2
env:
- name: CSI_ENDPOINT
value: unix://C:\\csi\\csi.sock
imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }}
resources: {{- toYaml .Values.windows.resources.livenessProbe | nindent 12 }}
securityContext:
capabilities:
drop:
- ALL
- name: node-driver-registrar
{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}"
{{- else }}
image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}"
{{- end }}
args:
- --v=2
- --csi-address=$(CSI_ENDPOINT)
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
livenessProbe:
exec:
command:
- /csi-node-driver-registrar.exe
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
- --mode=kubelet-registration-probe
initialDelaySeconds: 60
timeoutSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix://C:\\csi\\csi.sock
- name: DRIVER_REG_SOCK_PATH
value: {{ .Values.windows.kubelet | replace "\\" "\\\\" }}\\plugins\\{{ .Values.driver.name }}\\csi.sock
- name: KUBE_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
imagePullPolicy: {{ .Values.image.nodeDriverRegistrar.pullPolicy }}
volumeMounts:
- name: plugin-dir
mountPath: C:\csi
- name: registration-dir
mountPath: C:\registration
resources: {{- toYaml .Values.windows.resources.nodeDriverRegistrar | nindent 12 }}
securityContext:
capabilities:
drop:
- ALL
- name: smb
{{- if hasPrefix "/" .Values.image.smb.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.smb.repository }}:{{ .Values.image.smb.tag }}"
{{- else }}
image: "{{ .Values.image.smb.repository }}:{{ .Values.image.smb.tag }}"
{{- end }}
imagePullPolicy: {{ .Values.image.smb.pullPolicy }}
args:
- "--v={{ .Values.node.logLevel }}"
- "--drivername={{ .Values.driver.name }}"
- --endpoint=$(CSI_ENDPOINT)
- --nodeid=$(KUBE_NODE_NAME)
- "--enable-get-volume-stats={{ .Values.feature.enableGetVolumeStats }}"
- "--remove-smb-mapping-during-unmount={{ .Values.windows.removeSMBMappingDuringUnmount }}"
ports:
- containerPort: {{ .Values.node.livenessProbe.healthPort }}
name: healthz
protocol: TCP
livenessProbe:
failureThreshold: 5
httpGet:
path: /healthz
port: healthz
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix://C:\\csi\\csi.sock
- name: KUBE_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
volumeMounts:
- name: kubelet-dir
mountPath: {{ .Values.windows.kubelet }}\
- name: plugin-dir
mountPath: C:\csi
- name: csi-proxy-fs-pipe-v1
mountPath: \\.\pipe\csi-proxy-filesystem-v1
- name: csi-proxy-smb-pipe-v1
mountPath: \\.\pipe\csi-proxy-smb-v1
# these paths are still included for compatibility, they're used
# only if the node has still the beta version of the CSI proxy
- name: csi-proxy-fs-pipe-v1beta1
mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1
- name: csi-proxy-smb-pipe-v1beta1
mountPath: \\.\pipe\csi-proxy-smb-v1beta1
resources: {{- toYaml .Values.windows.resources.smb | nindent 12 }}
securityContext:
capabilities:
drop:
- ALL
volumes:
- name: csi-proxy-fs-pipe-v1
hostPath:
path: \\.\pipe\csi-proxy-filesystem-v1
- name: csi-proxy-smb-pipe-v1
hostPath:
path: \\.\pipe\csi-proxy-smb-v1
# these paths are still included for compatibility, they're used
# only if the node has still the beta version of the CSI proxy
- name: csi-proxy-fs-pipe-v1beta1
hostPath:
path: \\.\pipe\csi-proxy-filesystem-v1beta1
- name: csi-proxy-smb-pipe-v1beta1
hostPath:
path: \\.\pipe\csi-proxy-smb-v1beta1
- name: registration-dir
hostPath:
path: {{ .Values.windows.kubelet }}\plugins_registry\
type: Directory
- name: kubelet-dir
hostPath:
path: {{ .Values.windows.kubelet }}\
type: Directory
- name: plugin-dir
hostPath:
path: {{ .Values.windows.kubelet }}\plugins\{{ .Values.driver.name }}\
type: DirectoryOrCreate
{{- end -}}

View File

@ -0,0 +1,172 @@
{{- if .Values.linux.enabled}}
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: {{ .Values.linux.dsName }}
namespace: {{ .Release.Namespace }}
{{ include "smb.labels" . | indent 2 }}
spec:
updateStrategy:
rollingUpdate:
maxUnavailable: {{ .Values.node.maxUnavailable }}
type: RollingUpdate
selector:
matchLabels:
app: {{ .Values.linux.dsName }}
template:
metadata:
{{ include "smb.labels" . | indent 6 }}
app: {{ .Values.linux.dsName }}
{{- if .Values.podLabels }}
{{- toYaml .Values.podLabels | nindent 8 }}
{{- end }}
{{- if .Values.podAnnotations }}
annotations:
{{ toYaml .Values.podAnnotations | indent 8 }}
{{- end }}
spec:
{{- with .Values.node.affinity }}
affinity:
{{ toYaml . | indent 8 }}
{{- end }}
hostNetwork: true
dnsPolicy: {{ .Values.linux.dnsPolicy }}
serviceAccountName: {{ .Values.serviceAccount.node }}
nodeSelector:
kubernetes.io/os: linux
{{- with .Values.node.nodeSelector }}
{{ toYaml . | indent 8 }}
{{- end }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- if .Values.securityContext }}
securityContext: {{- toYaml .Values.securityContext | nindent 8 }}
{{- end }}
{{- with .Values.linux.tolerations }}
tolerations:
{{ toYaml . | indent 8 }}
{{- end }}
{{- include "smb.pullSecrets" . | indent 6 }}
containers:
- name: liveness-probe
volumeMounts:
- mountPath: /csi
name: socket-dir
{{- if hasPrefix "/" .Values.image.livenessProbe.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
{{- else }}
image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}"
{{- end }}
args:
- --csi-address=/csi/csi.sock
- --probe-timeout=3s
- --http-endpoint=localhost:{{ .Values.node.livenessProbe.healthPort }}
- --v=2
imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }}
resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }}
securityContext:
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
- name: node-driver-registrar
{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}"
{{- else }}
image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}"
{{- end }}
args:
- --csi-address=$(ADDRESS)
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
- --v=2
livenessProbe:
exec:
command:
- /csi-node-driver-registrar
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
- --mode=kubelet-registration-probe
initialDelaySeconds: 30
timeoutSeconds: 15
env:
- name: ADDRESS
value: /csi/csi.sock
- name: DRIVER_REG_SOCK_PATH
value: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}/csi.sock
imagePullPolicy: {{ .Values.image.nodeDriverRegistrar.pullPolicy }}
volumeMounts:
- name: socket-dir
mountPath: /csi
- name: registration-dir
mountPath: /registration
resources: {{- toYaml .Values.linux.resources.nodeDriverRegistrar | nindent 12 }}
securityContext:
capabilities:
drop:
- ALL
- name: smb
{{- if hasPrefix "/" .Values.image.smb.repository }}
image: "{{ .Values.image.baseRepo }}{{ .Values.image.smb.repository }}:{{ .Values.image.smb.tag }}"
{{- else }}
image: "{{ .Values.image.smb.repository }}:{{ .Values.image.smb.tag }}"
{{- end }}
imagePullPolicy: {{ .Values.image.smb.pullPolicy }}
args:
- "--v={{ .Values.node.logLevel }}"
- "--drivername={{ .Values.driver.name }}"
- "--endpoint=$(CSI_ENDPOINT)"
- "--nodeid=$(KUBE_NODE_NAME)"
- "--enable-get-volume-stats={{ .Values.feature.enableGetVolumeStats }}"
- "--krb5-prefix={{ .Values.linux.krb5Prefix }}"
livenessProbe:
failureThreshold: 5
httpGet:
host: localhost
path: /healthz
port: {{ .Values.node.livenessProbe.healthPort }}
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix:///csi/csi.sock
- name: KUBE_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
securityContext:
privileged: true
capabilities:
drop:
- ALL
volumeMounts:
- mountPath: /csi
name: socket-dir
- mountPath: {{ .Values.linux.kubelet }}
mountPropagation: Bidirectional
name: mountpoint-dir
{{- if ne .Values.linux.krb5CacheDirectory "" }}
- mountPath: {{ .Values.linux.kubelet }}/kerberos/
mountPropagation: Bidirectional
name: krb5cache-dir
{{- end }}
resources: {{- toYaml .Values.linux.resources.smb | nindent 12 }}
volumes:
- hostPath:
path: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}
type: DirectoryOrCreate
name: socket-dir
- hostPath:
path: {{ .Values.linux.kubelet }}/
type: DirectoryOrCreate
name: mountpoint-dir
- hostPath:
path: {{ .Values.linux.kubelet }}/plugins_registry/
type: DirectoryOrCreate
name: registration-dir
{{- if ne .Values.linux.krb5CacheDirectory "" }}
- hostPath:
path: {{ .Values.linux.krb5CacheDirectory }}
type: DirectoryOrCreate
name: krb5cache-dir
{{- end }}
{{- end -}}

View File

@ -0,0 +1,65 @@
{{- if .Values.serviceAccount.create -}}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.serviceAccount.controller }}
namespace: {{ .Release.Namespace }}
{{ include "smb.labels" . | indent 2 }}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.serviceAccount.node }}
namespace: {{ .Release.Namespace }}
{{ include "smb.labels" . | indent 2 }}
{{ end }}
{{- if .Values.rbac.create -}}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Values.rbac.name }}-external-provisioner-role
{{ include "smb.labels" . | indent 2 }}
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "patch", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
- apiGroups: ["storage.k8s.io"]
resources: ["csinodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ .Values.rbac.name }}-csi-provisioner-binding
{{ include "smb.labels" . | indent 2 }}
subjects:
- kind: ServiceAccount
name: {{ .Values.serviceAccount.controller }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: ClusterRole
name: {{ .Values.rbac.name }}-external-provisioner-role
apiGroup: rbac.authorization.k8s.io
{{ end }}

View File

@ -0,0 +1,167 @@
image:
baseRepo: registry.k8s.io/sig-storage
smb:
repository: registry.k8s.io/sig-storage/smbplugin
tag: v1.16.0
pullPolicy: IfNotPresent
csiProvisioner:
repository: /csi-provisioner
tag: v5.0.2
pullPolicy: IfNotPresent
livenessProbe:
repository: /livenessprobe
tag: v2.13.1
pullPolicy: IfNotPresent
nodeDriverRegistrar:
repository: /csi-node-driver-registrar
tag: v2.11.1
pullPolicy: IfNotPresent
csiproxy:
repository: ghcr.io/kubernetes-sigs/sig-windows/csi-proxy
tag: v1.1.2
pullPolicy: IfNotPresent
serviceAccount:
create: true # When true, service accounts will be created for you. Set to false if you want to use your own.
controller: csi-smb-controller-sa
node: csi-smb-node-sa
rbac:
create: true
name: smb
driver:
name: smb.csi.k8s.io
feature:
enableGetVolumeStats: true
controller:
name: csi-smb-controller
replicas: 1
dnsPolicy: ClusterFirstWithHostNet # available values: Default, ClusterFirstWithHostNet, ClusterFirst
metricsPort: 29644
livenessProbe:
healthPort: 29642
runOnMaster: false
runOnControlPlane: false
logLevel: 5
workingMountDir: "/tmp"
resources:
csiProvisioner:
limits:
memory: 300Mi
requests:
cpu: 10m
memory: 20Mi
livenessProbe:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
smb:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 20Mi
affinity: {}
nodeSelector: {}
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/controlplane"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
node:
maxUnavailable: 1
logLevel: 5
livenessProbe:
healthPort: 29643
affinity: {}
nodeSelector: {}
linux:
enabled: true
dsName: csi-smb-node # daemonset name
dnsPolicy: ClusterFirstWithHostNet # available values: Default, ClusterFirstWithHostNet, ClusterFirst
kubelet: /var/lib/kubelet
krb5CacheDirectory: "" # directory for kerberos credential cache, empty string means default(/var/lib/kubelet/kerberos/)
krb5Prefix: "" # prefix for kerberos credential cache, empty string means default(krb5cc_)
tolerations:
- operator: "Exists"
resources:
livenessProbe:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
nodeDriverRegistrar:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
smb:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 20Mi
windows:
enabled: false # Unless you already had csi proxy installed, windows.csiproxy.enabled=true is required
dsName: csi-smb-node-win # daemonset name
kubelet: 'C:\var\lib\kubelet'
removeSMBMappingDuringUnmount: true
tolerations:
- key: "node.kubernetes.io/os"
operator: "Exists"
effect: "NoSchedule"
resources:
livenessProbe:
limits:
memory: 150Mi
requests:
cpu: 10m
memory: 40Mi
nodeDriverRegistrar:
limits:
memory: 150Mi
requests:
cpu: 10m
memory: 40Mi
smb:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 40Mi
csiproxy:
enabled: false # required if windows.enabled is true, but may be installed manually also
dsName: csi-proxy-win # daemonset name
tolerations: {}
affinity: {}
username: "NT AUTHORITY\\SYSTEM"
nodeSelector:
"kubernetes.io/os": windows
customLabels: {}
## Collection of annotations to add to all the pods
podAnnotations: {}
## Collection of labels to add to all the pods
podLabels: {}
## Leverage a PriorityClass to ensure your pods survive resource shortages
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
priorityClassName: system-cluster-critical
## Security context give the opportunity to run container as nonroot by setting a securityContext
## by example :
## securityContext: { runAsUser: 1001 }
securityContext: { seccompProfile: {type: RuntimeDefault} }

View File

@ -82,7 +82,7 @@ spec:
drop: drop:
- ALL - ALL
- name: smb - name: smb
image: gcr.io/k8s-staging-sig-storage/smbplugin:canary image: registry.k8s.io/sig-storage/smbplugin:v1.16.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
args: args:
- "--v=5" - "--v=5"

View File

@ -93,7 +93,7 @@ spec:
drop: drop:
- ALL - ALL
- name: smb - name: smb
image: gcr.io/k8s-staging-sig-storage/smbplugin:canary image: registry.k8s.io/sig-storage/smbplugin:v1.16.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
args: args:
- --v=5 - --v=5

View File

@ -84,7 +84,7 @@ spec:
drop: drop:
- ALL - ALL
- name: smb - name: smb
image: gcr.io/k8s-staging-sig-storage/smbplugin:canary image: registry.k8s.io/sig-storage/smbplugin:v1.16.0
imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent
args: args:
- "--v=5" - "--v=5"

View File

@ -0,0 +1,123 @@
---
kind: Deployment
apiVersion: apps/v1
metadata:
name: csi-smb-controller
namespace: kube-system
spec:
replicas: 1
selector:
matchLabels:
app: csi-smb-controller
template:
metadata:
labels:
app: csi-smb-controller
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet # available values: Default, ClusterFirstWithHostNet, ClusterFirst
serviceAccountName: csi-smb-controller-sa
nodeSelector:
kubernetes.io/os: linux
priorityClassName: system-cluster-critical
securityContext:
seccompProfile:
type: RuntimeDefault
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/controlplane"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
containers:
- name: csi-provisioner
image: registry.k8s.io/sig-storage/csi-provisioner:v5.0.2
args:
- "-v=2"
- "--csi-address=$(ADDRESS)"
- "--leader-election"
- "--leader-election-namespace=kube-system"
- "--feature-gates=HonorPVReclaimPolicy=true"
- "--extra-create-metadata=true"
env:
- name: ADDRESS
value: /csi/csi.sock
volumeMounts:
- mountPath: /csi
name: socket-dir
resources:
limits:
cpu: 1
memory: 300Mi
requests:
cpu: 10m
memory: 20Mi
securityContext:
capabilities:
drop:
- ALL
- name: liveness-probe
image: registry.k8s.io/sig-storage/livenessprobe:v2.13.1
args:
- --csi-address=/csi/csi.sock
- --probe-timeout=3s
- --http-endpoint=localhost:29642
- --v=2
volumeMounts:
- name: socket-dir
mountPath: /csi
resources:
limits:
cpu: 1
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
securityContext:
capabilities:
drop:
- ALL
- name: smb
image: registry.k8s.io/sig-storage/smbplugin:v1.16.0
imagePullPolicy: IfNotPresent
args:
- "--v=5"
- "--endpoint=$(CSI_ENDPOINT)"
- "--metrics-address=0.0.0.0:29644"
ports:
- containerPort: 29644
name: metrics
protocol: TCP
livenessProbe:
failureThreshold: 5
httpGet:
host: localhost
path: /healthz
port: 29642
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix:///csi/csi.sock
securityContext:
privileged: true
capabilities:
drop:
- ALL
volumeMounts:
- mountPath: /csi
name: socket-dir
resources:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 20Mi
volumes:
- name: socket-dir
emptyDir: {}

View File

@ -0,0 +1,8 @@
---
apiVersion: storage.k8s.io/v1
kind: CSIDriver
metadata:
name: smb.csi.k8s.io
spec:
attachRequired: false
podInfoOnMount: true

View File

@ -0,0 +1,174 @@
---
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: csi-smb-node-win
namespace: kube-system
spec:
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
selector:
matchLabels:
app: csi-smb-node-win
template:
metadata:
labels:
app: csi-smb-node-win
spec:
tolerations:
- key: "node.kubernetes.io/os"
operator: "Exists"
effect: "NoSchedule"
nodeSelector:
kubernetes.io/os: windows
priorityClassName: system-node-critical
securityContext:
seccompProfile:
type: RuntimeDefault
serviceAccountName: csi-smb-node-sa
containers:
- name: liveness-probe
volumeMounts:
- mountPath: C:\csi
name: plugin-dir
image: registry.k8s.io/sig-storage/livenessprobe:v2.13.1
args:
- --csi-address=$(CSI_ENDPOINT)
- --probe-timeout=3s
- --health-port=29643
- --v=2
env:
- name: CSI_ENDPOINT
value: unix://C:\\csi\\csi.sock
resources:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 40Mi
securityContext:
capabilities:
drop:
- ALL
- name: node-driver-registrar
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.11.1
args:
- --v=2
- --csi-address=$(CSI_ENDPOINT)
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
livenessProbe:
exec:
command:
- /csi-node-driver-registrar.exe
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
- --mode=kubelet-registration-probe
initialDelaySeconds: 60
timeoutSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix://C:\\csi\\csi.sock
- name: DRIVER_REG_SOCK_PATH
value: C:\\var\\lib\\kubelet\\plugins\\smb.csi.k8s.io\\csi.sock
- name: KUBE_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
volumeMounts:
- name: kubelet-dir
mountPath: "C:\\var\\lib\\kubelet"
- name: plugin-dir
mountPath: C:\csi
- name: registration-dir
mountPath: C:\registration
resources:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 40Mi
securityContext:
capabilities:
drop:
- ALL
- name: smb
image: registry.k8s.io/sig-storage/smbplugin:v1.16.0
imagePullPolicy: IfNotPresent
args:
- --v=5
- --endpoint=$(CSI_ENDPOINT)
- --nodeid=$(KUBE_NODE_NAME)
- "--remove-smb-mapping-during-unmount=true"
ports:
- containerPort: 29643
name: healthz
protocol: TCP
livenessProbe:
failureThreshold: 5
httpGet:
path: /healthz
port: healthz
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix://C:\\csi\\csi.sock
- name: KUBE_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
volumeMounts:
- name: kubelet-dir
mountPath: "C:\\var\\lib\\kubelet"
- name: plugin-dir
mountPath: C:\csi
- name: csi-proxy-fs-pipe-v1
mountPath: \\.\pipe\csi-proxy-filesystem-v1
- name: csi-proxy-smb-pipe-v1
mountPath: \\.\pipe\csi-proxy-smb-v1
# these paths are still included for compatibility, they're used
# only if the node has still the beta version of the CSI proxy
- name: csi-proxy-fs-pipe-v1beta1
mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1
- name: csi-proxy-smb-pipe-v1beta1
mountPath: \\.\pipe\csi-proxy-smb-v1beta1
resources:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 40Mi
securityContext:
capabilities:
drop:
- ALL
volumes:
- name: csi-proxy-fs-pipe-v1
hostPath:
path: \\.\pipe\csi-proxy-filesystem-v1
- name: csi-proxy-smb-pipe-v1
hostPath:
path: \\.\pipe\csi-proxy-smb-v1
# these paths are still included for compatibility, they're used
# only if the node has still the beta version of the CSI proxy
- name: csi-proxy-fs-pipe-v1beta1
hostPath:
path: \\.\pipe\csi-proxy-filesystem-v1beta1
- name: csi-proxy-smb-pipe-v1beta1
hostPath:
path: \\.\pipe\csi-proxy-smb-v1beta1
- name: registration-dir
hostPath:
path: C:\var\lib\kubelet\plugins_registry\
type: Directory
- name: kubelet-dir
hostPath:
path: C:\var\lib\kubelet\
type: Directory
- name: plugin-dir
hostPath:
path: C:\var\lib\kubelet\plugins\smb.csi.k8s.io\
type: DirectoryOrCreate

View File

@ -0,0 +1,140 @@
---
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: csi-smb-node
namespace: kube-system
spec:
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
selector:
matchLabels:
app: csi-smb-node
template:
metadata:
labels:
app: csi-smb-node
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet # available values: Default, ClusterFirstWithHostNet, ClusterFirst
serviceAccountName: csi-smb-node-sa
nodeSelector:
kubernetes.io/os: linux
priorityClassName: system-node-critical
securityContext:
seccompProfile:
type: RuntimeDefault
tolerations:
- operator: "Exists"
containers:
- name: liveness-probe
volumeMounts:
- mountPath: /csi
name: socket-dir
image: registry.k8s.io/sig-storage/livenessprobe:v2.13.1
args:
- --csi-address=/csi/csi.sock
- --probe-timeout=3s
- --http-endpoint=localhost:29643
- --v=2
resources:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
securityContext:
capabilities:
drop:
- ALL
- name: node-driver-registrar
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.11.1
args:
- --csi-address=$(ADDRESS)
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
- --v=2
livenessProbe:
exec:
command:
- /csi-node-driver-registrar
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
- --mode=kubelet-registration-probe
initialDelaySeconds: 30
timeoutSeconds: 15
env:
- name: ADDRESS
value: /csi/csi.sock
- name: DRIVER_REG_SOCK_PATH
value: /var/lib/kubelet/plugins/smb.csi.k8s.io/csi.sock
volumeMounts:
- name: socket-dir
mountPath: /csi
- name: registration-dir
mountPath: /registration
resources:
limits:
memory: 100Mi
requests:
cpu: 10m
memory: 20Mi
securityContext:
capabilities:
drop:
- ALL
- name: smb
image: registry.k8s.io/sig-storage/smbplugin:v1.16.0
imagePullPolicy: IfNotPresent
args:
- "--v=5"
- "--endpoint=$(CSI_ENDPOINT)"
- "--nodeid=$(KUBE_NODE_NAME)"
livenessProbe:
failureThreshold: 5
httpGet:
host: localhost
path: /healthz
port: 29643
initialDelaySeconds: 30
timeoutSeconds: 10
periodSeconds: 30
env:
- name: CSI_ENDPOINT
value: unix:///csi/csi.sock
- name: KUBE_NODE_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
securityContext:
privileged: true
capabilities:
drop:
- ALL
volumeMounts:
- mountPath: /csi
name: socket-dir
- mountPath: /var/lib/kubelet/
mountPropagation: Bidirectional
name: mountpoint-dir
resources:
limits:
memory: 200Mi
requests:
cpu: 10m
memory: 20Mi
volumes:
- hostPath:
path: /var/lib/kubelet/plugins/smb.csi.k8s.io
type: DirectoryOrCreate
name: socket-dir
- hostPath:
path: /var/lib/kubelet/
type: DirectoryOrCreate
name: mountpoint-dir
- hostPath:
path: /var/lib/kubelet/plugins_registry/
type: DirectoryOrCreate
name: registration-dir
---

View File

@ -0,0 +1,56 @@
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: csi-smb-controller-sa
namespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: csi-smb-node-sa
namespace: kube-system
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: smb-external-provisioner-role
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "patch", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
- apiGroups: ["storage.k8s.io"]
resources: ["csinodes"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- apiGroups: ["coordination.k8s.io"]
resources: ["leases"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: smb-csi-provisioner-binding
subjects:
- kind: ServiceAccount
name: csi-smb-controller-sa
namespace: kube-system
roleRef:
kind: ClusterRole
name: smb-external-provisioner-role
apiGroup: rbac.authorization.k8s.io

View File

@ -0,0 +1,45 @@
## Install SMB CSI driver v1.16.0 version on a Kubernetes cluster
If you have already installed Helm, you can also use it to install this driver. Please check [Installation with Helm](../charts/README.md).
### Install by kubectl
- Option#1. remote install
```console
curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/v1.16.0/deploy/install-driver.sh | bash -s v1.16.0 --
```
- Option#2. local install
```console
git clone https://github.com/kubernetes-csi/csi-driver-smb.git
cd csi-driver-smb
git checkout v1.16.0
./deploy/install-driver.sh v1.16.0 local
```
- check pods status:
```console
kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-controller
kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-node
```
example output:
```
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
csi-smb-controller-788486959d-5qmn7 3/3 Running 0 23s 10.244.0.45 aks-agentpool-60632172-vmss000006 <none> <none>
csi-smb-node-4gwzl 3/3 Running 0 15s 10.244.1.34 aks-agentpool-60632172-vmss000007 <none> <none>
csi-smb-node-hg76w 3/3 Running 0 27s 10.244.0.44 aks-agentpool-60632172-vmss000006 <none> <none>
```
### clean up SMB CSI driver
- Option#1. remote uninstall
```console
curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/v1.16.0/deploy/uninstall-driver.sh | bash -s --
```
- Option#2. local uninstall
```console
git clone https://github.com/kubernetes-csi/csi-driver-smb.git
cd csi-driver-smb
git checkout v1.16.0
./deploy/uninstall-driver.sh v1.16.0 local
```

View File

@ -1,6 +1,6 @@
## Install SMB CSI driver on a Kubernetes cluster ## Install SMB CSI driver on a Kubernetes cluster
- [install CSI driver master version](./install-csi-driver-master.md)(only for testing purpose) - [install CSI driver master version](./install-csi-driver-master.md)(only for testing purpose)
- [install CSI driver v1.16.0 version](./install-csi-driver-v1.16.0.md)
- [install CSI driver v1.15.0 version](./install-csi-driver-v1.15.0.md) - [install CSI driver v1.15.0 version](./install-csi-driver-v1.15.0.md)
- [install CSI driver v1.14.0 version](./install-csi-driver-v1.14.0.md) - [install CSI driver v1.14.0 version](./install-csi-driver-v1.14.0.md)
- [install CSI driver v1.13.0 version](./install-csi-driver-v1.13.0.md)