From e3a67a07049ba0fea7882c5db84aacc96b748b4f Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Fri, 30 Jun 2023 03:36:09 +0000 Subject: [PATCH] doc: cut v1.22.1 release --- Makefile | 2 +- README.md | 2 +- charts/index.yaml | 73 +++-- charts/latest/blob-csi-driver-v1.22.0.tgz | Bin 5690 -> 0 bytes charts/latest/blob-csi-driver-v1.22.1.tgz | Bin 0 -> 5693 bytes charts/latest/blob-csi-driver/Chart.yaml | 4 +- charts/latest/blob-csi-driver/values.yaml | 2 +- charts/v1.22.1/blob-csi-driver-v1.22.1.tgz | Bin 0 -> 5693 bytes charts/v1.22.1/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 | 215 +++++++++++++ .../templates/csi-blob-driver.yaml | 14 + .../templates/csi-blob-node.yaml | 285 ++++++++++++++++++ .../templates/rbac-csi-blob-controller.yaml | 115 +++++++ .../templates/rbac-csi-blob-node.yaml | 29 ++ .../serviceaccount-csi-blob-controller.yaml | 17 ++ .../serviceaccount-csi-blob-node.yaml | 17 ++ charts/v1.22.1/blob-csi-driver/values.yaml | 173 +++++++++++ deploy/blobfuse-proxy/README.md | 6 +- deploy/csi-blob-controller.yaml | 2 +- deploy/csi-blob-node.yaml | 4 +- deploy/v1.22.1/csi-blob-controller.yaml | 143 +++++++++ deploy/v1.22.1/csi-blob-driver.yaml | 12 + deploy/v1.22.1/csi-blob-node.yaml | 203 +++++++++++++ deploy/v1.22.1/kustomization.yaml | 10 + deploy/v1.22.1/rbac-csi-blob-controller.yaml | 108 +++++++ deploy/v1.22.1/rbac-csi-blob-node.yaml | 30 ++ docs/install-blob-csi-driver.md | 2 +- docs/install-csi-driver-v1.22.1.md | 47 +++ 30 files changed, 1530 insertions(+), 44 deletions(-) delete mode 100644 charts/latest/blob-csi-driver-v1.22.0.tgz create mode 100644 charts/latest/blob-csi-driver-v1.22.1.tgz create mode 100644 charts/v1.22.1/blob-csi-driver-v1.22.1.tgz create mode 100644 charts/v1.22.1/blob-csi-driver/Chart.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.22.1/blob-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.22.1/blob-csi-driver/templates/csi-blob-controller.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/templates/csi-blob-driver.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/templates/csi-blob-node.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/templates/rbac-csi-blob-controller.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/templates/rbac-csi-blob-node.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml create mode 100644 charts/v1.22.1/blob-csi-driver/values.yaml create mode 100644 deploy/v1.22.1/csi-blob-controller.yaml create mode 100644 deploy/v1.22.1/csi-blob-driver.yaml create mode 100644 deploy/v1.22.1/csi-blob-node.yaml create mode 100644 deploy/v1.22.1/kustomization.yaml create mode 100644 deploy/v1.22.1/rbac-csi-blob-controller.yaml create mode 100644 deploy/v1.22.1/rbac-csi-blob-node.yaml create mode 100644 docs/install-csi-driver-v1.22.1.md diff --git a/Makefile b/Makefile index 8c14c7125..2f8be1d26 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.22.0 +IMAGE_VERSION ?= v1.22.1 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 d8687d04e..d47de7e01 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.3 | -|v1.22.0 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.0 | 1.21+ | 1.4.5 | 2.0.3 | +|v1.22.1 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.1 | 1.21+ | 1.4.5 | 2.0.3 | |v1.21.2 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.21.2 | 1.21+ | 1.4.5 | 2.0.3 | |v1.20.2 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.20.2 | 1.21+ | 1.4.5 | 2.0.3 | diff --git a/charts/index.yaml b/charts/index.yaml index c123b2033..c673ad86e 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -2,17 +2,26 @@ apiVersion: v1 entries: blob-csi-driver: - apiVersion: v1 - appVersion: v1.22.0 - created: "2023-06-01T12:16:19.184437024Z" + appVersion: v1.22.1 + created: "2023-06-30T03:35:45.27066299Z" description: Azure Blob Storage CSI driver - digest: 12dee71eafbac0a192b2e9317d7f26e1f6527a52a6e61a3b13a2319537b6bf40 + digest: 8329d477d55c82f97bb09fb172c5f39a1677bedc13c7410bd93b306194516438 name: blob-csi-driver urls: - - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/latest/blob-csi-driver-v1.22.0.tgz - version: v1.22.0 + - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v1.22.1/blob-csi-driver-v1.22.1.tgz + version: v1.22.1 + - apiVersion: v1 + appVersion: v1.22.1 + created: "2023-06-30T03:35:45.254843672Z" + description: Azure Blob Storage CSI driver + digest: 79df16268ac87a9040d70832b087acc2b1ac3f1e3f007f6f85f9b688346fd7ab + name: blob-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/latest/blob-csi-driver-v1.22.1.tgz + version: v1.22.1 - apiVersion: v1 appVersion: v1.22.0 - created: "2023-06-01T12:16:19.195633118Z" + created: "2023-06-30T03:35:45.26848397Z" description: Azure Blob Storage CSI driver digest: 174eaf21b8e1f5f5c8e3f67d75ae4e5570c5e577ba663e5aca2b588a10597fb9 name: blob-csi-driver @@ -21,7 +30,7 @@ entries: version: v1.22.0 - apiVersion: v1 appVersion: v1.21.2 - created: "2023-06-01T12:16:19.195035499Z" + created: "2023-06-30T03:35:45.267903417Z" description: Azure Blob Storage CSI driver digest: a37e16c22dcee86f2e4e56fc6514aedd9061fe9548e82da476c536428b5ccbd8 name: blob-csi-driver @@ -30,7 +39,7 @@ entries: version: v1.21.2 - apiVersion: v1 appVersion: v1.21.1 - created: "2023-06-01T12:16:19.19444686Z" + created: "2023-06-30T03:35:45.2671247Z" description: Azure Blob Storage CSI driver digest: 77640358a3862bf482c10fe4d887cbfa84e47d29271a93aecf749c12645ea80e name: blob-csi-driver @@ -39,7 +48,7 @@ entries: version: v1.21.1 - apiVersion: v1 appVersion: v1.20.3 - created: "2023-06-01T12:16:19.193862651Z" + created: "2023-06-30T03:35:45.266316924Z" description: Azure Blob Storage CSI driver digest: 8c2c20547b2e0e1b39d2f2efd04c1bd778f14af5feae2bda86d722dac3c02643 name: blob-csi-driver @@ -48,7 +57,7 @@ entries: version: v1.20.3 - apiVersion: v1 appVersion: v1.19.5 - created: "2023-06-01T12:16:19.192785147Z" + created: "2023-06-30T03:35:45.265007104Z" description: Azure Blob Storage CSI driver digest: 183c3e5cd84b709f1455cc7c84ed5bd573e8a24149fd6442d38999835b0a1711 name: blob-csi-driver @@ -57,7 +66,7 @@ entries: version: v1.19.5 - apiVersion: v1 appVersion: v1.18.0 - created: "2023-06-01T12:16:19.192146751Z" + created: "2023-06-30T03:35:45.264425419Z" description: Azure Blob Storage CSI driver digest: 3eac15488da5be7d1e78431929f7cda35bceb1af3fe107ffbd84606e047c9204 name: blob-csi-driver @@ -66,7 +75,7 @@ entries: version: v1.18.0 - apiVersion: v1 appVersion: v1.17.0 - created: "2023-06-01T12:16:19.190586662Z" + created: "2023-06-30T03:35:45.263625342Z" description: Azure Blob Storage CSI driver digest: 22cfa17fc5e8d771ff8edd26729266a9a8ee55c0e150df85ef15698f7fe985e9 name: blob-csi-driver @@ -75,7 +84,7 @@ entries: version: v1.17.0 - apiVersion: v1 appVersion: v1.16.0 - created: "2023-06-01T12:16:19.190000687Z" + created: "2023-06-30T03:35:45.262735088Z" description: Azure Blob Storage CSI driver digest: bf6249c0e3e3d3d009d4c79ceb7fda9a56c0565b969de753628792ea3ea5ece8 name: blob-csi-driver @@ -84,7 +93,7 @@ entries: version: v1.16.0 - apiVersion: v1 appVersion: v1.15.0 - created: "2023-06-01T12:16:19.189369583Z" + created: "2023-06-30T03:35:45.261073835Z" description: Azure Blob Storage CSI driver digest: 8daa35cd4957695cb64b45da05a15b4020df5545a8ac44c4668dad4bba82c8a9 name: blob-csi-driver @@ -93,7 +102,7 @@ entries: version: v1.15.0 - apiVersion: v1 appVersion: v1.14.0 - created: "2023-06-01T12:16:19.188792626Z" + created: "2023-06-30T03:35:45.260203996Z" description: Azure Blob Storage CSI driver digest: 442bc579b231aab626b9e474e2c0ed3f101d47d61c99aa9a7f863af7ce268d9d name: blob-csi-driver @@ -102,7 +111,7 @@ entries: version: v1.14.0 - apiVersion: v1 appVersion: v1.13.0 - created: "2023-06-01T12:16:19.188179351Z" + created: "2023-06-30T03:35:45.259416244Z" description: Azure Blob Storage CSI driver digest: b577b0b771138109aa90eb09d56fc07273ca0b584a263ee8f789e35796279f31 name: blob-csi-driver @@ -111,7 +120,7 @@ entries: version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2023-06-01T12:16:19.187564209Z" + created: "2023-06-30T03:35:45.258590733Z" description: Azure Blob Storage CSI driver digest: 124e87af2581b374b89a39940698620c23d3eae6dcee518d302461ffea93e9a8 name: blob-csi-driver @@ -120,7 +129,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2023-06-01T12:16:19.186952392Z" + created: "2023-06-30T03:35:45.257776236Z" description: Azure Blob Storage CSI driver digest: 07c4d76017491b3d0bdd70de90e814096938bf7916da0c149c3805294bd57560 name: blob-csi-driver @@ -129,7 +138,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2023-06-01T12:16:19.1863482Z" + created: "2023-06-30T03:35:45.256924773Z" description: Azure Blob Storage CSI driver digest: 79716efa958385adf57eb3570843e1b4512d8c801e8e070625e94264f3e917a9 name: blob-csi-driver @@ -138,7 +147,7 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: v1.9.0 - created: "2023-06-01T12:16:19.201054849Z" + created: "2023-06-30T03:35:45.277240425Z" description: Azure Blob Storage CSI driver digest: fca0b9215d3277346f68c643fb3ead75158971f0d1945ab01ec559196f3cf842 name: blob-csi-driver @@ -147,7 +156,7 @@ entries: version: v1.9.0 - apiVersion: v1 appVersion: v1.8.0 - created: "2023-06-01T12:16:19.200477668Z" + created: "2023-06-30T03:35:45.27660296Z" description: Azure Blob Storage CSI driver digest: 3b78e2ab4f33577c54d4f57276c824717d2ad2aa3741210e938fcaf927bc751f name: blob-csi-driver @@ -156,7 +165,7 @@ entries: version: v1.8.0 - apiVersion: v1 appVersion: v1.7.0 - created: "2023-06-01T12:16:19.199830944Z" + created: "2023-06-30T03:35:45.275817612Z" description: Azure Blob Storage CSI driver digest: 28da5b55c3d2689d6da85eb7da344385e9cb99bdb2af18c24fea93670abfe7ea name: blob-csi-driver @@ -165,7 +174,7 @@ entries: version: v1.7.0 - apiVersion: v1 appVersion: v1.6.0 - created: "2023-06-01T12:16:19.199205372Z" + created: "2023-06-30T03:35:45.274482792Z" description: Azure Blob Storage CSI driver digest: 6f24f2e6623f6f8862e47d4fbdf13b5f351ceec6bb9a4591ef7fc2fca9fc1eef name: blob-csi-driver @@ -174,7 +183,7 @@ entries: version: v1.6.0 - apiVersion: v1 appVersion: v1.5.0 - created: "2023-06-01T12:16:19.198504533Z" + created: "2023-06-30T03:35:45.273722982Z" description: Azure Blob Storage CSI driver digest: 95d14c9b70b319760d388ea47727c8c97e9287867a8852aeb67b7175b52fe8f5 name: blob-csi-driver @@ -183,7 +192,7 @@ entries: version: v1.5.0 - apiVersion: v1 appVersion: v1.4.1 - created: "2023-06-01T12:16:19.19714746Z" + created: "2023-06-30T03:35:45.272945238Z" description: Azure Blob Storage CSI driver digest: 5fcf69c449f065fa1d5722e5a7fed8a28000efa790907e9ff4b552c5fbd16d22 name: blob-csi-driver @@ -192,7 +201,7 @@ entries: version: v1.4.1 - apiVersion: v1 appVersion: v1.4.0 - created: "2023-06-01T12:16:19.196631326Z" + created: "2023-06-30T03:35:45.272210966Z" description: Azure Blob Storage CSI driver digest: b466543344a6411f6130ba87b093955d39ab8614c6b4ed8505a0a0c96073cb33 name: blob-csi-driver @@ -201,7 +210,7 @@ entries: version: v1.4.0 - apiVersion: v1 appVersion: v1.3.0 - created: "2023-06-01T12:16:19.196114401Z" + created: "2023-06-30T03:35:45.271394331Z" description: Azure Blob Storage CSI driver digest: 58d02cb70a3a966b349d62e880b7149fb06ac009474e35e580784fd3c98a5b07 name: blob-csi-driver @@ -210,7 +219,7 @@ entries: version: v1.3.0 - apiVersion: v1 appVersion: v1.2.0 - created: "2023-06-01T12:16:19.193247281Z" + created: "2023-06-30T03:35:45.26574621Z" description: Azure Blob Storage CSI driver digest: 27fb89f20b5fddc7329e6d7c2374857b22c1d61592e397a53f47121eea68c344 name: blob-csi-driver @@ -219,7 +228,7 @@ entries: version: v1.2.0 - apiVersion: v1 appVersion: v1.1.0 - created: "2023-06-01T12:16:19.185734903Z" + created: "2023-06-30T03:35:45.256069856Z" description: Azure Blob Storage CSI driver digest: a251a55243de207c69ef53f72abee45e93b72fa4fc43dc204b7f1cdfd459acdb name: blob-csi-driver @@ -228,7 +237,7 @@ entries: version: v1.1.0 - apiVersion: v1 appVersion: v1.0.0 - created: "2023-06-01T12:16:19.185153461Z" + created: "2023-06-30T03:35:45.255379374Z" description: Azure Blob Storage CSI driver digest: e83f037a165eafc83a978bd7e6bf6221b052ac34363aecb12e6a73607dc58b89 name: blob-csi-driver @@ -237,11 +246,11 @@ entries: version: v1.0.0 - apiVersion: v1 appVersion: latest - created: "2023-06-01T12:16:19.18265471Z" + created: "2023-06-30T03:35:45.254219975Z" description: Azure Blob Storage CSI driver digest: cff06b3e6b450e7ff97c1948e4f2029de2466b23cfe9686c7ed849cd1e618396 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-06-01T12:16:19.181840135Z" +generated: "2023-06-30T03:35:45.253167618Z" diff --git a/charts/latest/blob-csi-driver-v1.22.0.tgz b/charts/latest/blob-csi-driver-v1.22.0.tgz deleted file mode 100644 index 895b6c3917a4afe9fd86d96fccb906b7a2286f50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5690 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 literal 0 HcmV?d00001 diff --git a/charts/latest/blob-csi-driver/Chart.yaml b/charts/latest/blob-csi-driver/Chart.yaml index 0f2ce14f8..0dcede6d1 100644 --- a/charts/latest/blob-csi-driver/Chart.yaml +++ b/charts/latest/blob-csi-driver/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: v1.22.0 +appVersion: v1.22.1 description: Azure Blob Storage CSI driver name: blob-csi-driver -version: v1.22.0 +version: v1.22.1 diff --git a/charts/latest/blob-csi-driver/values.yaml b/charts/latest/blob-csi-driver/values.yaml index 1247f915b..aa4ce22b0 100644 --- a/charts/latest/blob-csi-driver/values.yaml +++ b/charts/latest/blob-csi-driver/values.yaml @@ -2,7 +2,7 @@ image: baseRepo: mcr.microsoft.com blob: repository: /oss/kubernetes-csi/blob-csi - tag: v1.22.0 + tag: v1.22.1 pullPolicy: IfNotPresent csiProvisioner: repository: /oss/kubernetes-csi/csi-provisioner diff --git a/charts/v1.22.1/blob-csi-driver-v1.22.1.tgz b/charts/v1.22.1/blob-csi-driver-v1.22.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ac29c7e246e744a9cb2868cde88c82887ff08652 GIT binary patch literal 5693 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 literal 0 HcmV?d00001 diff --git a/charts/v1.22.1/blob-csi-driver/Chart.yaml b/charts/v1.22.1/blob-csi-driver/Chart.yaml new file mode 100644 index 000000000..0dcede6d1 --- /dev/null +++ b/charts/v1.22.1/blob-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.22.1 +description: Azure Blob Storage CSI driver +name: blob-csi-driver +version: v1.22.1 diff --git a/charts/v1.22.1/blob-csi-driver/templates/NOTES.txt b/charts/v1.22.1/blob-csi-driver/templates/NOTES.txt new file mode 100644 index 000000000..9ad135dd4 --- /dev/null +++ b/charts/v1.22.1/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.22.1/blob-csi-driver/templates/_helpers.tpl b/charts/v1.22.1/blob-csi-driver/templates/_helpers.tpl new file mode 100644 index 000000000..d99392f32 --- /dev/null +++ b/charts/v1.22.1/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.22.1/blob-csi-driver/templates/csi-blob-controller.yaml b/charts/v1.22.1/blob-csi-driver/templates/csi-blob-controller.yaml new file mode 100644 index 000000000..6f1c552ae --- /dev/null +++ b/charts/v1.22.1/blob-csi-driver/templates/csi-blob-controller.yaml @@ -0,0 +1,215 @@ +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.workloadIdentity.clientID }} + azure.workload.identity/use: "true" + {{- end }} + {{- 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 }} + securityContext: + seccompProfile: + type: RuntimeDefault +{{- 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.22.1/blob-csi-driver/templates/csi-blob-driver.yaml b/charts/v1.22.1/blob-csi-driver/templates/csi-blob-driver.yaml new file mode 100644 index 000000000..9a6aea64a --- /dev/null +++ b/charts/v1.22.1/blob-csi-driver/templates/csi-blob-driver.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: {{ .Values.driver.name }} + labels: + {{- include "blob.labels" . | nindent 4 }} +spec: + attachRequired: false + podInfoOnMount: true + fsGroupPolicy: {{ .Values.feature.fsGroupPolicy }} + volumeLifecycleModes: + - Persistent + - Ephemeral diff --git a/charts/v1.22.1/blob-csi-driver/templates/csi-blob-node.yaml b/charts/v1.22.1/blob-csi-driver/templates/csi-blob-node.yaml new file mode 100644 index 000000000..523f1e7b4 --- /dev/null +++ b/charts/v1.22.1/blob-csi-driver/templates/csi-blob-node.yaml @@ -0,0 +1,285 @@ +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.workloadIdentity.clientID }} + azure.workload.identity/use: "true" + {{- end }} + {{- 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 }} + securityContext: + seccompProfile: + type: RuntimeDefault +{{- 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: INSTALL_BLOBFUSE2 + value: "{{ .Values.node.blobfuseProxy.installBlobfuse2 }}" + - name: BLOBFUSE2_VERSION + value: "{{ .Values.node.blobfuseProxy.blobfuse2Version }}" + - 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.22.1/blob-csi-driver/templates/rbac-csi-blob-controller.yaml b/charts/v1.22.1/blob-csi-driver/templates/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..833dcc640 --- /dev/null +++ b/charts/v1.22.1/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.22.1/blob-csi-driver/templates/rbac-csi-blob-node.yaml b/charts/v1.22.1/blob-csi-driver/templates/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..c041cf8db --- /dev/null +++ b/charts/v1.22.1/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.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml b/charts/v1.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml new file mode 100644 index 000000000..7433bccf1 --- /dev/null +++ b/charts/v1.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml @@ -0,0 +1,17 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +{{- if .Values.workloadIdentity.clientID }} + azure.workload.identity/use: "true" + annotations: + azure.workload.identity/client-id: {{ .Values.workloadIdentity.clientID }} +{{- if .Values.workloadIdentity.tenantID }} + azure.workload.identity/tenant-id: {{ .Values.workloadIdentity.tenantID }} +{{- end }} +{{- end }} +{{- end -}} diff --git a/charts/v1.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml b/charts/v1.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml new file mode 100644 index 000000000..a25090e30 --- /dev/null +++ b/charts/v1.22.1/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml @@ -0,0 +1,17 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.node }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +{{- if .Values.workloadIdentity.clientID }} + azure.workload.identity/use: "true" + annotations: + azure.workload.identity/client-id: {{ .Values.workloadIdentity.clientID }} +{{- if .Values.workloadIdentity.tenantID }} + azure.workload.identity/tenant-id: {{ .Values.workloadIdentity.tenantID }} +{{- end }} +{{- end }} +{{- end -}} diff --git a/charts/v1.22.1/blob-csi-driver/values.yaml b/charts/v1.22.1/blob-csi-driver/values.yaml new file mode 100644 index 000000000..aa4ce22b0 --- /dev/null +++ b/charts/v1.22.1/blob-csi-driver/values.yaml @@ -0,0 +1,173 @@ +image: + baseRepo: mcr.microsoft.com + blob: + repository: /oss/kubernetes-csi/blob-csi + tag: v1.22.1 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v3.5.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.10.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.8.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.8.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" + installBlobfuse2: true + blobfuse2Version: "2.0.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" + +feature: + fsGroupPolicy: ReadWriteOnceWithFSType + 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 + +workloadIdentity: + clientID: "" + # [optional] If the AAD application or user-assigned managed identity is not in the same tenant as the cluster + # then set tenantID with the application or user-assigned managed identity tenant ID + tenantID: "" diff --git a/deploy/blobfuse-proxy/README.md b/deploy/blobfuse-proxy/README.md index 988b78975..96a29fb1e 100644 --- a/deploy/blobfuse-proxy/README.md +++ b/deploy/blobfuse-proxy/README.md @@ -9,19 +9,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.22.0 --set node.enableBlobfuseProxy=true +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --namespace kube-system --version v1.22.1 --set node.enableBlobfuseProxy=true ``` - kubectl install ```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.22.0/deploy/install-driver.sh | bash -s v1.22.0 blobfuse-proxy -- +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.22.1/deploy/install-driver.sh | bash -s v1.22.1 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.22.0/blobfuse-proxy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/v1.22.1/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 82e456b29..8125edb78 100644 --- a/deploy/csi-blob-controller.yaml +++ b/deploy/csi-blob-controller.yaml @@ -72,7 +72,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.0 + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.1 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/csi-blob-node.yaml b/deploy/csi-blob-node.yaml index 2fdf7611e..11703c05a 100644 --- a/deploy/csi-blob-node.yaml +++ b/deploy/csi-blob-node.yaml @@ -40,7 +40,7 @@ spec: - operator: "Exists" initContainers: - name: install-blobfuse-proxy - image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.0 + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.1 imagePullPolicy: IfNotPresent command: - "/blobfuse-proxy/init.sh" @@ -118,7 +118,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.0 + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.1 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/v1.22.1/csi-blob-controller.yaml b/deploy/v1.22.1/csi-blob-controller.yaml new file mode 100644 index 000000000..8125edb78 --- /dev/null +++ b/deploy/v1.22.1/csi-blob-controller.yaml @@ -0,0 +1,143 @@ +--- +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 + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Exists" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v3.5.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.10.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.22.1 + 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.8.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.22.1/csi-blob-driver.yaml b/deploy/v1.22.1/csi-blob-driver.yaml new file mode 100644 index 000000000..d2de725d8 --- /dev/null +++ b/deploy/v1.22.1/csi-blob-driver.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: blob.csi.azure.com +spec: + attachRequired: false + podInfoOnMount: true + fsGroupPolicy: ReadWriteOnceWithFSType + volumeLifecycleModes: + - Persistent + - Ephemeral diff --git a/deploy/v1.22.1/csi-blob-node.yaml b/deploy/v1.22.1/csi-blob-node.yaml new file mode 100644 index 000000000..11703c05a --- /dev/null +++ b/deploy/v1.22.1/csi-blob-node.yaml @@ -0,0 +1,203 @@ +--- +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 + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - operator: "Exists" + initContainers: + - name: install-blobfuse-proxy + image: mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.22.1 + imagePullPolicy: IfNotPresent + command: + - "/blobfuse-proxy/init.sh" + securityContext: + privileged: true + env: + - name: DEBIAN_FRONTEND + value: "noninteractive" + - name: INSTALL_BLOBFUSE_PROXY + value: "true" + - name: INSTALL_BLOBFUSE + value: "true" + - name: BLOBFUSE_VERSION + value: "1.4.5" + - name: INSTALL_BLOBFUSE2 + value: "true" + - name: BLOBFUSE2_VERSION + value: "2.0.3" + - 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.10.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.8.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/oss/kubernetes-csi/blob-csi:v1.22.1 + 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.22.1/kustomization.yaml b/deploy/v1.22.1/kustomization.yaml new file mode 100644 index 000000000..8b7f5fcac --- /dev/null +++ b/deploy/v1.22.1/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.22.1/rbac-csi-blob-controller.yaml b/deploy/v1.22.1/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..89c2f1f38 --- /dev/null +++ b/deploy/v1.22.1/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.22.1/rbac-csi-blob-node.yaml b/deploy/v1.22.1/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..ce06d862c --- /dev/null +++ b/deploy/v1.22.1/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 e054874f4..1c796c419 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.22.0 CSI driver](./install-csi-driver-v1.22.0.md) + - [install v1.22.1 CSI driver](./install-csi-driver-v1.22.1.md) - [install v1.21.2 CSI driver](./install-csi-driver-v1.21.2.md) - [install v1.20.2 CSI driver](./install-csi-driver-v1.20.2.md) diff --git a/docs/install-csi-driver-v1.22.1.md b/docs/install-csi-driver-v1.22.1.md new file mode 100644 index 000000000..0f2fbd3d9 --- /dev/null +++ b/docs/install-csi-driver-v1.22.1.md @@ -0,0 +1,47 @@ +# Install Azure Blob Storage CSI driver v1.22.1 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.22.1/deploy/install-driver.sh | bash -s v1.22.1 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.22.1 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.22.1/deploy/uninstall-driver.sh | bash -s v1.22.1 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/blob-csi-driver.git +cd blob-csi-driver +git checkout v1.22.1 +./deploy/uninstall-driver.sh v1.22.1 local +```