From 69c96d84cb1a12ffb7ca22c2768a34fe24c3a955 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Wed, 18 May 2022 14:30:24 +0000 Subject: [PATCH] doc: cut v1.12.0 release --- README.md | 2 +- charts/README.md | 2 +- charts/index.yaml | 59 +++-- charts/latest/blob-csi-driver-v1.12.0.tgz | Bin 5980 -> 5972 bytes charts/latest/blob-csi-driver/Chart.yaml | 2 +- charts/latest/blob-csi-driver/values.yaml | 2 +- charts/v1.12.0/blob-csi-driver-v1.12.0.tgz | Bin 0 -> 5971 bytes charts/v1.12.0/blob-csi-driver/Chart.yaml | 5 + .../blob-csi-driver/templates/NOTES.txt | 5 + .../blob-csi-driver/templates/_helpers.tpl | 49 ++++ .../templates/blobfuse-proxy.yaml | 126 ++++++++++ .../templates/csi-blob-controller.yaml | 196 +++++++++++++++ .../templates/csi-blob-driver.yaml | 16 ++ .../templates/csi-blob-node.yaml | 225 ++++++++++++++++++ .../templates/rbac-csi-blob-controller.yaml | 115 +++++++++ .../templates/rbac-csi-blob-node.yaml | 29 +++ .../serviceaccount-csi-blob-controller.yaml | 9 + .../serviceaccount-csi-blob-node.yaml | 9 + charts/v1.12.0/blob-csi-driver/values.yaml | 165 +++++++++++++ deploy/blobfuse-proxy.yaml | 4 +- deploy/blobfuse-proxy/README.md | 6 +- deploy/csi-blob-controller.yaml | 2 +- deploy/csi-blob-node.yaml | 2 +- deploy/v1.12.0/blobfuse-proxy.yaml | 115 +++++++++ deploy/v1.12.0/csi-blob-controller.yaml | 138 +++++++++++ deploy/v1.12.0/csi-blob-driver.yaml | 11 + deploy/v1.12.0/csi-blob-node.yaml | 162 +++++++++++++ deploy/v1.12.0/kustomization.yaml | 10 + deploy/v1.12.0/rbac-csi-blob-controller.yaml | 108 +++++++++ deploy/v1.12.0/rbac-csi-blob-node.yaml | 30 +++ docs/install-blob-csi-driver.md | 2 +- docs/install-csi-driver-v1.12.0.md | 47 ++++ 32 files changed, 1616 insertions(+), 37 deletions(-) create mode 100644 charts/v1.12.0/blob-csi-driver-v1.12.0.tgz create mode 100644 charts/v1.12.0/blob-csi-driver/Chart.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.12.0/blob-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.12.0/blob-csi-driver/templates/blobfuse-proxy.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/csi-blob-controller.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/csi-blob-driver.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/csi-blob-node.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml create mode 100644 charts/v1.12.0/blob-csi-driver/values.yaml create mode 100644 deploy/v1.12.0/blobfuse-proxy.yaml create mode 100644 deploy/v1.12.0/csi-blob-controller.yaml create mode 100644 deploy/v1.12.0/csi-blob-driver.yaml create mode 100644 deploy/v1.12.0/csi-blob-node.yaml create mode 100644 deploy/v1.12.0/kustomization.yaml create mode 100644 deploy/v1.12.0/rbac-csi-blob-controller.yaml create mode 100644 deploy/v1.12.0/rbac-csi-blob-node.yaml create mode 100644 docs/install-csi-driver-v1.12.0.md diff --git a/README.md b/README.md index b2342368c..9067aaf8e 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ This driver allows Kubernetes to access Azure Storage through one of following m |driver version |Image | supported k8s version | built-in blobfuse version | |----------------|-------------------------------------------|-----------------------|---------------------------| |master branch |mcr.microsoft.com/k8s/csi/blob-csi:latest | 1.20+ | 1.4.3 | +|v1.12.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 | 1.20+ | 1.4.3 | |v1.11.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.11.0 | 1.20+ | 1.4.3 | |v1.10.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.10.0 | 1.20+ | 1.4.3 | -|v1.9.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.9.0 | 1.20+ | 1.4.3 | ### Driver parameters Please refer to `blob.csi.azure.com` [driver parameters](./docs/driver-parameters.md) diff --git a/charts/README.md b/charts/README.md index 175dcf4da..a9b4bf835 100644 --- a/charts/README.md +++ b/charts/README.md @@ -19,7 +19,7 @@ ### install a specific version ```console helm repo add blob-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts -helm install blob-csi-driver blob-csi-driver/blob-csi-driver --set node.enableBlobfuseProxy=true --namespace kube-system --version v1.11.0 +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --set node.enableBlobfuseProxy=true --namespace kube-system --version v1.12.0 ``` ## install on Azure Stack diff --git a/charts/index.yaml b/charts/index.yaml index 83024f958..a2bf24dff 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -2,17 +2,26 @@ apiVersion: v1 entries: blob-csi-driver: - apiVersion: v1 - appVersion: latest - created: "2022-04-20T11:57:08.711473927Z" + appVersion: v1.12.0 + created: "2022-05-18T14:29:40.143806279Z" description: Azure Blob Storage CSI driver - digest: ef9a7d77993334ec6b21b120369d8f30415605dd9dfac9a2ddd693eec701f4d9 + digest: 396b7dffbb28c21a0e34f62aa3f447aef68c57c3a0fbfd0098a8f6caffc932f5 + name: blob-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v1.12.0/blob-csi-driver-v1.12.0.tgz + version: v1.12.0 + - apiVersion: v1 + appVersion: v1.12.0 + created: "2022-05-18T14:29:40.09792413Z" + description: Azure Blob Storage CSI driver + digest: 9a6bc11f366c0e2a940a09e5c18387ef49871d8b64e97cd48148486b3e77912d name: blob-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/latest/blob-csi-driver-v1.12.0.tgz version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2022-04-20T11:57:08.720376286Z" + created: "2022-05-18T14:29:40.141895573Z" description: Azure Blob Storage CSI driver digest: 07c4d76017491b3d0bdd70de90e814096938bf7916da0c149c3805294bd57560 name: blob-csi-driver @@ -21,7 +30,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2022-04-20T11:57:08.718726975Z" + created: "2022-05-18T14:29:40.138291561Z" description: Azure Blob Storage CSI driver digest: 79716efa958385adf57eb3570843e1b4512d8c801e8e070625e94264f3e917a9 name: blob-csi-driver @@ -30,7 +39,7 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: v1.9.0 - created: "2022-04-20T11:57:08.729796949Z" + created: "2022-05-18T14:29:40.172631673Z" description: Azure Blob Storage CSI driver digest: fca0b9215d3277346f68c643fb3ead75158971f0d1945ab01ec559196f3cf842 name: blob-csi-driver @@ -39,7 +48,7 @@ entries: version: v1.9.0 - apiVersion: v1 appVersion: v1.8.0 - created: "2022-04-20T11:57:08.728778742Z" + created: "2022-05-18T14:29:40.17157737Z" description: Azure Blob Storage CSI driver digest: 3b78e2ab4f33577c54d4f57276c824717d2ad2aa3741210e938fcaf927bc751f name: blob-csi-driver @@ -48,7 +57,7 @@ entries: version: v1.8.0 - apiVersion: v1 appVersion: v1.7.0 - created: "2022-04-20T11:57:08.727677134Z" + created: "2022-05-18T14:29:40.167338256Z" description: Azure Blob Storage CSI driver digest: 28da5b55c3d2689d6da85eb7da344385e9cb99bdb2af18c24fea93670abfe7ea name: blob-csi-driver @@ -57,7 +66,7 @@ entries: version: v1.7.0 - apiVersion: v1 appVersion: v1.6.0 - created: "2022-04-20T11:57:08.726852329Z" + created: "2022-05-18T14:29:40.163715144Z" description: Azure Blob Storage CSI driver digest: 6f24f2e6623f6f8862e47d4fbdf13b5f351ceec6bb9a4591ef7fc2fca9fc1eef name: blob-csi-driver @@ -66,7 +75,7 @@ entries: version: v1.6.0 - apiVersion: v1 appVersion: v1.5.0 - created: "2022-04-20T11:57:08.725880822Z" + created: "2022-05-18T14:29:40.16243744Z" description: Azure Blob Storage CSI driver digest: 95d14c9b70b319760d388ea47727c8c97e9287867a8852aeb67b7175b52fe8f5 name: blob-csi-driver @@ -75,7 +84,7 @@ entries: version: v1.5.0 - apiVersion: v1 appVersion: v1.4.1 - created: "2022-04-20T11:57:08.725065817Z" + created: "2022-05-18T14:29:40.158750528Z" description: Azure Blob Storage CSI driver digest: 5fcf69c449f065fa1d5722e5a7fed8a28000efa790907e9ff4b552c5fbd16d22 name: blob-csi-driver @@ -84,7 +93,7 @@ entries: version: v1.4.1 - apiVersion: v1 appVersion: v1.4.0 - created: "2022-04-20T11:57:08.72407171Z" + created: "2022-05-18T14:29:40.154837515Z" description: Azure Blob Storage CSI driver digest: b466543344a6411f6130ba87b093955d39ab8614c6b4ed8505a0a0c96073cb33 name: blob-csi-driver @@ -93,7 +102,7 @@ entries: version: v1.4.0 - apiVersion: v1 appVersion: v1.3.0 - created: "2022-04-20T11:57:08.723017903Z" + created: "2022-05-18T14:29:40.151222203Z" description: Azure Blob Storage CSI driver digest: 58d02cb70a3a966b349d62e880b7149fb06ac009474e35e580784fd3c98a5b07 name: blob-csi-driver @@ -102,7 +111,7 @@ entries: version: v1.3.0 - apiVersion: v1 appVersion: v1.2.0 - created: "2022-04-20T11:57:08.722102497Z" + created: "2022-05-18T14:29:40.147483991Z" description: Azure Blob Storage CSI driver digest: 27fb89f20b5fddc7329e6d7c2374857b22c1d61592e397a53f47121eea68c344 name: blob-csi-driver @@ -111,7 +120,7 @@ entries: version: v1.2.0 - apiVersion: v1 appVersion: v1.1.0 - created: "2022-04-20T11:57:08.717268865Z" + created: "2022-05-18T14:29:40.135179151Z" description: Azure Blob Storage CSI driver digest: a251a55243de207c69ef53f72abee45e93b72fa4fc43dc204b7f1cdfd459acdb name: blob-csi-driver @@ -120,7 +129,7 @@ entries: version: v1.1.0 - apiVersion: v1 appVersion: v1.0.0 - created: "2022-04-20T11:57:08.71643576Z" + created: "2022-05-18T14:29:40.131485939Z" description: Azure Blob Storage CSI driver digest: e83f037a165eafc83a978bd7e6bf6221b052ac34363aecb12e6a73607dc58b89 name: blob-csi-driver @@ -129,7 +138,7 @@ entries: version: v1.0.0 - apiVersion: v1 appVersion: v0.11.0 - created: "2022-04-20T11:57:08.712518834Z" + created: "2022-05-18T14:29:40.106020856Z" description: Azure Blob Storage CSI driver digest: ded903d30eaef4f41e2cc7172292089fbaf122cc24cc32f5e62207cff445a9da name: blob-csi-driver @@ -138,7 +147,7 @@ entries: version: v0.11.0 - apiVersion: v1 appVersion: v0.10.0 - created: "2022-04-20T11:57:08.712105131Z" + created: "2022-05-18T14:29:40.101621342Z" description: Azure Blob Storage CSI driver digest: 24f3642ce8535544ad63334f9a71eb8c594cc2943becd21844b6b1132d261960 name: blob-csi-driver @@ -147,7 +156,7 @@ entries: version: v0.10.0 - apiVersion: v1 appVersion: v0.9.0 - created: "2022-04-20T11:57:08.715391653Z" + created: "2022-05-18T14:29:40.127302225Z" description: Azure Blob Storage CSI driver digest: d125014409cad519f12838390c176f81f34097a5ba759a177980255a9fe775e2 name: blob-csi-driver @@ -156,7 +165,7 @@ entries: version: v0.9.0 - apiVersion: v1 appVersion: v0.8.0 - created: "2022-04-20T11:57:08.71492665Z" + created: "2022-05-18T14:29:40.123406213Z" description: Azure Blob Storage CSI driver digest: 8ac9fc62030ff7c7dd6deaa51db410d9b782578149347688b8f66b37ec33960f name: blob-csi-driver @@ -165,7 +174,7 @@ entries: version: v0.8.0 - apiVersion: v1 appVersion: v0.7.0 - created: "2022-04-20T11:57:08.714381746Z" + created: "2022-05-18T14:29:40.1196714Z" description: Azure Blob Storage CSI driver digest: 6d758b8e4a480a8d006f7e73c51d32ea0b568b8ba1364d4ac33549e3bedfc9a7 name: blob-csi-driver @@ -175,7 +184,7 @@ entries: blobfuse-csi-driver: - apiVersion: v1 appVersion: v0.6.0 - created: "2022-04-20T11:57:08.713928343Z" + created: "2022-05-18T14:29:40.116627191Z" description: BlobFuse Container Storage Interface (CSI) Storage Plugin digest: 2bea484bc1e87097b048ab2e1615683b8b7db614059fb624a0a2b18ad0920926 name: blobfuse-csi-driver @@ -184,7 +193,7 @@ entries: version: v0.6.0 - apiVersion: v1 appVersion: v0.5.0 - created: "2022-04-20T11:57:08.713400739Z" + created: "2022-05-18T14:29:40.11327568Z" description: BlobFuse Container Storage Interface (CSI) Storage Plugin digest: 11441a6025c319e97c0605f520c4be063eadc482670655bb6ecc4426bee2d49c name: blobfuse-csi-driver @@ -193,11 +202,11 @@ entries: version: v0.5.0 - apiVersion: v1 appVersion: v0.4.0 - created: "2022-04-20T11:57:08.713018237Z" + created: "2022-05-18T14:29:40.109541067Z" description: BlobFuse Container Storage Interface (CSI) Storage Plugin digest: 263e474a08598f1c7f518c1efed43eb23d9f12b146b3c47deda77aa99c0ca385 name: blobfuse-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v0.4.0/blobfuse-csi-driver-v0.4.0.tgz version: v0.4.0 -generated: "2022-04-20T11:57:08.7074335Z" +generated: "2022-05-18T14:29:40.095705622Z" diff --git a/charts/latest/blob-csi-driver-v1.12.0.tgz b/charts/latest/blob-csi-driver-v1.12.0.tgz index c9fcd11027f8be2999aa8278e9eaacaa6008c01e..a23b679fc289cbae6be476f7ab24c3f717a23127 100644 GIT binary patch delta 5785 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 Xhm!;sGy&d|ITsrU+|bL|0Hgo_g$`LP delta 5794 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 g{|GDJ|L^U0I(w7+7Bm6=lQ9Dc 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 BuzLUi literal 0 HcmV?d00001 diff --git a/charts/v1.12.0/blob-csi-driver/Chart.yaml b/charts/v1.12.0/blob-csi-driver/Chart.yaml new file mode 100644 index 000000000..dc32d6728 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.12.0 +description: Azure Blob Storage CSI driver +name: blob-csi-driver +version: v1.12.0 diff --git a/charts/v1.12.0/blob-csi-driver/templates/NOTES.txt b/charts/v1.12.0/blob-csi-driver/templates/NOTES.txt new file mode 100644 index 000000000..9ad135dd4 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/NOTES.txt @@ -0,0 +1,5 @@ +The Azure Blob Storage CSI driver is getting deployed to your cluster. + +To check Azure Blob Storage CSI driver pods status, please run: + + kubectl --namespace={{ .Release.Namespace }} get pods --selector="release={{ .Release.Name }}" --watch diff --git a/charts/v1.12.0/blob-csi-driver/templates/_helpers.tpl b/charts/v1.12.0/blob-csi-driver/templates/_helpers.tpl new file mode 100644 index 000000000..d99392f32 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/_helpers.tpl @@ -0,0 +1,49 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* Expand the name of the chart.*/}} +{{- define "blob.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "blob.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common selectors. +*/}} +{{- define "blob.selectorLabels" -}} +app.kubernetes.io/name: {{ template "blob.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} + +{{/* +Common labels. +*/}} +{{- define "blob.labels" -}} +{{- include "blob.selectorLabels" . }} +app.kubernetes.io/component: csi-driver +app.kubernetes.io/part-of: {{ template "blob.name" . }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +helm.sh/chart: {{ template "blob.chart" . }} +{{- if .Values.customLabels }} +{{ toYaml .Values.customLabels }} +{{- end }} +{{- end -}} + + +{{/* pull secrets for containers */}} +{{- define "blob.pullSecrets" -}} +{{- if .Values.imagePullSecrets }} +imagePullSecrets: +{{- range .Values.imagePullSecrets }} + - name: {{ . }} +{{- end }} +{{- end }} +{{- end -}} \ No newline at end of file diff --git a/charts/v1.12.0/blob-csi-driver/templates/blobfuse-proxy.yaml b/charts/v1.12.0/blob-csi-driver/templates/blobfuse-proxy.yaml new file mode 100644 index 000000000..c131d8316 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/blobfuse-proxy.yaml @@ -0,0 +1,126 @@ +{{- if .Values.node.enableBlobfuseProxy -}} +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: csi-blobfuse-proxy + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + app: csi-blobfuse-proxy + template: + metadata: + labels: + app: csi-blobfuse-proxy + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + initContainers: + - name: prepare-binaries +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + command: ['sh', '-c', "cp /blobfuse-proxy/*.deb /tmp/"] + volumeMounts: + - mountPath: /tmp + name: tmp-dir + containers: + - command: + - nsenter + - '--target' + - '1' + - '--mount' + - '--uts' + - '--ipc' + - '--net' + - '--pid' + - '--' + - sh + - '-c' + - | + set -xe + INSTALL_BLOBFUSE=${INSTALL_BLOBFUSE:-true} + if (( "${INSTALL_BLOBFUSE}" == "true" )) + then + dpkg -i /tmp/packages-microsoft-prod.deb && apt update && apt-get install -y blobfuse=${BLOBFUSE_VERSION} + fi + dpkg -i /tmp/blobfuse-proxy.deb + mkdir -p /var/lib/kubelet/plugins/blob.csi.azure.com + systemctl enable blobfuse-proxy + systemctl start blobfuse-proxy + + SET_MAX_FILE_NUM=${SET_MAX_OPEN_FILE_NUM:-true} + if (( "${SET_MAX_OPEN_FILE_NUM}" == "true" )) + then + sysctl -w fs.file-max=${MAX_FILE_NUM} + fi + + updateDBConfigPath="/etc/updatedb.conf" + DISABLE_UPDATEDB=${DISABLE_UPDATEDB:-true} + if (( "${DISABLE_UPDATEDB}" == "true" )) && (( test -f ${updateDBConfigPath} )) + then + echo "before changing ${updateDBConfigPath}:" + cat ${updateDBConfigPath} + sed -i 's/PRUNEPATHS="\/tmp/PRUNEPATHS="\/mnt \/var\/lib\/kubelet \/tmp/g' ${updateDBConfigPath} + sed -i 's/PRUNEFS="NFS/PRUNEFS="fuse blobfuse NFS/g' ${updateDBConfigPath} + echo "after change:" + cat ${updateDBConfigPath} + fi + + # "waiting for blobfuse-proxy service to start" + sleep 3s + # tail blobfuse proxy logs + journalctl -u blobfuse-proxy -f +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + imagePullPolicy: IfNotPresent + name: sysctl-install-blobfuse-proxy + env: + - name: DEBIAN_FRONTEND + value: "noninteractive" + - name: INSTALL_BLOBFUSE + value: "{{ .Values.node.blobfuseProxy.installBlobfuse }}" + - name: BLOBFUSE_VERSION + value: "{{ .Values.node.blobfuseProxy.blobfuseVersion }}" + - name: SET_MAX_OPEN_FILE_NUM + value: "{{ .Values.node.blobfuseProxy.setMaxOpenFileNum }}" + - name: MAX_FILE_NUM + value: "{{ .Values.node.blobfuseProxy.maxOpenFileNum }}" + - name: DISABLE_UPDATEDB + value: "{{ .Values.node.blobfuseProxy.disableUpdateDB }}" + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 1Mi + securityContext: + privileged: true + hostNetwork: true + hostPID: true + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-node-critical + restartPolicy: Always + tolerations: + - operator: Exists + volumes: + - hostPath: + path: /tmp + type: DirectoryOrCreate + name: tmp-dir +{{ end }} diff --git a/charts/v1.12.0/blob-csi-driver/templates/csi-blob-controller.yaml b/charts/v1.12.0/blob-csi-driver/templates/csi-blob-controller.yaml new file mode 100644 index 000000000..0d463f19d --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/csi-blob-controller.yaml @@ -0,0 +1,196 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: {{ .Values.controller.name }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ .Values.controller.name }} + {{- include "blob.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.controller.replicas }} + selector: + matchLabels: + app: {{ .Values.controller.name }} + {{- include "blob.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + app: {{ .Values.controller.name }} + {{- include "blob.labels" . | nindent 8 }} + {{- 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 }} + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + hostNetwork: {{ .Values.controller.hostNetwork }} + serviceAccountName: {{ .Values.serviceAccount.controller }} + nodeSelector: + kubernetes.io/os: linux + {{- if .Values.controller.runOnMaster}} + kubernetes.io/role: master + {{- end}} +{{- with .Values.controller.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + priorityClassName: {{ .Values.priorityClassName | quote }} +{{- with .Values.controller.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + 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 }}" + - "--timeout=120s" + - "--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 }} + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} + - name: blob +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + args: + - "--v={{ .Values.controller.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}" + - "--drivername={{ .Values.driver.name }}" + - "--custom-user-agent={{ .Values.driver.customUserAgent }}" + - "--user-agent-suffix={{ .Values.driver.userAgentSuffix }}" + - "--cloud-config-secret-name={{ .Values.controller.cloudConfigSecretName }}" + - "--cloud-config-secret-namespace={{ .Values.controller.cloudConfigSecretNamespace }}" + - "--allow-empty-cloud-config={{ .Values.controller.allowEmptyCloudConfig }}" + 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: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: AZURE_GO_SDK_LOG_LEVEL + value: {{ .Values.driver.azureGoSDKLogLevel }} + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: AZURE_ENVIRONMENT_FILEPATH + value: /etc/kubernetes/azurestackcloud.json + {{- end }} + imagePullPolicy: {{ .Values.image.blob.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.controller.resources.blob | nindent 12 }} + - name: csi-resizer +{{- if hasPrefix "/" .Values.image.csiResizer.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" +{{- else }} + image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" +{{- end }} + args: + - "-csi-address=$(ADDRESS)" + - "-v=2" + - "-leader-election" + - "--leader-election-namespace={{ .Release.Namespace }}" + - '-handle-volume-inuse-error=false' + env: + - name: ADDRESS + value: /csi/csi.sock + imagePullPolicy: {{ .Values.image.csiResizer.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.csiResizer | nindent 12 }} + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} + {{- if .Values.securityContext }} + securityContext: {{- toYaml .Values.securityContext | nindent 8 }} + {{- end }} diff --git a/charts/v1.12.0/blob-csi-driver/templates/csi-blob-driver.yaml b/charts/v1.12.0/blob-csi-driver/templates/csi-blob-driver.yaml new file mode 100644 index 000000000..891826a62 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/csi-blob-driver.yaml @@ -0,0 +1,16 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: {{ .Values.driver.name }} + labels: + {{- include "blob.labels" . | nindent 4 }} +spec: + attachRequired: false + podInfoOnMount: true + {{- if .Values.feature.enableFSGroupPolicy}} + fsGroupPolicy: File + {{- end}} + volumeLifecycleModes: + - Persistent + - Ephemeral diff --git a/charts/v1.12.0/blob-csi-driver/templates/csi-blob-node.yaml b/charts/v1.12.0/blob-csi-driver/templates/csi-blob-node.yaml new file mode 100644 index 000000000..3ceea89a2 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/csi-blob-node.yaml @@ -0,0 +1,225 @@ +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: {{ .Values.node.name }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ .Values.node.name }} + {{- include "blob.labels" . | nindent 4 }} +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: {{ .Values.node.maxUnavailable }} + type: RollingUpdate + selector: + matchLabels: + app: {{ .Values.node.name }} + {{- include "blob.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + app: {{ .Values.node.name }} + {{- include "blob.labels" . | nindent 8 }} + {{- if .Values.podLabels }} +{{- toYaml .Values.podLabels | nindent 8 }} + {{- end }} +{{- if .Values.podAnnotations }} + annotations: +{{ toYaml .Values.podAnnotations | indent 8 }} +{{- end }} + spec: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + hostNetwork: true + dnsPolicy: Default + serviceAccountName: {{ .Values.serviceAccount.node }} + nodeSelector: + kubernetes.io/os: linux +{{- with .Values.node.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + {{- if .Values.node.affinity }} +{{- toYaml .Values.node.affinity | nindent 8 }} + {{- end }} + priorityClassName: {{ .Values.priorityClassName | quote }} +{{- with .Values.node.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + containers: + - name: liveness-probe + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + 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 + resources: {{- toYaml .Values.node.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 + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: {{- toYaml .Values.node.resources.nodeDriverRegistrar | nindent 12 }} + - name: blob +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + args: + - "--v={{ .Values.node.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--blobfuse-proxy-endpoint=$(BLOBFUSE_PROXY_ENDPOINT)" + - "--enable-blobfuse-proxy={{ .Values.node.enableBlobfuseProxy }}" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" + - "--drivername={{ .Values.driver.name }}" + - "--cloud-config-secret-name={{ .Values.node.cloudConfigSecretName }}" + - "--cloud-config-secret-namespace={{ .Values.node.cloudConfigSecretNamespace }}" + - "--custom-user-agent={{ .Values.driver.customUserAgent }}" + - "--user-agent-suffix={{ .Values.driver.userAgentSuffix }}" + - "--allow-empty-cloud-config={{ .Values.node.allowEmptyCloudConfig }}" + - "--enable-get-volume-stats={{ .Values.feature.enableGetVolumeStats }}" + - "--append-timestamp-cache-dir={{ .Values.node.appendTimeStampInCacheDir }}" + - "--mount-permissions={{ .Values.node.mountPermissions }}" + - "--allow-inline-volume-key-access-with-idenitity={{ .Values.node.allowInlineVolumeKeyAccessWithIdentity }}" + 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: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: BLOBFUSE_PROXY_ENDPOINT + value: unix:///csi/blobfuse-proxy.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: AZURE_GO_SDK_LOG_LEVEL + value: {{ .Values.driver.azureGoSDKLogLevel }} + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: AZURE_ENVIRONMENT_FILEPATH + value: /etc/kubernetes/azurestackcloud.json + {{- end }} + imagePullPolicy: {{ .Values.image.blob.pullPolicy }} + securityContext: + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: {{ .Values.linux.kubelet }}/ + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /mnt + name: blob-cache + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.node.resources.blob | 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 + - hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + name: azure-cred + - hostPath: + path: {{ .Values.node.blobfuseCachePath }} + name: blob-cache + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} + {{- if .Values.securityContext }} + securityContext: {{- toYaml .Values.securityContext | nindent 8 }} + {{- end }} diff --git a/charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml b/charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..39619c932 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml @@ -0,0 +1,115 @@ +{{- if .Values.rbac.create -}} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-provisioner-role + labels: + {{- include "blob.labels" . | nindent 4 }} +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"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-provisioner-binding + labels: + {{- include "blob.labels" . | nindent 4 }} +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 + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-resizer-role + labels: + {{- include "blob.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-resizer-role + labels: + {{- include "blob.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ .Values.rbac.name }}-external-resizer-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-controller-secret-role + labels: + {{- include "blob.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "create"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-controller-secret-binding + labels: + {{- include "blob.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: csi-{{ .Values.rbac.name }}-controller-secret-role + apiGroup: rbac.authorization.k8s.io +{{ end }} diff --git a/charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml b/charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..d269aea3d --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml @@ -0,0 +1,29 @@ +{{- if .Values.rbac.create -}} +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-node-secret-role + labels: + {{- include "blob.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-node-secret-binding + labels: + {{- include "blob.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.node }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: csi-{{ .Values.rbac.name }}-node-secret-role + apiGroup: rbac.authorization.k8s.io +{{ end }} diff --git a/charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml b/charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml new file mode 100644 index 000000000..9c9fb477b --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml @@ -0,0 +1,9 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +{{- end -}} diff --git a/charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml b/charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml new file mode 100644 index 000000000..e1dc20bd2 --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml @@ -0,0 +1,9 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.node }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +{{- end -}} diff --git a/charts/v1.12.0/blob-csi-driver/values.yaml b/charts/v1.12.0/blob-csi-driver/values.yaml new file mode 100644 index 000000000..f964299be --- /dev/null +++ b/charts/v1.12.0/blob-csi-driver/values.yaml @@ -0,0 +1,165 @@ +image: + baseRepo: mcr.microsoft.com + blob: + repository: /k8s/csi/blob-csi + tag: v1.12.0 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v3.1.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.6.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.5.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.4.0 + pullPolicy: IfNotPresent + +cloud: AzurePublicCloud + +## Reference to one or more secrets to be used when pulling images +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ +imagePullSecrets: [] +# - name: myRegistryKeySecretName + +serviceAccount: + create: true # When true, service accounts will be created for you. Set to false if you want to use your own. + controller: csi-blob-controller-sa # Name of Service Account to be created or used + node: csi-blob-node-sa # Name of Service Account to be created or used + +rbac: + create: true + name: blob + +## Collection of annotations to add to all the pods +podAnnotations: {} +## Collection of labels to add to all the pods +podLabels: {} +# -- Custom labels to add into metadata +customLabels: {} + # k8s-app: blob-csi-driver + +## 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: {} + +controller: + name: csi-blob-controller + cloudConfigSecretName: azure-cloud-provider + cloudConfigSecretNamespace: kube-system + allowEmptyCloudConfig: true + hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting + metricsPort: 29634 + livenessProbe: + healthPort: 29632 + replicas: 2 + runOnMaster: false + logLevel: 5 + resources: + csiProvisioner: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + blob: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + csiResizer: + limits: + memory: 500Mi + 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: + name: csi-blob-node + cloudConfigSecretName: azure-cloud-provider + cloudConfigSecretNamespace: kube-system + allowEmptyCloudConfig: true + allowInlineVolumeKeyAccessWithIdentity: false + maxUnavailable: 1 + metricsPort: 29635 + livenessProbe: + healthPort: 29633 + logLevel: 5 + enableBlobfuseProxy: false + blobfuseProxy: + installBlobfuse: true + blobfuseVersion: 1.4.3 + setMaxOpenFileNum: true + maxOpenFileNum: "9000000" + disableUpdateDB: true + blobfuseCachePath: /mnt + appendTimeStampInCacheDir: false + mountPermissions: 0777 + resources: + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + nodeDriverRegistrar: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + blob: + limits: + memory: 2100Mi + requests: + cpu: 10m + memory: 20Mi + affinity: {} + nodeSelector: {} + tolerations: + - operator: "Exists" + livenessProbe: + healthPort: 29633 + +feature: + enableFSGroupPolicy: false + enableGetVolumeStats: false + +driver: + name: blob.csi.azure.com + customUserAgent: "" + userAgentSuffix: "OSS-helm" + azureGoSDKLogLevel: "" # available values: ""(no logs), DEBUG, INFO, WARNING, ERROR + +linux: + kubelet: /var/lib/kubelet + distro: debian diff --git a/deploy/blobfuse-proxy.yaml b/deploy/blobfuse-proxy.yaml index 3bb533ac9..8f56f2216 100644 --- a/deploy/blobfuse-proxy.yaml +++ b/deploy/blobfuse-proxy.yaml @@ -24,7 +24,7 @@ spec: - virtual-kubelet initContainers: - name: prepare-binaries - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 command: ['sh', '-c', "cp /blobfuse-proxy/*.deb /tmp/"] volumeMounts: - mountPath: /tmp @@ -76,7 +76,7 @@ spec: sleep 3s # tail blobfuse proxy logs journalctl -u blobfuse-proxy -f - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 imagePullPolicy: IfNotPresent name: sysctl-install-blobfuse-proxy env: diff --git a/deploy/blobfuse-proxy/README.md b/deploy/blobfuse-proxy/README.md index ecd3d4df6..6ab5af1ef 100644 --- a/deploy/blobfuse-proxy/README.md +++ b/deploy/blobfuse-proxy/README.md @@ -10,19 +10,19 @@ This guide shows how to install a blobfuse proxy on all agent nodes and the prox - helm install ```console helm repo add blob-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts -helm install blob-csi-driver blob-csi-driver/blob-csi-driver --namespace kube-system --version v1.11.0 --set node.enableBlobfuseProxy=true +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --namespace kube-system --version v1.12.0 --set node.enableBlobfuseProxy=true ``` - kubectl install ```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.11.0/deploy/install-driver.sh | bash -s v1.11.0 blobfuse-proxy -- +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.12.0/deploy/install-driver.sh | bash -s v1.12.0 blobfuse-proxy -- ``` ### Enable blobfuse proxy on existing Blob CSI driver - install blobfuse proxy daemonset > following config only works on debian based agent node ```console -kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/v1.11.0/blobfuse-proxy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/v1.12.0/blobfuse-proxy.yaml ``` - set `enable-blobfuse-proxy=true` in existing `csi-blob-node` daemonset manually (default is `false`) ```console diff --git a/deploy/csi-blob-controller.yaml b/deploy/csi-blob-controller.yaml index 03348ec53..49f2b9962 100644 --- a/deploy/csi-blob-controller.yaml +++ b/deploy/csi-blob-controller.yaml @@ -67,7 +67,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/csi-blob-node.yaml b/deploy/csi-blob-node.yaml index cd6eb0cb1..99228288b 100644 --- a/deploy/csi-blob-node.yaml +++ b/deploy/csi-blob-node.yaml @@ -82,7 +82,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/v1.12.0/blobfuse-proxy.yaml b/deploy/v1.12.0/blobfuse-proxy.yaml new file mode 100644 index 000000000..8f56f2216 --- /dev/null +++ b/deploy/v1.12.0/blobfuse-proxy.yaml @@ -0,0 +1,115 @@ +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: csi-blobfuse-proxy + namespace: kube-system +spec: + selector: + matchLabels: + app: csi-blobfuse-proxy + template: + metadata: + labels: + app: csi-blobfuse-proxy + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + initContainers: + - name: prepare-binaries + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 + command: ['sh', '-c', "cp /blobfuse-proxy/*.deb /tmp/"] + volumeMounts: + - mountPath: /tmp + name: tmp-dir + containers: + - command: + - nsenter + - '--target' + - '1' + - '--mount' + - '--uts' + - '--ipc' + - '--net' + - '--pid' + - '--' + - sh + - '-c' + - | + set -xe + INSTALL_BLOBFUSE=${INSTALL_BLOBFUSE:-true} + if (( "${INSTALL_BLOBFUSE}" == "true" )) + then + dpkg -i /tmp/packages-microsoft-prod.deb && apt update && apt-get install -y blobfuse=${BLOBFUSE_VERSION} + fi + dpkg -i /tmp/blobfuse-proxy.deb + mkdir -p /var/lib/kubelet/plugins/blob.csi.azure.com + systemctl enable blobfuse-proxy + systemctl start blobfuse-proxy + + SET_MAX_FILE_NUM=${SET_MAX_OPEN_FILE_NUM:-true} + if (( "${SET_MAX_OPEN_FILE_NUM}" == "true" )) + then + sysctl -w fs.file-max=${MAX_FILE_NUM} + fi + + updateDBConfigPath="/etc/updatedb.conf" + DISABLE_UPDATEDB=${DISABLE_UPDATEDB:-true} + if (( "${DISABLE_UPDATEDB}" == "true" )) && (( test -f ${updateDBConfigPath} )) + then + echo "before changing ${updateDBConfigPath}:" + cat ${updateDBConfigPath} + sed -i 's/PRUNEPATHS="\/tmp/PRUNEPATHS="\/mnt \/var\/lib\/kubelet \/tmp/g' ${updateDBConfigPath} + sed -i 's/PRUNEFS="NFS/PRUNEFS="fuse blobfuse NFS/g' ${updateDBConfigPath} + echo "after change:" + cat ${updateDBConfigPath} + fi + + # "waiting for blobfuse-proxy service to start" + sleep 3s + # tail blobfuse proxy logs + journalctl -u blobfuse-proxy -f + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 + imagePullPolicy: IfNotPresent + name: sysctl-install-blobfuse-proxy + env: + - name: DEBIAN_FRONTEND + value: "noninteractive" + - name: INSTALL_BLOBFUSE + value: "true" + - name: BLOBFUSE_VERSION + value: 1.4.3 + - name: SET_MAX_OPEN_FILE_NUM + value: "true" + - name: MAX_FILE_NUM + value: "9000000" + - name: DISABLE_UPDATEDB + value: "true" + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 1Mi + securityContext: + privileged: true + hostNetwork: true + hostPID: true + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-node-critical + restartPolicy: Always + tolerations: + - operator: Exists + volumes: + - hostPath: + path: /tmp + type: DirectoryOrCreate + name: tmp-dir diff --git a/deploy/v1.12.0/csi-blob-controller.yaml b/deploy/v1.12.0/csi-blob-controller.yaml new file mode 100644 index 000000000..49f2b9962 --- /dev/null +++ b/deploy/v1.12.0/csi-blob-controller.yaml @@ -0,0 +1,138 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-blob-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-blob-controller + template: + metadata: + labels: + app: csi-blob-controller + spec: + hostNetwork: true + serviceAccountName: csi-blob-controller-sa + nodeSelector: + kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node + 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: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v3.1.0 + args: + - "-v=2" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + - "--leader-election-namespace=kube-system" + - "--timeout=120s" + - "--extra-create-metadata=true" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: liveness-probe + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.6.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port=29632 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: blob + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:29634" + - "--user-agent-suffix=OSS-kubectl" + ports: + - containerPort: 29632 + name: healthz + protocol: TCP + - containerPort: 29634 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-resizer + image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.4.0 + args: + - "-csi-address=$(ADDRESS)" + - "-v=2" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - '-handle-volume-inuse-error=false' + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate diff --git a/deploy/v1.12.0/csi-blob-driver.yaml b/deploy/v1.12.0/csi-blob-driver.yaml new file mode 100644 index 000000000..7b216feab --- /dev/null +++ b/deploy/v1.12.0/csi-blob-driver.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: blob.csi.azure.com +spec: + attachRequired: false + podInfoOnMount: true + volumeLifecycleModes: + - Persistent + - Ephemeral diff --git a/deploy/v1.12.0/csi-blob-node.yaml b/deploy/v1.12.0/csi-blob-node.yaml new file mode 100644 index 000000000..99228288b --- /dev/null +++ b/deploy/v1.12.0/csi-blob-node.yaml @@ -0,0 +1,162 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-blob-node + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-blob-node + template: + metadata: + labels: + app: csi-blob-node + spec: + hostNetwork: true + dnsPolicy: Default + serviceAccountName: csi-blob-node-sa + nodeSelector: + kubernetes.io/os: linux + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + tolerations: + - operator: "Exists" + containers: + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.6.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port=29633 + - --v=2 + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.5.0 + 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/blob.csi.azure.com/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: blob + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--enable-blobfuse-proxy=false" + - "--blobfuse-proxy-endpoint=$(BLOBFUSE_PROXY_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--metrics-address=0.0.0.0:29635" + - "--user-agent-suffix=OSS-kubectl" + ports: + - containerPort: 29633 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: BLOBFUSE_PROXY_ENDPOINT + value: unix:///csi/blobfuse-proxy.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 + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /mnt + name: blob-cache + resources: + limits: + memory: 2100Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/blob.csi.azure.com + 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 + - hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + name: azure-cred + - hostPath: + path: /mnt + type: DirectoryOrCreate + name: blob-cache +--- diff --git a/deploy/v1.12.0/kustomization.yaml b/deploy/v1.12.0/kustomization.yaml new file mode 100644 index 000000000..8b7f5fcac --- /dev/null +++ b/deploy/v1.12.0/kustomization.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - csi-blob-controller.yaml + - csi-blob-driver.yaml + - csi-blob-node.yaml + - rbac-csi-blob-controller.yaml + - rbac-csi-blob-node.yaml + - blobfuse-proxy.yaml diff --git a/deploy/v1.12.0/rbac-csi-blob-controller.yaml b/deploy/v1.12.0/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..0d6058f80 --- /dev/null +++ b/deploy/v1.12.0/rbac-csi-blob-controller.yaml @@ -0,0 +1,108 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-blob-controller-sa + namespace: kube-system +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-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"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: csi-blob-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: blob-external-provisioner-role + apiGroup: rbac.authorization.k8s.io +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-external-resizer-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-csi-resizer-role +subjects: + - kind: ServiceAccount + name: csi-blob-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: blob-external-resizer-role + apiGroup: rbac.authorization.k8s.io +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-controller-secret-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "create"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-controller-secret-binding +subjects: + - kind: ServiceAccount + name: csi-blob-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-blob-controller-secret-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.12.0/rbac-csi-blob-node.yaml b/deploy/v1.12.0/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..fe081dba8 --- /dev/null +++ b/deploy/v1.12.0/rbac-csi-blob-node.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-blob-node-sa + namespace: kube-system + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-node-secret-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-node-secret-binding +subjects: + - kind: ServiceAccount + name: csi-blob-node-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-blob-node-secret-role + apiGroup: rbac.authorization.k8s.io diff --git a/docs/install-blob-csi-driver.md b/docs/install-blob-csi-driver.md index 10df0ff8e..631983bbb 100644 --- a/docs/install-blob-csi-driver.md +++ b/docs/install-blob-csi-driver.md @@ -1,6 +1,6 @@ ## Install Azure Blob Storage CSI driver on a Kubernetes cluster - [install CSI driver master version](./install-csi-driver-master.md) + - [install v1.12.0 CSI driver](./install-csi-driver-v1.12.0.md) - [install v1.11.0 CSI driver](./install-csi-driver-v1.11.0.md) - [install v1.10.0 CSI driver](./install-csi-driver-v1.10.0.md) - - [install v1.9.0 CSI driver](./install-csi-driver-v1.9.0.md) diff --git a/docs/install-csi-driver-v1.12.0.md b/docs/install-csi-driver-v1.12.0.md new file mode 100644 index 000000000..de702850a --- /dev/null +++ b/docs/install-csi-driver-v1.12.0.md @@ -0,0 +1,47 @@ +# Install Azure Blob Storage CSI driver v1.12.0 version on a kubernetes cluster +> `blobfuse-proxy` is only available for debian based agent nodes, remove `blobfuse-proxy` parameter in installation steps if it's not applicable. +> +If you have already installed Helm, you can also use it to install this driver. Please check [Installation with Helm](../charts/README.md). + +## Install with kubectl + - Option#1. remote install +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.12.0/deploy/install-driver.sh | bash -s v1.12.0 blobfuse-proxy -- +``` + + - Option#2. local install +```console +git clone https://github.com/kubernetes-sigs/blob-csi-driver.git +cd blob-csi-driver +./deploy/install-driver.sh v1.12.0 local,blobfuse-proxy +``` + +- check pods status: +```console +kubectl -n kube-system get pod -o wide -l app=csi-blob-controller +kubectl -n kube-system get pod -o wide -l app=csi-blob-node +``` + +example output: + +```console +NAME READY STATUS RESTARTS AGE IP NODE +csi-blob-controller-56bfddd689-dh5tk 4/4 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 +csi-blob-controller-56bfddd689-8pgr4 4/4 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 +csi-blob-node-cvgbs 3/3 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 +csi-blob-node-dr4s4 3/3 Running 0 35s 10.240.0.4 k8s-agentpool-22533604-0 +``` + +### clean up Blob CSI driver +- Option#1. remote uninstall +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.12.0/deploy/uninstall-driver.sh | bash -s v1.12.0 blobfuse-proxy -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/blob-csi-driver.git +cd blob-csi-driver +git checkout v1.12.0 +./deploy/install-driver.sh v1.12.0 local +```