From 96fc2dcf6b8a691fca7db8f0114167948fee56a8 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Wed, 19 Apr 2023 07:59:46 +0000 Subject: [PATCH] doc: cut v1.20.3 release --- Makefile | 2 +- README.md | 2 +- charts/README.md | 2 +- charts/index.yaml | 71 +++-- charts/latest/blob-csi-driver-v1.20.2.tgz | Bin 5461 -> 0 bytes charts/latest/blob-csi-driver-v1.20.3.tgz | Bin 0 -> 5463 bytes charts/latest/blob-csi-driver/Chart.yaml | 4 +- charts/latest/blob-csi-driver/values.yaml | 2 +- charts/v1.20.3/blob-csi-driver-v1.20.3.tgz | Bin 0 -> 5463 bytes charts/v1.20.3/blob-csi-driver/Chart.yaml | 5 + .../blob-csi-driver/templates/NOTES.txt | 5 + .../blob-csi-driver/templates/_helpers.tpl | 49 ++++ .../templates/csi-blob-controller.yaml | 209 +++++++++++++ .../templates/csi-blob-driver.yaml | 16 + .../templates/csi-blob-node.yaml | 275 ++++++++++++++++++ .../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.20.3/blob-csi-driver/values.yaml | 165 +++++++++++ deploy/blobfuse-proxy/README.md | 6 +- deploy/csi-blob-controller.yaml | 2 +- deploy/csi-blob-node.yaml | 4 +- deploy/v1.20.3/csi-blob-controller.yaml | 140 +++++++++ deploy/v1.20.3/csi-blob-driver.yaml | 11 + deploy/v1.20.3/csi-blob-node.yaml | 196 +++++++++++++ deploy/v1.20.3/kustomization.yaml | 10 + deploy/v1.20.3/rbac-csi-blob-controller.yaml | 108 +++++++ deploy/v1.20.3/rbac-csi-blob-node.yaml | 30 ++ docs/install-blob-csi-driver.md | 2 +- docs/install-csi-driver-v1.20.3.md | 47 +++ 31 files changed, 1481 insertions(+), 44 deletions(-) delete mode 100644 charts/latest/blob-csi-driver-v1.20.2.tgz create mode 100644 charts/latest/blob-csi-driver-v1.20.3.tgz create mode 100644 charts/v1.20.3/blob-csi-driver-v1.20.3.tgz create mode 100644 charts/v1.20.3/blob-csi-driver/Chart.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.20.3/blob-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.20.3/blob-csi-driver/templates/csi-blob-controller.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/templates/csi-blob-driver.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/templates/csi-blob-node.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/templates/rbac-csi-blob-controller.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/templates/rbac-csi-blob-node.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml create mode 100644 charts/v1.20.3/blob-csi-driver/values.yaml create mode 100644 deploy/v1.20.3/csi-blob-controller.yaml create mode 100644 deploy/v1.20.3/csi-blob-driver.yaml create mode 100644 deploy/v1.20.3/csi-blob-node.yaml create mode 100644 deploy/v1.20.3/kustomization.yaml create mode 100644 deploy/v1.20.3/rbac-csi-blob-controller.yaml create mode 100644 deploy/v1.20.3/rbac-csi-blob-node.yaml create mode 100644 docs/install-csi-driver-v1.20.3.md diff --git a/Makefile b/Makefile index af81103b2..12579daba 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ GIT_COMMIT ?= $(shell git rev-parse HEAD) REGISTRY ?= andyzhangx REGISTRY_NAME ?= $(shell echo $(REGISTRY) | sed "s/.azurecr.io//g") IMAGE_NAME ?= blob-csi -IMAGE_VERSION ?= v1.20.2 +IMAGE_VERSION ?= v1.20.3 CLOUD ?= AzurePublicCloud # Use a custom version for E2E tests if we are in Prow ifdef CI diff --git a/README.md b/README.md index 04c9c8815..b51206017 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Disclaimer: Deploying this driver manually is not an officially supported Micros |driver version |Image | supported k8s version | built-in blobfuse v1 version | built-in blobfuse v2 version| |----------------|------------------------------------------------------|-----------------------|------------------------------| ----------------------------| |master branch |mcr.microsoft.com/k8s/csi/blob-csi:latest | 1.21+ | 1.4.5 | 2.0.2 | -|v1.20.2 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.2 | 1.21+ | 1.4.5 | 2.0.2 | +|v1.20.3 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.3 | 1.21+ | 1.4.5 | 2.0.2 | |v1.19.0 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.19.0 | 1.21+ | 1.4.5 | 2.0.1 | |v1.18.0 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.18.0 | 1.21+ | 1.4.5 | 2.0.0-preview.3 | diff --git a/charts/README.md b/charts/README.md index be9318af1..986e21bff 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.20.2 +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --set node.enableBlobfuseProxy=true --namespace kube-system --version v1.20.3 ``` ## install on Azure Stack diff --git a/charts/index.yaml b/charts/index.yaml index 8bdffe228..333a3ce6f 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -2,17 +2,26 @@ apiVersion: v1 entries: blob-csi-driver: - apiVersion: v1 - appVersion: v1.20.2 - created: "2023-04-15T01:20:26.068496088Z" + appVersion: v1.20.3 + created: "2023-04-19T07:59:20.883457236Z" description: Azure Blob Storage CSI driver - digest: 4bade95d429e53f9e9e2f07af3e24117f71dbdc708df1f41b6ec95245d2d0ca0 + digest: 00d7e6a2fdf7673bd56ee4d60cffe6c9796bae1dfbc8f3ff3f8e8a13860f7b97 name: blob-csi-driver urls: - - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/latest/blob-csi-driver-v1.20.2.tgz - version: v1.20.2 + - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/latest/blob-csi-driver-v1.20.3.tgz + version: v1.20.3 + - apiVersion: v1 + appVersion: v1.20.3 + created: "2023-04-19T07:59:20.89445098Z" + description: Azure Blob Storage CSI driver + digest: 8c2c20547b2e0e1b39d2f2efd04c1bd778f14af5feae2bda86d722dac3c02643 + name: blob-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v1.20.3/blob-csi-driver-v1.20.3.tgz + version: v1.20.3 - apiVersion: v1 appVersion: v1.20.2 - created: "2023-04-15T01:20:26.090017438Z" + created: "2023-04-19T07:59:20.893880306Z" description: Azure Blob Storage CSI driver digest: 4bade95d429e53f9e9e2f07af3e24117f71dbdc708df1f41b6ec95245d2d0ca0 name: blob-csi-driver @@ -21,7 +30,7 @@ entries: version: v1.20.2 - apiVersion: v1 appVersion: v1.20.1 - created: "2023-04-15T01:20:26.089177685Z" + created: "2023-04-19T07:59:20.893263006Z" description: Azure Blob Storage CSI driver digest: b2a843345518a2431f7ddd573ec4556cd38a0d4ec78a58703fde4698e545bec3 name: blob-csi-driver @@ -30,7 +39,7 @@ entries: version: v1.20.1 - apiVersion: v1 appVersion: v1.20.0 - created: "2023-04-15T01:20:26.088314311Z" + created: "2023-04-19T07:59:20.89268212Z" description: Azure Blob Storage CSI driver digest: df29e60561b660c952441d002291be488856a512c325e2b534c8ff0eab9692b7 name: blob-csi-driver @@ -39,7 +48,7 @@ entries: version: v1.20.0 - apiVersion: v1 appVersion: v1.19.0 - created: "2023-04-15T01:20:26.086776564Z" + created: "2023-04-19T07:59:20.89162583Z" description: Azure Blob Storage CSI driver digest: 1e2a42d12b750ad3bb7e287bb0524a0f896568384779509473541693b4440939 name: blob-csi-driver @@ -48,7 +57,7 @@ entries: version: v1.19.0 - apiVersion: v1 appVersion: v1.18.0 - created: "2023-04-15T01:20:26.086095398Z" + created: "2023-04-19T07:59:20.891050083Z" description: Azure Blob Storage CSI driver digest: 3eac15488da5be7d1e78431929f7cda35bceb1af3fe107ffbd84606e047c9204 name: blob-csi-driver @@ -57,7 +66,7 @@ entries: version: v1.18.0 - apiVersion: v1 appVersion: v1.17.0 - created: "2023-04-15T01:20:26.085200627Z" + created: "2023-04-19T07:59:20.890433546Z" description: Azure Blob Storage CSI driver digest: 22cfa17fc5e8d771ff8edd26729266a9a8ee55c0e150df85ef15698f7fe985e9 name: blob-csi-driver @@ -66,7 +75,7 @@ entries: version: v1.17.0 - apiVersion: v1 appVersion: v1.16.0 - created: "2023-04-15T01:20:26.083796188Z" + created: "2023-04-19T07:59:20.889825173Z" description: Azure Blob Storage CSI driver digest: bf6249c0e3e3d3d009d4c79ceb7fda9a56c0565b969de753628792ea3ea5ece8 name: blob-csi-driver @@ -75,7 +84,7 @@ entries: version: v1.16.0 - apiVersion: v1 appVersion: v1.15.0 - created: "2023-04-15T01:20:26.080361098Z" + created: "2023-04-19T07:59:20.889045063Z" description: Azure Blob Storage CSI driver digest: 8daa35cd4957695cb64b45da05a15b4020df5545a8ac44c4668dad4bba82c8a9 name: blob-csi-driver @@ -84,7 +93,7 @@ entries: version: v1.15.0 - apiVersion: v1 appVersion: v1.14.0 - created: "2023-04-15T01:20:26.078973679Z" + created: "2023-04-19T07:59:20.887410557Z" description: Azure Blob Storage CSI driver digest: 442bc579b231aab626b9e474e2c0ed3f101d47d61c99aa9a7f863af7ce268d9d name: blob-csi-driver @@ -93,7 +102,7 @@ entries: version: v1.14.0 - apiVersion: v1 appVersion: v1.13.0 - created: "2023-04-15T01:20:26.077639653Z" + created: "2023-04-19T07:59:20.88656018Z" description: Azure Blob Storage CSI driver digest: b577b0b771138109aa90eb09d56fc07273ca0b584a263ee8f789e35796279f31 name: blob-csi-driver @@ -102,7 +111,7 @@ entries: version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2023-04-15T01:20:26.076319772Z" + created: "2023-04-19T07:59:20.885975629Z" description: Azure Blob Storage CSI driver digest: 124e87af2581b374b89a39940698620c23d3eae6dcee518d302461ffea93e9a8 name: blob-csi-driver @@ -111,7 +120,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2023-04-15T01:20:26.07520848Z" + created: "2023-04-19T07:59:20.885352404Z" description: Azure Blob Storage CSI driver digest: 07c4d76017491b3d0bdd70de90e814096938bf7916da0c149c3805294bd57560 name: blob-csi-driver @@ -120,7 +129,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2023-04-15T01:20:26.073956656Z" + created: "2023-04-19T07:59:20.884759933Z" description: Azure Blob Storage CSI driver digest: 79716efa958385adf57eb3570843e1b4512d8c801e8e070625e94264f3e917a9 name: blob-csi-driver @@ -129,7 +138,7 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: v1.9.0 - created: "2023-04-15T01:20:26.102554377Z" + created: "2023-04-19T07:59:20.899648588Z" description: Azure Blob Storage CSI driver digest: fca0b9215d3277346f68c643fb3ead75158971f0d1945ab01ec559196f3cf842 name: blob-csi-driver @@ -138,7 +147,7 @@ entries: version: v1.9.0 - apiVersion: v1 appVersion: v1.8.0 - created: "2023-04-15T01:20:26.101138493Z" + created: "2023-04-19T07:59:20.899068751Z" description: Azure Blob Storage CSI driver digest: 3b78e2ab4f33577c54d4f57276c824717d2ad2aa3741210e938fcaf927bc751f name: blob-csi-driver @@ -147,7 +156,7 @@ entries: version: v1.8.0 - apiVersion: v1 appVersion: v1.7.0 - created: "2023-04-15T01:20:26.10001008Z" + created: "2023-04-19T07:59:20.898499781Z" description: Azure Blob Storage CSI driver digest: 28da5b55c3d2689d6da85eb7da344385e9cb99bdb2af18c24fea93670abfe7ea name: blob-csi-driver @@ -156,7 +165,7 @@ entries: version: v1.7.0 - apiVersion: v1 appVersion: v1.6.0 - created: "2023-04-15T01:20:26.098958721Z" + created: "2023-04-19T07:59:20.897918685Z" description: Azure Blob Storage CSI driver digest: 6f24f2e6623f6f8862e47d4fbdf13b5f351ceec6bb9a4591ef7fc2fca9fc1eef name: blob-csi-driver @@ -165,7 +174,7 @@ entries: version: v1.6.0 - apiVersion: v1 appVersion: v1.5.0 - created: "2023-04-15T01:20:26.09585261Z" + created: "2023-04-19T07:59:20.897364051Z" description: Azure Blob Storage CSI driver digest: 95d14c9b70b319760d388ea47727c8c97e9287867a8852aeb67b7175b52fe8f5 name: blob-csi-driver @@ -174,7 +183,7 @@ entries: version: v1.5.0 - apiVersion: v1 appVersion: v1.4.1 - created: "2023-04-15T01:20:26.094551907Z" + created: "2023-04-19T07:59:20.896837183Z" description: Azure Blob Storage CSI driver digest: 5fcf69c449f065fa1d5722e5a7fed8a28000efa790907e9ff4b552c5fbd16d22 name: blob-csi-driver @@ -183,7 +192,7 @@ entries: version: v1.4.1 - apiVersion: v1 appVersion: v1.4.0 - created: "2023-04-15T01:20:26.092303769Z" + created: "2023-04-19T07:59:20.896274667Z" description: Azure Blob Storage CSI driver digest: b466543344a6411f6130ba87b093955d39ab8614c6b4ed8505a0a0c96073cb33 name: blob-csi-driver @@ -192,7 +201,7 @@ entries: version: v1.4.0 - apiVersion: v1 appVersion: v1.3.0 - created: "2023-04-15T01:20:26.091140248Z" + created: "2023-04-19T07:59:20.895132202Z" description: Azure Blob Storage CSI driver digest: 58d02cb70a3a966b349d62e880b7149fb06ac009474e35e580784fd3c98a5b07 name: blob-csi-driver @@ -201,7 +210,7 @@ entries: version: v1.3.0 - apiVersion: v1 appVersion: v1.2.0 - created: "2023-04-15T01:20:26.087526464Z" + created: "2023-04-19T07:59:20.892072612Z" description: Azure Blob Storage CSI driver digest: 27fb89f20b5fddc7329e6d7c2374857b22c1d61592e397a53f47121eea68c344 name: blob-csi-driver @@ -210,7 +219,7 @@ entries: version: v1.2.0 - apiVersion: v1 appVersion: v1.1.0 - created: "2023-04-15T01:20:26.072674725Z" + created: "2023-04-19T07:59:20.884164935Z" description: Azure Blob Storage CSI driver digest: a251a55243de207c69ef53f72abee45e93b72fa4fc43dc204b7f1cdfd459acdb name: blob-csi-driver @@ -219,7 +228,7 @@ entries: version: v1.1.0 - apiVersion: v1 appVersion: v1.0.0 - created: "2023-04-15T01:20:26.069348028Z" + created: "2023-04-19T07:59:20.88374098Z" description: Azure Blob Storage CSI driver digest: e83f037a165eafc83a978bd7e6bf6221b052ac34363aecb12e6a73607dc58b89 name: blob-csi-driver @@ -228,11 +237,11 @@ entries: version: v1.0.0 - apiVersion: v1 appVersion: latest - created: "2023-04-15T01:20:26.067507964Z" + created: "2023-04-19T07:59:20.882855665Z" description: Azure Blob Storage CSI driver digest: f8fb3820c550867e0e2468bb593a3e3d45e6b4fb283b66100d5f6bab0c0d8a47 name: blob-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/latest/blob-csi-driver-v0.0.0.tgz version: v0.0.0 -generated: "2023-04-15T01:20:26.065561959Z" +generated: "2023-04-19T07:59:20.882108921Z" diff --git a/charts/latest/blob-csi-driver-v1.20.2.tgz b/charts/latest/blob-csi-driver-v1.20.2.tgz deleted file mode 100644 index 086c86ec334bb6e31067ab2f6b4602fb41521af6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5461 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 N|Nq@ZC|m%T004~fsbK&B literal 0 HcmV?d00001 diff --git a/charts/v1.20.3/blob-csi-driver/Chart.yaml b/charts/v1.20.3/blob-csi-driver/Chart.yaml new file mode 100644 index 000000000..d99960ef5 --- /dev/null +++ b/charts/v1.20.3/blob-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.20.3 +description: Azure Blob Storage CSI driver +name: blob-csi-driver +version: v1.20.3 diff --git a/charts/v1.20.3/blob-csi-driver/templates/NOTES.txt b/charts/v1.20.3/blob-csi-driver/templates/NOTES.txt new file mode 100644 index 000000000..9ad135dd4 --- /dev/null +++ b/charts/v1.20.3/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.20.3/blob-csi-driver/templates/_helpers.tpl b/charts/v1.20.3/blob-csi-driver/templates/_helpers.tpl new file mode 100644 index 000000000..d99392f32 --- /dev/null +++ b/charts/v1.20.3/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.20.3/blob-csi-driver/templates/csi-blob-controller.yaml b/charts/v1.20.3/blob-csi-driver/templates/csi-blob-controller.yaml new file mode 100644 index 000000000..161e08b83 --- /dev/null +++ b/charts/v1.20.3/blob-csi-driver/templates/csi-blob-controller.yaml @@ -0,0 +1,209 @@ +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}} + node-role.kubernetes.io/master: "" + {{- end}} + {{- if .Values.controller.runOnControlPlane}} + node-role.kubernetes.io/control-plane: "" + {{- 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" + - "--kube-api-qps=50" + - "--kube-api-burst=100" + 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 + {{- if ne .Values.driver.httpsProxy "" }} + - name: HTTPS_PROXY + value: {{ .Values.driver.httpsProxy }} + {{- end }} + {{- if ne .Values.driver.httpProxy "" }} + - name: HTTP_PROXY + value: {{ .Values.driver.httpProxy }} + {{- end }} + - 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.20.3/blob-csi-driver/templates/csi-blob-driver.yaml b/charts/v1.20.3/blob-csi-driver/templates/csi-blob-driver.yaml new file mode 100644 index 000000000..891826a62 --- /dev/null +++ b/charts/v1.20.3/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.20.3/blob-csi-driver/templates/csi-blob-node.yaml b/charts/v1.20.3/blob-csi-driver/templates/csi-blob-node.yaml new file mode 100644 index 000000000..056f4a529 --- /dev/null +++ b/charts/v1.20.3/blob-csi-driver/templates/csi-blob-node.yaml @@ -0,0 +1,275 @@ +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 }} +{{- if .Values.node.enableBlobfuseProxy }} + hostPID: true +{{- 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 }} +{{- if .Values.node.enableBlobfuseProxy }} + initContainers: + - name: install-blobfuse-proxy +{{- 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 + command: + - "/blobfuse-proxy/init.sh" + securityContext: + privileged: true + 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 }}" + volumeMounts: + - name: host-usr + mountPath: /host/usr + - name: host-etc + mountPath: /host/etc +{{- 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)" + - "--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 + {{- if ne .Values.driver.httpsProxy "" }} + - name: HTTPS_PROXY + value: {{ .Values.driver.httpsProxy }} + {{- end }} + {{- if ne .Values.driver.httpProxy "" }} + - name: HTTP_PROXY + value: {{ .Values.driver.httpProxy }} + {{- end }} + - 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: +{{- if .Values.node.enableBlobfuseProxy }} + - name: host-usr + hostPath: + path: /usr + - name: host-etc + hostPath: + path: /etc +{{- end }} + - 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.20.3/blob-csi-driver/templates/rbac-csi-blob-controller.yaml b/charts/v1.20.3/blob-csi-driver/templates/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..833dcc640 --- /dev/null +++ b/charts/v1.20.3/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", "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.20.3/blob-csi-driver/templates/rbac-csi-blob-node.yaml b/charts/v1.20.3/blob-csi-driver/templates/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..c041cf8db --- /dev/null +++ b/charts/v1.20.3/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"] + +--- +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.20.3/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml b/charts/v1.20.3/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml new file mode 100644 index 000000000..9c9fb477b --- /dev/null +++ b/charts/v1.20.3/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.20.3/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml b/charts/v1.20.3/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml new file mode 100644 index 000000000..e1dc20bd2 --- /dev/null +++ b/charts/v1.20.3/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.20.3/blob-csi-driver/values.yaml b/charts/v1.20.3/blob-csi-driver/values.yaml new file mode 100644 index 000000000..be1578326 --- /dev/null +++ b/charts/v1.20.3/blob-csi-driver/values.yaml @@ -0,0 +1,165 @@ +image: + baseRepo: mcr.microsoft.com + blob: + repository: /oss/kubernetes-csi/blob-csi + tag: v1.20.3 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v3.3.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.8.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.6.2 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.6.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 + runOnControlPlane: 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 + livenessProbe: + healthPort: 29633 + logLevel: 5 + enableBlobfuseProxy: false + blobfuseProxy: + installBlobfuse: true + blobfuseVersion: 1.4.5 + 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" + +feature: + enableFSGroupPolicy: false + enableGetVolumeStats: false + +driver: + name: blob.csi.azure.com + customUserAgent: "" + userAgentSuffix: "OSS-helm" + azureGoSDKLogLevel: "" # available values: ""(no logs), DEBUG, INFO, WARNING, ERROR + httpsProxy: "" + httpProxy: "" + +linux: + kubelet: /var/lib/kubelet + distro: debian diff --git a/deploy/blobfuse-proxy/README.md b/deploy/blobfuse-proxy/README.md index 1e6f8eeca..0db445f65 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.20.2 --set node.enableBlobfuseProxy=true +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --namespace kube-system --version v1.20.3 --set node.enableBlobfuseProxy=true ``` - kubectl install ```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.20.2/deploy/install-driver.sh | bash -s v1.20.2 blobfuse-proxy -- +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.20.3/deploy/install-driver.sh | bash -s v1.20.3 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.20.2/blobfuse-proxy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/v1.20.3/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 57e22ad45..0932bd945 100644 --- a/deploy/csi-blob-controller.yaml +++ b/deploy/csi-blob-controller.yaml @@ -69,7 +69,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.2 + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.3 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/csi-blob-node.yaml b/deploy/csi-blob-node.yaml index 7f3005cb8..1ac496773 100644 --- a/deploy/csi-blob-node.yaml +++ b/deploy/csi-blob-node.yaml @@ -37,7 +37,7 @@ spec: - operator: "Exists" initContainers: - name: install-blobfuse-proxy - image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.2 + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.3 imagePullPolicy: IfNotPresent command: - "/blobfuse-proxy/init.sh" @@ -111,7 +111,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.2 + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.3 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/v1.20.3/csi-blob-controller.yaml b/deploy/v1.20.3/csi-blob-controller.yaml new file mode 100644 index 000000000..0932bd945 --- /dev/null +++ b/deploy/v1.20.3/csi-blob-controller.yaml @@ -0,0 +1,140 @@ +--- +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.3.0 + args: + - "-v=2" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + - "--leader-election-namespace=kube-system" + - "--timeout=120s" + - "--extra-create-metadata=true" + - "--kube-api-qps=50" + - "--kube-api-burst=100" + 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.8.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/oss/kubernetes-csi/blob-csi:v1.20.3 + 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.5.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.20.3/csi-blob-driver.yaml b/deploy/v1.20.3/csi-blob-driver.yaml new file mode 100644 index 000000000..7b216feab --- /dev/null +++ b/deploy/v1.20.3/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.20.3/csi-blob-node.yaml b/deploy/v1.20.3/csi-blob-node.yaml new file mode 100644 index 000000000..1ac496773 --- /dev/null +++ b/deploy/v1.20.3/csi-blob-node.yaml @@ -0,0 +1,196 @@ +--- +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 + hostPID: 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" + initContainers: + - name: install-blobfuse-proxy + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.3 + imagePullPolicy: IfNotPresent + command: + - "/blobfuse-proxy/init.sh" + securityContext: + privileged: true + env: + - name: DEBIAN_FRONTEND + value: "noninteractive" + - name: INSTALL_BLOBFUSE + value: "true" + - name: INSTALL_BLOBFUSE_PROXY + value: "true" + - name: BLOBFUSE_VERSION + value: 1.4.5 + - name: SET_MAX_OPEN_FILE_NUM + value: "true" + - name: MAX_FILE_NUM + value: "9000000" + - name: DISABLE_UPDATEDB + value: "true" + volumeMounts: + - name: host-usr + mountPath: /host/usr + - name: host-etc + mountPath: /host/etc + containers: + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.8.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.6.2 + 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/oss/kubernetes-csi/blob-csi:v1.20.3 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--enable-blobfuse-proxy=false" + - "--blobfuse-proxy-endpoint=$(BLOBFUSE_PROXY_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--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: + - name: host-usr + hostPath: + path: /usr + - name: host-etc + hostPath: + path: /etc + - 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.20.3/kustomization.yaml b/deploy/v1.20.3/kustomization.yaml new file mode 100644 index 000000000..8b7f5fcac --- /dev/null +++ b/deploy/v1.20.3/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.20.3/rbac-csi-blob-controller.yaml b/deploy/v1.20.3/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..89c2f1f38 --- /dev/null +++ b/deploy/v1.20.3/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", "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.20.3/rbac-csi-blob-node.yaml b/deploy/v1.20.3/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..ce06d862c --- /dev/null +++ b/deploy/v1.20.3/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"] + +--- +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 62e3ba567..3a4eb60e5 100644 --- a/docs/install-blob-csi-driver.md +++ b/docs/install-blob-csi-driver.md @@ -4,6 +4,6 @@ > - please use helm install method for more customization, e.g. Azure Stack, RedHat OpenShift support. > - [install CSI driver master version](./install-csi-driver-master.md) (only for testing purpose) - - [install v1.20.2 CSI driver](./install-csi-driver-v1.20.2.md) + - [install v1.20.3 CSI driver](./install-csi-driver-v1.20.3.md) - [install v1.19.0 CSI driver](./install-csi-driver-v1.19.0.md) - [install v1.18.0 CSI driver](./install-csi-driver-v1.18.0.md) diff --git a/docs/install-csi-driver-v1.20.3.md b/docs/install-csi-driver-v1.20.3.md new file mode 100644 index 000000000..576fcb031 --- /dev/null +++ b/docs/install-csi-driver-v1.20.3.md @@ -0,0 +1,47 @@ +# Install Azure Blob Storage CSI driver v1.20.3 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.20.3/deploy/install-driver.sh | bash -s v1.20.3 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.20.3 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.20.3/deploy/uninstall-driver.sh | bash -s v1.20.3 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/blob-csi-driver.git +cd blob-csi-driver +git checkout v1.20.3 +./deploy/uninstall-driver.sh v1.20.3 local +```