doc: cut v1.9.0 release
This commit is contained in:
parent
999b3a229a
commit
7bfd64b8c8
|
|
@ -12,9 +12,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 |
|
||||
|---------------|-----------------------|-------------------------------------|
|
||||
|master branch | 1.20+ | v0.2.2+ |
|
||||
|v1.9.0 | 1.20+ | v0.2.2+ |
|
||||
|v1.8.0 | 1.20+ | v0.2.2+ |
|
||||
|v1.7.0 | 1.20+ | v0.2.2+ |
|
||||
|v1.6.0 | 1.20+ | v0.2.2+ |
|
||||
|
||||
### Driver parameters
|
||||
Please refer to `smb.csi.k8s.io` [driver parameters](./docs/driver-parameters.md)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
### install a specific version
|
||||
```console
|
||||
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.8.0
|
||||
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.9.0
|
||||
```
|
||||
|
||||
### install driver with customized driver name, deployment name
|
||||
|
|
|
|||
|
|
@ -1,9 +1,27 @@
|
|||
apiVersion: v1
|
||||
entries:
|
||||
csi-driver-smb:
|
||||
- apiVersion: v1
|
||||
appVersion: v1.9.0
|
||||
created: "2022-08-20T02:34:29.828469462Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 5c78c650b9755e508afecb3f6a554c549509023f7b0610b53853a41783d1c08f
|
||||
name: csi-driver-smb
|
||||
urls:
|
||||
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/v1.9.0/csi-driver-smb-v1.9.0.tgz
|
||||
version: v1.9.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.9.0
|
||||
created: "2022-08-20T02:34:29.807965626Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: c8b14ea69c01fbafb5f0604581847f11e5a09e8041d0ba039bbf9cbe738d09c8
|
||||
name: csi-driver-smb
|
||||
urls:
|
||||
- https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts/latest/csi-driver-smb-v1.9.0.tgz
|
||||
version: v1.9.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.8.0
|
||||
created: "2022-08-05T09:02:53.348974028Z"
|
||||
created: "2022-08-20T02:34:29.826637841Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: d19d156c2143d753085bcbcb32506f8ebd7ebdee275e726f9c8d774a1f0b9f34
|
||||
name: csi-driver-smb
|
||||
|
|
@ -12,7 +30,7 @@ entries:
|
|||
version: v1.8.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.7.0
|
||||
created: "2022-08-05T09:02:53.348117918Z"
|
||||
created: "2022-08-20T02:34:29.825255625Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 65594a1ff09d912a33ee0674bba1fad1f7c717638a281fb68bcfa2c98c288453
|
||||
name: csi-driver-smb
|
||||
|
|
@ -21,7 +39,7 @@ entries:
|
|||
version: v1.7.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.6.0
|
||||
created: "2022-08-05T09:02:53.346532699Z"
|
||||
created: "2022-08-20T02:34:29.82399831Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 31dd4c8b0b0d4a61565631aa5b433b18b5375aeb24812bf4fa9958d5b7917485
|
||||
name: csi-driver-smb
|
||||
|
|
@ -30,7 +48,7 @@ entries:
|
|||
version: v1.6.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.5.0
|
||||
created: "2022-08-05T09:02:53.345894991Z"
|
||||
created: "2022-08-20T02:34:29.820781173Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: b7dc9e9dc5d46df12a6d1a5643efe86439bff6c36867968f772e6899692083d6
|
||||
name: csi-driver-smb
|
||||
|
|
@ -39,7 +57,7 @@ entries:
|
|||
version: v1.5.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.4.0
|
||||
created: "2022-08-05T09:02:53.345173883Z"
|
||||
created: "2022-08-20T02:34:29.819765262Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 9b1a6166ab72c09d0eefb448ecc998639b9f6255afb00bfc0ae0a4fdad76f119
|
||||
name: csi-driver-smb
|
||||
|
|
@ -48,7 +66,7 @@ entries:
|
|||
version: v1.4.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.3.0
|
||||
created: "2022-08-05T09:02:53.343988468Z"
|
||||
created: "2022-08-20T02:34:29.818463447Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: d2236d36f1cb24139ddf87ea87229369ed856efc42330e656330f6cfa7635858
|
||||
name: csi-driver-smb
|
||||
|
|
@ -57,7 +75,7 @@ entries:
|
|||
version: v1.3.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.2.0
|
||||
created: "2022-08-05T09:02:53.343412462Z"
|
||||
created: "2022-08-20T02:34:29.81705613Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 9d7099165db24d5412c95b298a59cca9b233ab8800d04efd34bb055812390915
|
||||
name: csi-driver-smb
|
||||
|
|
@ -66,7 +84,7 @@ entries:
|
|||
version: v1.2.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.1.0
|
||||
created: "2022-08-05T09:02:53.342813754Z"
|
||||
created: "2022-08-20T02:34:29.815703815Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 5b39613c9104db06815ee2d42fec8507c3bb2038264513449079a4eb5b6530a8
|
||||
name: csi-driver-smb
|
||||
|
|
@ -75,7 +93,7 @@ entries:
|
|||
version: v1.1.0
|
||||
- apiVersion: v1
|
||||
appVersion: v1.0.0
|
||||
created: "2022-08-05T09:02:53.342108746Z"
|
||||
created: "2022-08-20T02:34:29.814303599Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 3e4721dd007cc51750f7221be8f66ec7e287c83a8cdcfeb9a71c30f526b06dc4
|
||||
name: csi-driver-smb
|
||||
|
|
@ -84,7 +102,7 @@ entries:
|
|||
version: v1.0.0
|
||||
- apiVersion: v1
|
||||
appVersion: v0.6.0
|
||||
created: "2022-08-05T09:02:53.341574239Z"
|
||||
created: "2022-08-20T02:34:29.813214086Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 6fc9d05bc78ca98fb17071b7f5ad05b4c071f2403114d72feae99fb89ca1fc9f
|
||||
name: csi-driver-smb
|
||||
|
|
@ -93,7 +111,7 @@ entries:
|
|||
version: v0.6.0
|
||||
- apiVersion: v1
|
||||
appVersion: v0.5.0
|
||||
created: "2022-08-05T09:02:53.341156834Z"
|
||||
created: "2022-08-20T02:34:29.812375277Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 8264c6630806325613234c2d7951c188d073607e6f0f89d781ec32afed04157b
|
||||
name: csi-driver-smb
|
||||
|
|
@ -102,7 +120,7 @@ entries:
|
|||
version: v0.5.0
|
||||
- apiVersion: v1
|
||||
appVersion: v0.4.0
|
||||
created: "2022-08-05T09:02:53.34077833Z"
|
||||
created: "2022-08-20T02:34:29.811660568Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: fb6d581ba5d4d1d78ca468f6daa4a24c47bb147b74d005d3c394521b4e534a3e
|
||||
name: csi-driver-smb
|
||||
|
|
@ -111,7 +129,7 @@ entries:
|
|||
version: v0.4.0
|
||||
- apiVersion: v1
|
||||
appVersion: v0.3.0
|
||||
created: "2022-08-05T09:02:53.340406325Z"
|
||||
created: "2022-08-20T02:34:29.810519955Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: ee9e58db6d4a95491e2012c6607126bbff827b9c439e90e9a9798d2a73b0cb22
|
||||
name: csi-driver-smb
|
||||
|
|
@ -120,7 +138,7 @@ entries:
|
|||
version: v0.3.0
|
||||
- apiVersion: v1
|
||||
appVersion: v0.2.0
|
||||
created: "2022-08-05T09:02:53.340067421Z"
|
||||
created: "2022-08-20T02:34:29.809341042Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 8d8667106306d78dea9f63e5a3e8ee7ad2b60f86bd625f5968e37ca6a0cad317
|
||||
name: csi-driver-smb
|
||||
|
|
@ -129,11 +147,20 @@ entries:
|
|||
version: v0.2.0
|
||||
- apiVersion: v1
|
||||
appVersion: latest
|
||||
created: "2022-08-05T09:02:53.339699217Z"
|
||||
created: "2022-08-20T02:34:29.827509951Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: b7479364f1283da159355acb1b7740592badade3b7e48300c1793b3b09b3f003
|
||||
digest: 37a15bd85f6f9f2df20aed317d9baa3774128552488d02c2897d561e67777963
|
||||
name: csi-driver-smb
|
||||
urls:
|
||||
- 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
|
||||
- apiVersion: v1
|
||||
appVersion: latest
|
||||
created: "2022-08-20T02:34:29.807192717Z"
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
digest: 37a15bd85f6f9f2df20aed317d9baa3774128552488d02c2897d561e67777963
|
||||
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: "2022-08-05T09:02:53.338833107Z"
|
||||
generated: "2022-08-20T02:34:29.806147705Z"
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -1,5 +1,5 @@
|
|||
apiVersion: v1
|
||||
appVersion: latest
|
||||
appVersion: v1.9.0
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
name: csi-driver-smb
|
||||
version: v0.0.0
|
||||
version: v1.9.0
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
image:
|
||||
baseRepo: registry.k8s.io/sig-storage
|
||||
smb:
|
||||
repository: gcr.io/k8s-staging-sig-storage/smbplugin
|
||||
tag: canary
|
||||
repository: registry.k8s.io/sig-storage/smbplugin
|
||||
tag: v1.9.0
|
||||
pullPolicy: IfNotPresent
|
||||
csiProvisioner:
|
||||
repository: registry.k8s.io/sig-storage/csi-provisioner
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: v1
|
||||
appVersion: v1.9.0
|
||||
description: SMB CSI Driver for Kubernetes
|
||||
name: csi-driver-smb
|
||||
version: v1.9.0
|
||||
|
|
@ -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="release={{ .Release.Name }}" --watch
|
||||
|
|
@ -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 -}}
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: {{ .Values.controller.name }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{ include "smb.labels" . | indent 2 }}
|
||||
spec:
|
||||
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 }}
|
||||
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: system-cluster-critical
|
||||
{{- 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"
|
||||
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 }}
|
||||
- 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
|
||||
- --health-port={{ .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 }}
|
||||
- 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.livenessProbe.healthPort }}
|
||||
name: healthz
|
||||
protocol: TCP
|
||||
- containerPort: {{ .Values.controller.metricsPort }}
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: healthz
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 10
|
||||
periodSeconds: 30
|
||||
env:
|
||||
- name: CSI_ENDPOINT
|
||||
value: unix:///csi/csi.sock
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- mountPath: /csi
|
||||
name: socket-dir
|
||||
resources: {{- toYaml .Values.controller.resources.smb | nindent 12 }}
|
||||
volumes:
|
||||
- name: socket-dir
|
||||
emptyDir: {}
|
||||
{{- if .Values.securityContext }}
|
||||
securityContext: {{- toYaml .Values.securityContext | nindent 8 }}
|
||||
{{- end }}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: CSIDriver
|
||||
metadata:
|
||||
name: {{ .Values.driver.name }}
|
||||
spec:
|
||||
attachRequired: false
|
||||
podInfoOnMount: true
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
{{- 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: system-node-critical
|
||||
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 }}
|
||||
- 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 }}
|
||||
- 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)
|
||||
- "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}"
|
||||
- "--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 }}
|
||||
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 -}}
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
{{- 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 }}
|
||||
{{- 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
|
||||
- --health-port={{ .Values.node.livenessProbe.healthPort }}
|
||||
- --v=2
|
||||
imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }}
|
||||
resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }}
|
||||
- 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 }}
|
||||
- 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)"
|
||||
- "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}"
|
||||
- "--enable-get-volume-stats={{ .Values.feature.enableGetVolumeStats }}"
|
||||
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:///csi/csi.sock
|
||||
- name: KUBE_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: spec.nodeName
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- mountPath: /csi
|
||||
name: socket-dir
|
||||
- mountPath: {{ .Values.linux.kubelet }}/
|
||||
mountPropagation: Bidirectional
|
||||
name: mountpoint-dir
|
||||
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 .Values.securityContext }}
|
||||
securityContext: {{- toYaml .Values.securityContext | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
|
|
@ -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", "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 }}
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
image:
|
||||
baseRepo: registry.k8s.io/sig-storage
|
||||
smb:
|
||||
repository: registry.k8s.io/sig-storage/smbplugin
|
||||
tag: v1.9.0
|
||||
pullPolicy: IfNotPresent
|
||||
csiProvisioner:
|
||||
repository: registry.k8s.io/sig-storage/csi-provisioner
|
||||
tag: v3.2.0
|
||||
pullPolicy: IfNotPresent
|
||||
livenessProbe:
|
||||
repository: registry.k8s.io/sig-storage/livenessprobe
|
||||
tag: v2.7.0
|
||||
pullPolicy: IfNotPresent
|
||||
nodeDriverRegistrar:
|
||||
repository: registry.k8s.io/sig-storage/csi-node-driver-registrar
|
||||
tag: v2.5.1
|
||||
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: Default # 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
|
||||
metricsPort: 29645
|
||||
logLevel: 5
|
||||
livenessProbe:
|
||||
healthPort: 29643
|
||||
affinity: {}
|
||||
nodeSelector: {}
|
||||
|
||||
linux:
|
||||
enabled: true
|
||||
dsName: csi-smb-node # daemonset name
|
||||
dnsPolicy: Default # available values: Default, ClusterFirstWithHostNet, ClusterFirst
|
||||
kubelet: /var/lib/kubelet
|
||||
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
|
||||
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
|
||||
|
||||
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: {}
|
||||
|
|
@ -69,7 +69,7 @@ spec:
|
|||
cpu: 10m
|
||||
memory: 20Mi
|
||||
- name: smb
|
||||
image: gcr.io/k8s-staging-sig-storage/smbplugin:canary
|
||||
image: registry.k8s.io/sig-storage/smbplugin:v1.9.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- "--v=5"
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ spec:
|
|||
cpu: 10m
|
||||
memory: 40Mi
|
||||
- name: smb
|
||||
image: gcr.io/k8s-staging-sig-storage/smbplugin:canary
|
||||
image: registry.k8s.io/sig-storage/smbplugin:v1.9.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- --v=5
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ spec:
|
|||
cpu: 10m
|
||||
memory: 20Mi
|
||||
- name: smb
|
||||
image: gcr.io/k8s-staging-sig-storage/smbplugin:canary
|
||||
image: registry.k8s.io/sig-storage/smbplugin:v1.9.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- "--v=5"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,109 @@
|
|||
---
|
||||
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:
|
||||
dnsPolicy: Default # available values: Default, ClusterFirstWithHostNet, ClusterFirst
|
||||
serviceAccountName: csi-smb-controller-sa
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
priorityClassName: system-cluster-critical
|
||||
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:v3.2.0
|
||||
args:
|
||||
- "-v=2"
|
||||
- "--csi-address=$(ADDRESS)"
|
||||
- "--leader-election"
|
||||
- "--leader-election-namespace=kube-system"
|
||||
- "--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
|
||||
- name: liveness-probe
|
||||
image: registry.k8s.io/sig-storage/livenessprobe:v2.7.0
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
- --probe-timeout=3s
|
||||
- --health-port=29642
|
||||
- --v=2
|
||||
volumeMounts:
|
||||
- name: socket-dir
|
||||
mountPath: /csi
|
||||
resources:
|
||||
limits:
|
||||
cpu: 1
|
||||
memory: 100Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 20Mi
|
||||
- name: smb
|
||||
image: registry.k8s.io/sig-storage/smbplugin:v1.9.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- "--v=5"
|
||||
- "--endpoint=$(CSI_ENDPOINT)"
|
||||
- "--metrics-address=0.0.0.0:29644"
|
||||
ports:
|
||||
- containerPort: 29642
|
||||
name: healthz
|
||||
protocol: TCP
|
||||
- containerPort: 29644
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: healthz
|
||||
initialDelaySeconds: 30
|
||||
timeoutSeconds: 10
|
||||
periodSeconds: 30
|
||||
env:
|
||||
- name: CSI_ENDPOINT
|
||||
value: unix:///csi/csi.sock
|
||||
securityContext:
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- mountPath: /csi
|
||||
name: socket-dir
|
||||
resources:
|
||||
limits:
|
||||
memory: 200Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 20Mi
|
||||
volumes:
|
||||
- name: socket-dir
|
||||
emptyDir: {}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: CSIDriver
|
||||
metadata:
|
||||
name: smb.csi.k8s.io
|
||||
spec:
|
||||
attachRequired: false
|
||||
podInfoOnMount: true
|
||||
|
|
@ -0,0 +1,160 @@
|
|||
---
|
||||
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
|
||||
serviceAccountName: csi-smb-node-sa
|
||||
containers:
|
||||
- name: liveness-probe
|
||||
volumeMounts:
|
||||
- mountPath: C:\csi
|
||||
name: plugin-dir
|
||||
image: registry.k8s.io/sig-storage/livenessprobe:v2.7.0
|
||||
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
|
||||
- name: node-driver-registrar
|
||||
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.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
|
||||
- name: smb
|
||||
image: registry.k8s.io/sig-storage/smbplugin:v1.9.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- --v=5
|
||||
- --endpoint=$(CSI_ENDPOINT)
|
||||
- --nodeid=$(KUBE_NODE_NAME)
|
||||
- "--metrics-address=0.0.0.0:29645"
|
||||
- "--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
|
||||
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
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
---
|
||||
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: Default # available values: Default, ClusterFirstWithHostNet, ClusterFirst
|
||||
serviceAccountName: csi-smb-node-sa
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
priorityClassName: system-node-critical
|
||||
tolerations:
|
||||
- operator: "Exists"
|
||||
containers:
|
||||
- name: liveness-probe
|
||||
volumeMounts:
|
||||
- mountPath: /csi
|
||||
name: socket-dir
|
||||
image: registry.k8s.io/sig-storage/livenessprobe:v2.7.0
|
||||
args:
|
||||
- --csi-address=/csi/csi.sock
|
||||
- --probe-timeout=3s
|
||||
- --health-port=29643
|
||||
- --v=2
|
||||
resources:
|
||||
limits:
|
||||
memory: 100Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 20Mi
|
||||
- name: node-driver-registrar
|
||||
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.5.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
|
||||
- name: smb
|
||||
image: registry.k8s.io/sig-storage/smbplugin:v1.9.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
args:
|
||||
- "--v=5"
|
||||
- "--endpoint=$(CSI_ENDPOINT)"
|
||||
- "--nodeid=$(KUBE_NODE_NAME)"
|
||||
- "--metrics-address=0.0.0.0:29645"
|
||||
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:///csi/csi.sock
|
||||
- name: KUBE_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: spec.nodeName
|
||||
securityContext:
|
||||
privileged: true
|
||||
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
|
||||
---
|
||||
|
|
@ -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", "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
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
## Install SMB CSI driver v1.9.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.9.0/deploy/install-driver.sh | bash -s v1.9.0 --
|
||||
```
|
||||
|
||||
- Option#2. local install
|
||||
```console
|
||||
git clone https://github.com/kubernetes-csi/csi-driver-smb.git
|
||||
cd csi-driver-smb
|
||||
git checkout v1.9.0
|
||||
./deploy/install-driver.sh v1.9.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.9.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.9.0
|
||||
./deploy/uninstall-driver.sh v1.9.0 local
|
||||
```
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
## 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 v1.9.0 version](./install-csi-driver-v1.9.0.md)
|
||||
- [install CSI driver v1.8.0 version](./install-csi-driver-v1.8.0.md)
|
||||
- [install CSI driver v1.7.0 version](./install-csi-driver-v1.7.0.md)
|
||||
- [install CSI driver v1.6.0 version](./install-csi-driver-v1.6.0.md)
|
||||
|
|
|
|||
Loading…
Reference in New Issue