From 9ea2a7e7441bcf8b1bc12d0ec06b716300c199fa Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Tue, 31 May 2022 11:12:43 +0000 Subject: [PATCH] doc: cut v1.13.0 release --- README.md | 2 +- charts/README.md | 2 +- charts/index.yaml | 61 +++-- charts/latest/blob-csi-driver-v1.13.0.tgz | Bin 5973 -> 5970 bytes charts/latest/blob-csi-driver/Chart.yaml | 2 +- charts/latest/blob-csi-driver/values.yaml | 2 +- charts/v1.13.0/blob-csi-driver-v1.13.0.tgz | Bin 0 -> 5969 bytes charts/v1.13.0/blob-csi-driver/Chart.yaml | 5 + .../blob-csi-driver/templates/NOTES.txt | 5 + .../blob-csi-driver/templates/_helpers.tpl | 49 ++++ .../templates/blobfuse-proxy.yaml | 126 ++++++++++ .../templates/csi-blob-controller.yaml | 196 +++++++++++++++ .../templates/csi-blob-driver.yaml | 16 ++ .../templates/csi-blob-node.yaml | 225 ++++++++++++++++++ .../templates/rbac-csi-blob-controller.yaml | 115 +++++++++ .../templates/rbac-csi-blob-node.yaml | 29 +++ .../serviceaccount-csi-blob-controller.yaml | 9 + .../serviceaccount-csi-blob-node.yaml | 9 + charts/v1.13.0/blob-csi-driver/values.yaml | 165 +++++++++++++ deploy/blobfuse-proxy.yaml | 4 +- deploy/blobfuse-proxy/README.md | 6 +- deploy/csi-blob-controller.yaml | 2 +- deploy/csi-blob-node.yaml | 2 +- deploy/v1.13.0/blobfuse-proxy.yaml | 115 +++++++++ deploy/v1.13.0/csi-blob-controller.yaml | 138 +++++++++++ deploy/v1.13.0/csi-blob-driver.yaml | 11 + deploy/v1.13.0/csi-blob-node.yaml | 162 +++++++++++++ deploy/v1.13.0/kustomization.yaml | 10 + deploy/v1.13.0/rbac-csi-blob-controller.yaml | 108 +++++++++ deploy/v1.13.0/rbac-csi-blob-node.yaml | 30 +++ docs/install-blob-csi-driver.md | 2 +- docs/install-csi-driver-v1.13.0.md | 47 ++++ 32 files changed, 1617 insertions(+), 38 deletions(-) create mode 100644 charts/v1.13.0/blob-csi-driver-v1.13.0.tgz create mode 100644 charts/v1.13.0/blob-csi-driver/Chart.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.13.0/blob-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.13.0/blob-csi-driver/templates/blobfuse-proxy.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/csi-blob-controller.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/csi-blob-driver.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/csi-blob-node.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml create mode 100644 charts/v1.13.0/blob-csi-driver/values.yaml create mode 100644 deploy/v1.13.0/blobfuse-proxy.yaml create mode 100644 deploy/v1.13.0/csi-blob-controller.yaml create mode 100644 deploy/v1.13.0/csi-blob-driver.yaml create mode 100644 deploy/v1.13.0/csi-blob-node.yaml create mode 100644 deploy/v1.13.0/kustomization.yaml create mode 100644 deploy/v1.13.0/rbac-csi-blob-controller.yaml create mode 100644 deploy/v1.13.0/rbac-csi-blob-node.yaml create mode 100644 docs/install-csi-driver-v1.13.0.md diff --git a/README.md b/README.md index 9067aaf8e..5ecc45740 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ This driver allows Kubernetes to access Azure Storage through one of following m |driver version |Image | supported k8s version | built-in blobfuse version | |----------------|-------------------------------------------|-----------------------|---------------------------| |master branch |mcr.microsoft.com/k8s/csi/blob-csi:latest | 1.20+ | 1.4.3 | +|v1.13.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 | 1.20+ | 1.4.3 | |v1.12.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.12.0 | 1.20+ | 1.4.3 | |v1.11.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.11.0 | 1.20+ | 1.4.3 | -|v1.10.0 |mcr.microsoft.com/k8s/csi/blob-csi:v1.10.0 | 1.20+ | 1.4.3 | ### Driver parameters Please refer to `blob.csi.azure.com` [driver parameters](./docs/driver-parameters.md) diff --git a/charts/README.md b/charts/README.md index a9b4bf835..fdf81bba8 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.12.0 +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --set node.enableBlobfuseProxy=true --namespace kube-system --version v1.13.0 ``` ## install on Azure Stack diff --git a/charts/index.yaml b/charts/index.yaml index 7bc85038c..d65e893ae 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -2,17 +2,26 @@ apiVersion: v1 entries: blob-csi-driver: - apiVersion: v1 - appVersion: latest - created: "2022-05-21T07:08:05.960313666Z" + appVersion: v1.13.0 + created: "2022-05-31T11:12:07.661276442Z" description: Azure Blob Storage CSI driver - digest: d3a4f359ac902c62765d63cfbced325e075736e9ffce307b71e2f953c5edaf78 + digest: a5f0f05b76e9c64177ad6f7f2da6f3bd3bd64a8a370bafaa65d25500ebe55da8 name: blob-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/latest/blob-csi-driver-v1.13.0.tgz version: v1.13.0 + - apiVersion: v1 + appVersion: v1.13.0 + created: "2022-05-31T11:12:07.678733094Z" + description: Azure Blob Storage CSI driver + digest: 14f60c39a98fb7e3feeb19a84955f25a8ae2aa7540e090e3aca28499e9f508cb + name: blob-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v1.13.0/blob-csi-driver-v1.13.0.tgz + version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2022-05-21T07:08:05.975984032Z" + created: "2022-05-31T11:12:07.677696691Z" description: Azure Blob Storage CSI driver digest: 396b7dffbb28c21a0e34f62aa3f447aef68c57c3a0fbfd0098a8f6caffc932f5 name: blob-csi-driver @@ -21,7 +30,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2022-05-21T07:08:05.975029528Z" + created: "2022-05-31T11:12:07.676149186Z" description: Azure Blob Storage CSI driver digest: 07c4d76017491b3d0bdd70de90e814096938bf7916da0c149c3805294bd57560 name: blob-csi-driver @@ -30,7 +39,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2022-05-21T07:08:05.972503318Z" + created: "2022-05-31T11:12:07.674243081Z" description: Azure Blob Storage CSI driver digest: 79716efa958385adf57eb3570843e1b4512d8c801e8e070625e94264f3e917a9 name: blob-csi-driver @@ -39,7 +48,7 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: v1.9.0 - created: "2022-05-21T07:08:05.98983259Z" + created: "2022-05-31T11:12:07.691515632Z" description: Azure Blob Storage CSI driver digest: fca0b9215d3277346f68c643fb3ead75158971f0d1945ab01ec559196f3cf842 name: blob-csi-driver @@ -48,7 +57,7 @@ entries: version: v1.9.0 - apiVersion: v1 appVersion: v1.8.0 - created: "2022-05-21T07:08:05.988620385Z" + created: "2022-05-31T11:12:07.689334626Z" description: Azure Blob Storage CSI driver digest: 3b78e2ab4f33577c54d4f57276c824717d2ad2aa3741210e938fcaf927bc751f name: blob-csi-driver @@ -57,7 +66,7 @@ entries: version: v1.8.0 - apiVersion: v1 appVersion: v1.7.0 - created: "2022-05-21T07:08:05.98501507Z" + created: "2022-05-31T11:12:07.688046222Z" description: Azure Blob Storage CSI driver digest: 28da5b55c3d2689d6da85eb7da344385e9cb99bdb2af18c24fea93670abfe7ea name: blob-csi-driver @@ -66,7 +75,7 @@ entries: version: v1.7.0 - apiVersion: v1 appVersion: v1.6.0 - created: "2022-05-21T07:08:05.983627564Z" + created: "2022-05-31T11:12:07.686922318Z" description: Azure Blob Storage CSI driver digest: 6f24f2e6623f6f8862e47d4fbdf13b5f351ceec6bb9a4591ef7fc2fca9fc1eef name: blob-csi-driver @@ -75,7 +84,7 @@ entries: version: v1.6.0 - apiVersion: v1 appVersion: v1.5.0 - created: "2022-05-21T07:08:05.98265116Z" + created: "2022-05-31T11:12:07.685977316Z" description: Azure Blob Storage CSI driver digest: 95d14c9b70b319760d388ea47727c8c97e9287867a8852aeb67b7175b52fe8f5 name: blob-csi-driver @@ -84,7 +93,7 @@ entries: version: v1.5.0 - apiVersion: v1 appVersion: v1.4.1 - created: "2022-05-21T07:08:05.981257254Z" + created: "2022-05-31T11:12:07.684351111Z" description: Azure Blob Storage CSI driver digest: 5fcf69c449f065fa1d5722e5a7fed8a28000efa790907e9ff4b552c5fbd16d22 name: blob-csi-driver @@ -93,7 +102,7 @@ entries: version: v1.4.1 - apiVersion: v1 appVersion: v1.4.0 - created: "2022-05-21T07:08:05.979893949Z" + created: "2022-05-31T11:12:07.682833406Z" description: Azure Blob Storage CSI driver digest: b466543344a6411f6130ba87b093955d39ab8614c6b4ed8505a0a0c96073cb33 name: blob-csi-driver @@ -102,7 +111,7 @@ entries: version: v1.4.0 - apiVersion: v1 appVersion: v1.3.0 - created: "2022-05-21T07:08:05.978534343Z" + created: "2022-05-31T11:12:07.681390902Z" description: Azure Blob Storage CSI driver digest: 58d02cb70a3a966b349d62e880b7149fb06ac009474e35e580784fd3c98a5b07 name: blob-csi-driver @@ -111,7 +120,7 @@ entries: version: v1.3.0 - apiVersion: v1 appVersion: v1.2.0 - created: "2022-05-21T07:08:05.977181837Z" + created: "2022-05-31T11:12:07.679764497Z" description: Azure Blob Storage CSI driver digest: 27fb89f20b5fddc7329e6d7c2374857b22c1d61592e397a53f47121eea68c344 name: blob-csi-driver @@ -120,7 +129,7 @@ entries: version: v1.2.0 - apiVersion: v1 appVersion: v1.1.0 - created: "2022-05-21T07:08:05.971186112Z" + created: "2022-05-31T11:12:07.672767276Z" description: Azure Blob Storage CSI driver digest: a251a55243de207c69ef53f72abee45e93b72fa4fc43dc204b7f1cdfd459acdb name: blob-csi-driver @@ -129,7 +138,7 @@ entries: version: v1.1.0 - apiVersion: v1 appVersion: v1.0.0 - created: "2022-05-21T07:08:05.969930607Z" + created: "2022-05-31T11:12:07.671334772Z" description: Azure Blob Storage CSI driver digest: e83f037a165eafc83a978bd7e6bf6221b052ac34363aecb12e6a73607dc58b89 name: blob-csi-driver @@ -138,7 +147,7 @@ entries: version: v1.0.0 - apiVersion: v1 appVersion: v0.11.0 - created: "2022-05-21T07:08:05.962189974Z" + created: "2022-05-31T11:12:07.663197248Z" description: Azure Blob Storage CSI driver digest: ded903d30eaef4f41e2cc7172292089fbaf122cc24cc32f5e62207cff445a9da name: blob-csi-driver @@ -147,7 +156,7 @@ entries: version: v0.11.0 - apiVersion: v1 appVersion: v0.10.0 - created: "2022-05-21T07:08:05.96119437Z" + created: "2022-05-31T11:12:07.662186645Z" description: Azure Blob Storage CSI driver digest: 24f3642ce8535544ad63334f9a71eb8c594cc2943becd21844b6b1132d261960 name: blob-csi-driver @@ -156,7 +165,7 @@ entries: version: v0.10.0 - apiVersion: v1 appVersion: v0.9.0 - created: "2022-05-21T07:08:05.968843302Z" + created: "2022-05-31T11:12:07.670106769Z" description: Azure Blob Storage CSI driver digest: d125014409cad519f12838390c176f81f34097a5ba759a177980255a9fe775e2 name: blob-csi-driver @@ -165,7 +174,7 @@ entries: version: v0.9.0 - apiVersion: v1 appVersion: v0.8.0 - created: "2022-05-21T07:08:05.967779098Z" + created: "2022-05-31T11:12:07.669073465Z" description: Azure Blob Storage CSI driver digest: 8ac9fc62030ff7c7dd6deaa51db410d9b782578149347688b8f66b37ec33960f name: blob-csi-driver @@ -174,7 +183,7 @@ entries: version: v0.8.0 - apiVersion: v1 appVersion: v0.7.0 - created: "2022-05-21T07:08:05.966842594Z" + created: "2022-05-31T11:12:07.667653861Z" description: Azure Blob Storage CSI driver digest: 6d758b8e4a480a8d006f7e73c51d32ea0b568b8ba1364d4ac33549e3bedfc9a7 name: blob-csi-driver @@ -184,7 +193,7 @@ entries: blobfuse-csi-driver: - apiVersion: v1 appVersion: v0.6.0 - created: "2022-05-21T07:08:05.965194187Z" + created: "2022-05-31T11:12:07.666662858Z" description: BlobFuse Container Storage Interface (CSI) Storage Plugin digest: 2bea484bc1e87097b048ab2e1615683b8b7db614059fb624a0a2b18ad0920926 name: blobfuse-csi-driver @@ -193,7 +202,7 @@ entries: version: v0.6.0 - apiVersion: v1 appVersion: v0.5.0 - created: "2022-05-21T07:08:05.964210583Z" + created: "2022-05-31T11:12:07.665513655Z" description: BlobFuse Container Storage Interface (CSI) Storage Plugin digest: 11441a6025c319e97c0605f520c4be063eadc482670655bb6ecc4426bee2d49c name: blobfuse-csi-driver @@ -202,11 +211,11 @@ entries: version: v0.5.0 - apiVersion: v1 appVersion: v0.4.0 - created: "2022-05-21T07:08:05.963140278Z" + created: "2022-05-31T11:12:07.66400465Z" description: BlobFuse Container Storage Interface (CSI) Storage Plugin digest: 263e474a08598f1c7f518c1efed43eb23d9f12b146b3c47deda77aa99c0ca385 name: blobfuse-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v0.4.0/blobfuse-csi-driver-v0.4.0.tgz version: v0.4.0 -generated: "2022-05-21T07:08:05.958918561Z" +generated: "2022-05-31T11:12:07.658935635Z" diff --git a/charts/latest/blob-csi-driver-v1.13.0.tgz b/charts/latest/blob-csi-driver-v1.13.0.tgz index 8eafb6b61e9ce143a52675621c03e4fe1e51c9a2..968cd7113004d82680ef9dc1e466f701cb07b551 100644 GIT binary patch delta 5765 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 Zo3?42w&@wt{{;X5|NkSm9+v>5005POX+!`3 diff --git a/charts/latest/blob-csi-driver/Chart.yaml b/charts/latest/blob-csi-driver/Chart.yaml index 9e07c5033..a14a64b62 100644 --- a/charts/latest/blob-csi-driver/Chart.yaml +++ b/charts/latest/blob-csi-driver/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: latest +appVersion: v1.13.0 description: Azure Blob Storage CSI driver name: blob-csi-driver version: v1.13.0 diff --git a/charts/latest/blob-csi-driver/values.yaml b/charts/latest/blob-csi-driver/values.yaml index bc1505940..2f371bb2d 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: /k8s/csi/blob-csi - tag: latest + tag: v1.13.0 pullPolicy: IfNotPresent csiProvisioner: repository: /oss/kubernetes-csi/csi-provisioner diff --git a/charts/v1.13.0/blob-csi-driver-v1.13.0.tgz b/charts/v1.13.0/blob-csi-driver-v1.13.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..bc227df12dd6af0de68a1b6d532a5461e6e8e713 GIT binary patch literal 5969 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 literal 0 HcmV?d00001 diff --git a/charts/v1.13.0/blob-csi-driver/Chart.yaml b/charts/v1.13.0/blob-csi-driver/Chart.yaml new file mode 100644 index 000000000..a14a64b62 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.13.0 +description: Azure Blob Storage CSI driver +name: blob-csi-driver +version: v1.13.0 diff --git a/charts/v1.13.0/blob-csi-driver/templates/NOTES.txt b/charts/v1.13.0/blob-csi-driver/templates/NOTES.txt new file mode 100644 index 000000000..9ad135dd4 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/NOTES.txt @@ -0,0 +1,5 @@ +The Azure Blob Storage CSI driver is getting deployed to your cluster. + +To check Azure Blob Storage CSI driver pods status, please run: + + kubectl --namespace={{ .Release.Namespace }} get pods --selector="release={{ .Release.Name }}" --watch diff --git a/charts/v1.13.0/blob-csi-driver/templates/_helpers.tpl b/charts/v1.13.0/blob-csi-driver/templates/_helpers.tpl new file mode 100644 index 000000000..d99392f32 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/_helpers.tpl @@ -0,0 +1,49 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* Expand the name of the chart.*/}} +{{- define "blob.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "blob.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Common selectors. +*/}} +{{- define "blob.selectorLabels" -}} +app.kubernetes.io/name: {{ template "blob.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end -}} + +{{/* +Common labels. +*/}} +{{- define "blob.labels" -}} +{{- include "blob.selectorLabels" . }} +app.kubernetes.io/component: csi-driver +app.kubernetes.io/part-of: {{ template "blob.name" . }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +helm.sh/chart: {{ template "blob.chart" . }} +{{- if .Values.customLabels }} +{{ toYaml .Values.customLabels }} +{{- end }} +{{- end -}} + + +{{/* pull secrets for containers */}} +{{- define "blob.pullSecrets" -}} +{{- if .Values.imagePullSecrets }} +imagePullSecrets: +{{- range .Values.imagePullSecrets }} + - name: {{ . }} +{{- end }} +{{- end }} +{{- end -}} \ No newline at end of file diff --git a/charts/v1.13.0/blob-csi-driver/templates/blobfuse-proxy.yaml b/charts/v1.13.0/blob-csi-driver/templates/blobfuse-proxy.yaml new file mode 100644 index 000000000..c131d8316 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/blobfuse-proxy.yaml @@ -0,0 +1,126 @@ +{{- if .Values.node.enableBlobfuseProxy -}} +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: csi-blobfuse-proxy + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + app: csi-blobfuse-proxy + template: + metadata: + labels: + app: csi-blobfuse-proxy + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + initContainers: + - name: prepare-binaries +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + command: ['sh', '-c', "cp /blobfuse-proxy/*.deb /tmp/"] + volumeMounts: + - mountPath: /tmp + name: tmp-dir + containers: + - command: + - nsenter + - '--target' + - '1' + - '--mount' + - '--uts' + - '--ipc' + - '--net' + - '--pid' + - '--' + - sh + - '-c' + - | + set -xe + INSTALL_BLOBFUSE=${INSTALL_BLOBFUSE:-true} + if (( "${INSTALL_BLOBFUSE}" == "true" )) + then + dpkg -i /tmp/packages-microsoft-prod.deb && apt update && apt-get install -y blobfuse=${BLOBFUSE_VERSION} + fi + dpkg -i /tmp/blobfuse-proxy.deb + mkdir -p /var/lib/kubelet/plugins/blob.csi.azure.com + systemctl enable blobfuse-proxy + systemctl start blobfuse-proxy + + SET_MAX_FILE_NUM=${SET_MAX_OPEN_FILE_NUM:-true} + if (( "${SET_MAX_OPEN_FILE_NUM}" == "true" )) + then + sysctl -w fs.file-max=${MAX_FILE_NUM} + fi + + updateDBConfigPath="/etc/updatedb.conf" + DISABLE_UPDATEDB=${DISABLE_UPDATEDB:-true} + if (( "${DISABLE_UPDATEDB}" == "true" )) && (( test -f ${updateDBConfigPath} )) + then + echo "before changing ${updateDBConfigPath}:" + cat ${updateDBConfigPath} + sed -i 's/PRUNEPATHS="\/tmp/PRUNEPATHS="\/mnt \/var\/lib\/kubelet \/tmp/g' ${updateDBConfigPath} + sed -i 's/PRUNEFS="NFS/PRUNEFS="fuse blobfuse NFS/g' ${updateDBConfigPath} + echo "after change:" + cat ${updateDBConfigPath} + fi + + # "waiting for blobfuse-proxy service to start" + sleep 3s + # tail blobfuse proxy logs + journalctl -u blobfuse-proxy -f +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + imagePullPolicy: IfNotPresent + name: sysctl-install-blobfuse-proxy + env: + - name: DEBIAN_FRONTEND + value: "noninteractive" + - name: INSTALL_BLOBFUSE + value: "{{ .Values.node.blobfuseProxy.installBlobfuse }}" + - name: BLOBFUSE_VERSION + value: "{{ .Values.node.blobfuseProxy.blobfuseVersion }}" + - name: SET_MAX_OPEN_FILE_NUM + value: "{{ .Values.node.blobfuseProxy.setMaxOpenFileNum }}" + - name: MAX_FILE_NUM + value: "{{ .Values.node.blobfuseProxy.maxOpenFileNum }}" + - name: DISABLE_UPDATEDB + value: "{{ .Values.node.blobfuseProxy.disableUpdateDB }}" + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 1Mi + securityContext: + privileged: true + hostNetwork: true + hostPID: true + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-node-critical + restartPolicy: Always + tolerations: + - operator: Exists + volumes: + - hostPath: + path: /tmp + type: DirectoryOrCreate + name: tmp-dir +{{ end }} diff --git a/charts/v1.13.0/blob-csi-driver/templates/csi-blob-controller.yaml b/charts/v1.13.0/blob-csi-driver/templates/csi-blob-controller.yaml new file mode 100644 index 000000000..077181daa --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/csi-blob-controller.yaml @@ -0,0 +1,196 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: {{ .Values.controller.name }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ .Values.controller.name }} + {{- include "blob.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.controller.replicas }} + selector: + matchLabels: + app: {{ .Values.controller.name }} + {{- include "blob.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + app: {{ .Values.controller.name }} + {{- include "blob.labels" . | nindent 8 }} + {{- if .Values.podLabels }} +{{- toYaml .Values.podLabels | nindent 8 }} + {{- end }} +{{- if .Values.podAnnotations }} + annotations: +{{ toYaml .Values.podAnnotations | indent 8 }} +{{- end }} + spec: +{{- with .Values.controller.affinity }} + affinity: +{{ toYaml . | indent 8 }} +{{- end }} + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + hostNetwork: {{ .Values.controller.hostNetwork }} + serviceAccountName: {{ .Values.serviceAccount.controller }} + nodeSelector: + kubernetes.io/os: linux + {{- if .Values.controller.runOnMaster}} + node-role.kubernetes.io/master: "" + {{- end}} +{{- with .Values.controller.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + priorityClassName: {{ .Values.priorityClassName | quote }} +{{- with .Values.controller.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + containers: + - name: csi-provisioner +{{- if hasPrefix "/" .Values.image.csiProvisioner.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}" +{{- else }} + image: "{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}" +{{- end }} + args: + - "-v=2" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + - "--leader-election-namespace={{ .Release.Namespace }}" + - "--timeout=120s" + - "--extra-create-metadata=true" + env: + - name: ADDRESS + value: /csi/csi.sock + imagePullPolicy: {{ .Values.image.csiProvisioner.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: {{- toYaml .Values.controller.resources.csiProvisioner | nindent 12 }} + - name: liveness-probe +{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" +{{- else }} + image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" +{{- end }} + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port={{ .Values.controller.livenessProbe.healthPort }} + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} + - name: blob +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + args: + - "--v={{ .Values.controller.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}" + - "--drivername={{ .Values.driver.name }}" + - "--custom-user-agent={{ .Values.driver.customUserAgent }}" + - "--user-agent-suffix={{ .Values.driver.userAgentSuffix }}" + - "--cloud-config-secret-name={{ .Values.controller.cloudConfigSecretName }}" + - "--cloud-config-secret-namespace={{ .Values.controller.cloudConfigSecretNamespace }}" + - "--allow-empty-cloud-config={{ .Values.controller.allowEmptyCloudConfig }}" + ports: + - containerPort: {{ .Values.controller.livenessProbe.healthPort }} + name: healthz + protocol: TCP + - containerPort: {{ .Values.controller.metricsPort }} + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: AZURE_GO_SDK_LOG_LEVEL + value: {{ .Values.driver.azureGoSDKLogLevel }} + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: AZURE_ENVIRONMENT_FILEPATH + value: /etc/kubernetes/azurestackcloud.json + {{- end }} + imagePullPolicy: {{ .Values.image.blob.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.controller.resources.blob | nindent 12 }} + - name: csi-resizer +{{- if hasPrefix "/" .Values.image.csiResizer.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" +{{- else }} + image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" +{{- end }} + args: + - "-csi-address=$(ADDRESS)" + - "-v=2" + - "-leader-election" + - "--leader-election-namespace={{ .Release.Namespace }}" + - '-handle-volume-inuse-error=false' + env: + - name: ADDRESS + value: /csi/csi.sock + imagePullPolicy: {{ .Values.image.csiResizer.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.csiResizer | nindent 12 }} + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} + {{- if .Values.securityContext }} + securityContext: {{- toYaml .Values.securityContext | nindent 8 }} + {{- end }} diff --git a/charts/v1.13.0/blob-csi-driver/templates/csi-blob-driver.yaml b/charts/v1.13.0/blob-csi-driver/templates/csi-blob-driver.yaml new file mode 100644 index 000000000..891826a62 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/csi-blob-driver.yaml @@ -0,0 +1,16 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: {{ .Values.driver.name }} + labels: + {{- include "blob.labels" . | nindent 4 }} +spec: + attachRequired: false + podInfoOnMount: true + {{- if .Values.feature.enableFSGroupPolicy}} + fsGroupPolicy: File + {{- end}} + volumeLifecycleModes: + - Persistent + - Ephemeral diff --git a/charts/v1.13.0/blob-csi-driver/templates/csi-blob-node.yaml b/charts/v1.13.0/blob-csi-driver/templates/csi-blob-node.yaml new file mode 100644 index 000000000..3ceea89a2 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/csi-blob-node.yaml @@ -0,0 +1,225 @@ +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: {{ .Values.node.name }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ .Values.node.name }} + {{- include "blob.labels" . | nindent 4 }} +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: {{ .Values.node.maxUnavailable }} + type: RollingUpdate + selector: + matchLabels: + app: {{ .Values.node.name }} + {{- include "blob.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + app: {{ .Values.node.name }} + {{- include "blob.labels" . | nindent 8 }} + {{- if .Values.podLabels }} +{{- toYaml .Values.podLabels | nindent 8 }} + {{- end }} +{{- if .Values.podAnnotations }} + annotations: +{{ toYaml .Values.podAnnotations | indent 8 }} +{{- end }} + spec: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + hostNetwork: true + dnsPolicy: Default + serviceAccountName: {{ .Values.serviceAccount.node }} + nodeSelector: + kubernetes.io/os: linux +{{- with .Values.node.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + {{- if .Values.node.affinity }} +{{- toYaml .Values.node.affinity | nindent 8 }} + {{- end }} + priorityClassName: {{ .Values.priorityClassName | quote }} +{{- with .Values.node.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + containers: + - name: liveness-probe + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir +{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" +{{- else }} + image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" +{{- end }} + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port={{ .Values.node.livenessProbe.healthPort }} + - --v=2 + resources: {{- toYaml .Values.node.resources.livenessProbe | nindent 12 }} + - name: node-driver-registrar +{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- else }} + image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- end }} + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 + env: + - name: ADDRESS + value: /csi/csi.sock + - name: DRIVER_REG_SOCK_PATH + value: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: {{- toYaml .Values.node.resources.nodeDriverRegistrar | nindent 12 }} + - name: blob +{{- if hasPrefix "/" .Values.image.blob.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- else }} + image: "{{ .Values.image.blob.repository }}:{{ .Values.image.blob.tag }}" +{{- end }} + args: + - "--v={{ .Values.node.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--blobfuse-proxy-endpoint=$(BLOBFUSE_PROXY_ENDPOINT)" + - "--enable-blobfuse-proxy={{ .Values.node.enableBlobfuseProxy }}" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" + - "--drivername={{ .Values.driver.name }}" + - "--cloud-config-secret-name={{ .Values.node.cloudConfigSecretName }}" + - "--cloud-config-secret-namespace={{ .Values.node.cloudConfigSecretNamespace }}" + - "--custom-user-agent={{ .Values.driver.customUserAgent }}" + - "--user-agent-suffix={{ .Values.driver.userAgentSuffix }}" + - "--allow-empty-cloud-config={{ .Values.node.allowEmptyCloudConfig }}" + - "--enable-get-volume-stats={{ .Values.feature.enableGetVolumeStats }}" + - "--append-timestamp-cache-dir={{ .Values.node.appendTimeStampInCacheDir }}" + - "--mount-permissions={{ .Values.node.mountPermissions }}" + - "--allow-inline-volume-key-access-with-idenitity={{ .Values.node.allowInlineVolumeKeyAccessWithIdentity }}" + ports: + - containerPort: {{ .Values.node.livenessProbe.healthPort }} + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: BLOBFUSE_PROXY_ENDPOINT + value: unix:///csi/blobfuse-proxy.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + - name: AZURE_GO_SDK_LOG_LEVEL + value: {{ .Values.driver.azureGoSDKLogLevel }} + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: AZURE_ENVIRONMENT_FILEPATH + value: /etc/kubernetes/azurestackcloud.json + {{- end }} + imagePullPolicy: {{ .Values.image.blob.pullPolicy }} + securityContext: + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: {{ .Values.linux.kubelet }}/ + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /mnt + name: blob-cache + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.node.resources.blob | nindent 12 }} + volumes: + - hostPath: + path: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }} + type: DirectoryOrCreate + name: socket-dir + - hostPath: + path: {{ .Values.linux.kubelet }}/ + type: DirectoryOrCreate + name: mountpoint-dir + - hostPath: + path: {{ .Values.linux.kubelet }}/plugins_registry/ + type: DirectoryOrCreate + name: registration-dir + - hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + name: azure-cred + - hostPath: + path: {{ .Values.node.blobfuseCachePath }} + name: blob-cache + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} + {{- if .Values.securityContext }} + securityContext: {{- toYaml .Values.securityContext | nindent 8 }} + {{- end }} diff --git a/charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml b/charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..39619c932 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-controller.yaml @@ -0,0 +1,115 @@ +{{- if .Values.rbac.create -}} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-provisioner-role + labels: + {{- include "blob.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-provisioner-binding + labels: + {{- include "blob.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ .Values.rbac.name }}-external-provisioner-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-resizer-role + labels: + {{- include "blob.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-resizer-role + labels: + {{- include "blob.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ .Values.rbac.name }}-external-resizer-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-controller-secret-role + labels: + {{- include "blob.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "create"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-controller-secret-binding + labels: + {{- include "blob.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: csi-{{ .Values.rbac.name }}-controller-secret-role + apiGroup: rbac.authorization.k8s.io +{{ end }} diff --git a/charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml b/charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..d269aea3d --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/rbac-csi-blob-node.yaml @@ -0,0 +1,29 @@ +{{- if .Values.rbac.create -}} +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-node-secret-role + labels: + {{- include "blob.labels" . | nindent 4 }} +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-node-secret-binding + labels: + {{- include "blob.labels" . | nindent 4 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.node }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: csi-{{ .Values.rbac.name }}-node-secret-role + apiGroup: rbac.authorization.k8s.io +{{ end }} diff --git a/charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml b/charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml new file mode 100644 index 000000000..9c9fb477b --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml @@ -0,0 +1,9 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +{{- end -}} diff --git a/charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml b/charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml new file mode 100644 index 000000000..e1dc20bd2 --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml @@ -0,0 +1,9 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.node }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "blob.labels" . | nindent 4 }} +{{- end -}} diff --git a/charts/v1.13.0/blob-csi-driver/values.yaml b/charts/v1.13.0/blob-csi-driver/values.yaml new file mode 100644 index 000000000..2f371bb2d --- /dev/null +++ b/charts/v1.13.0/blob-csi-driver/values.yaml @@ -0,0 +1,165 @@ +image: + baseRepo: mcr.microsoft.com + blob: + repository: /k8s/csi/blob-csi + tag: v1.13.0 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v3.1.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.6.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.5.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.4.0 + pullPolicy: IfNotPresent + +cloud: AzurePublicCloud + +## Reference to one or more secrets to be used when pulling images +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ +imagePullSecrets: [] +# - name: myRegistryKeySecretName + +serviceAccount: + create: true # When true, service accounts will be created for you. Set to false if you want to use your own. + controller: csi-blob-controller-sa # Name of Service Account to be created or used + node: csi-blob-node-sa # Name of Service Account to be created or used + +rbac: + create: true + name: blob + +## Collection of annotations to add to all the pods +podAnnotations: {} +## Collection of labels to add to all the pods +podLabels: {} +# -- Custom labels to add into metadata +customLabels: {} + # k8s-app: blob-csi-driver + +## Leverage a PriorityClass to ensure your pods survive resource shortages +## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/ +priorityClassName: system-cluster-critical +## Security context give the opportunity to run container as nonroot by setting a securityContext +## by example : +## securityContext: { runAsUser: 1001 } +securityContext: {} + +controller: + name: csi-blob-controller + cloudConfigSecretName: azure-cloud-provider + cloudConfigSecretNamespace: kube-system + allowEmptyCloudConfig: true + hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting + metricsPort: 29634 + livenessProbe: + healthPort: 29632 + replicas: 2 + runOnMaster: false + logLevel: 5 + resources: + csiProvisioner: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + blob: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + csiResizer: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + affinity: {} + nodeSelector: {} + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Exists" + effect: "NoSchedule" + +node: + name: csi-blob-node + cloudConfigSecretName: azure-cloud-provider + cloudConfigSecretNamespace: kube-system + allowEmptyCloudConfig: true + allowInlineVolumeKeyAccessWithIdentity: false + maxUnavailable: 1 + metricsPort: 29635 + livenessProbe: + healthPort: 29633 + logLevel: 5 + enableBlobfuseProxy: false + blobfuseProxy: + installBlobfuse: true + blobfuseVersion: 1.4.3 + setMaxOpenFileNum: true + maxOpenFileNum: "9000000" + disableUpdateDB: true + blobfuseCachePath: /mnt + appendTimeStampInCacheDir: false + mountPermissions: 0777 + resources: + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + nodeDriverRegistrar: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + blob: + limits: + memory: 2100Mi + requests: + cpu: 10m + memory: 20Mi + affinity: {} + nodeSelector: {} + tolerations: + - operator: "Exists" + livenessProbe: + healthPort: 29633 + +feature: + enableFSGroupPolicy: false + enableGetVolumeStats: false + +driver: + name: blob.csi.azure.com + customUserAgent: "" + userAgentSuffix: "OSS-helm" + azureGoSDKLogLevel: "" # available values: ""(no logs), DEBUG, INFO, WARNING, ERROR + +linux: + kubelet: /var/lib/kubelet + distro: debian diff --git a/deploy/blobfuse-proxy.yaml b/deploy/blobfuse-proxy.yaml index 3bb533ac9..daa14af4a 100644 --- a/deploy/blobfuse-proxy.yaml +++ b/deploy/blobfuse-proxy.yaml @@ -24,7 +24,7 @@ spec: - virtual-kubelet initContainers: - name: prepare-binaries - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 command: ['sh', '-c', "cp /blobfuse-proxy/*.deb /tmp/"] volumeMounts: - mountPath: /tmp @@ -76,7 +76,7 @@ spec: sleep 3s # tail blobfuse proxy logs journalctl -u blobfuse-proxy -f - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 imagePullPolicy: IfNotPresent name: sysctl-install-blobfuse-proxy env: diff --git a/deploy/blobfuse-proxy/README.md b/deploy/blobfuse-proxy/README.md index 6ab5af1ef..9fcc9fa25 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.12.0 --set node.enableBlobfuseProxy=true +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --namespace kube-system --version v1.13.0 --set node.enableBlobfuseProxy=true ``` - kubectl install ```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.12.0/deploy/install-driver.sh | bash -s v1.12.0 blobfuse-proxy -- +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.13.0/deploy/install-driver.sh | bash -s v1.13.0 blobfuse-proxy -- ``` ### Enable blobfuse proxy on existing Blob CSI driver - install blobfuse proxy daemonset > following config only works on debian based agent node ```console -kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/v1.12.0/blobfuse-proxy.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/deploy/v1.13.0/blobfuse-proxy.yaml ``` - set `enable-blobfuse-proxy=true` in existing `csi-blob-node` daemonset manually (default is `false`) ```console diff --git a/deploy/csi-blob-controller.yaml b/deploy/csi-blob-controller.yaml index 03348ec53..bfaa5adef 100644 --- a/deploy/csi-blob-controller.yaml +++ b/deploy/csi-blob-controller.yaml @@ -67,7 +67,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/csi-blob-node.yaml b/deploy/csi-blob-node.yaml index cd6eb0cb1..244c71122 100644 --- a/deploy/csi-blob-node.yaml +++ b/deploy/csi-blob-node.yaml @@ -82,7 +82,7 @@ spec: cpu: 10m memory: 20Mi - name: blob - image: mcr.microsoft.com/k8s/csi/blob-csi:latest + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 imagePullPolicy: IfNotPresent args: - "--v=5" diff --git a/deploy/v1.13.0/blobfuse-proxy.yaml b/deploy/v1.13.0/blobfuse-proxy.yaml new file mode 100644 index 000000000..daa14af4a --- /dev/null +++ b/deploy/v1.13.0/blobfuse-proxy.yaml @@ -0,0 +1,115 @@ +--- +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: csi-blobfuse-proxy + namespace: kube-system +spec: + selector: + matchLabels: + app: csi-blobfuse-proxy + template: + metadata: + labels: + app: csi-blobfuse-proxy + spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + initContainers: + - name: prepare-binaries + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 + command: ['sh', '-c', "cp /blobfuse-proxy/*.deb /tmp/"] + volumeMounts: + - mountPath: /tmp + name: tmp-dir + containers: + - command: + - nsenter + - '--target' + - '1' + - '--mount' + - '--uts' + - '--ipc' + - '--net' + - '--pid' + - '--' + - sh + - '-c' + - | + set -xe + INSTALL_BLOBFUSE=${INSTALL_BLOBFUSE:-true} + if (( "${INSTALL_BLOBFUSE}" == "true" )) + then + dpkg -i /tmp/packages-microsoft-prod.deb && apt update && apt-get install -y blobfuse=${BLOBFUSE_VERSION} + fi + dpkg -i /tmp/blobfuse-proxy.deb + mkdir -p /var/lib/kubelet/plugins/blob.csi.azure.com + systemctl enable blobfuse-proxy + systemctl start blobfuse-proxy + + SET_MAX_FILE_NUM=${SET_MAX_OPEN_FILE_NUM:-true} + if (( "${SET_MAX_OPEN_FILE_NUM}" == "true" )) + then + sysctl -w fs.file-max=${MAX_FILE_NUM} + fi + + updateDBConfigPath="/etc/updatedb.conf" + DISABLE_UPDATEDB=${DISABLE_UPDATEDB:-true} + if (( "${DISABLE_UPDATEDB}" == "true" )) && (( test -f ${updateDBConfigPath} )) + then + echo "before changing ${updateDBConfigPath}:" + cat ${updateDBConfigPath} + sed -i 's/PRUNEPATHS="\/tmp/PRUNEPATHS="\/mnt \/var\/lib\/kubelet \/tmp/g' ${updateDBConfigPath} + sed -i 's/PRUNEFS="NFS/PRUNEFS="fuse blobfuse NFS/g' ${updateDBConfigPath} + echo "after change:" + cat ${updateDBConfigPath} + fi + + # "waiting for blobfuse-proxy service to start" + sleep 3s + # tail blobfuse proxy logs + journalctl -u blobfuse-proxy -f + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 + imagePullPolicy: IfNotPresent + name: sysctl-install-blobfuse-proxy + env: + - name: DEBIAN_FRONTEND + value: "noninteractive" + - name: INSTALL_BLOBFUSE + value: "true" + - name: BLOBFUSE_VERSION + value: 1.4.3 + - name: SET_MAX_OPEN_FILE_NUM + value: "true" + - name: MAX_FILE_NUM + value: "9000000" + - name: DISABLE_UPDATEDB + value: "true" + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 1Mi + securityContext: + privileged: true + hostNetwork: true + hostPID: true + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-node-critical + restartPolicy: Always + tolerations: + - operator: Exists + volumes: + - hostPath: + path: /tmp + type: DirectoryOrCreate + name: tmp-dir diff --git a/deploy/v1.13.0/csi-blob-controller.yaml b/deploy/v1.13.0/csi-blob-controller.yaml new file mode 100644 index 000000000..bfaa5adef --- /dev/null +++ b/deploy/v1.13.0/csi-blob-controller.yaml @@ -0,0 +1,138 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-blob-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-blob-controller + template: + metadata: + labels: + app: csi-blob-controller + spec: + hostNetwork: true + serviceAccountName: csi-blob-controller-sa + nodeSelector: + kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node + priorityClassName: system-cluster-critical + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Exists" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v3.1.0 + args: + - "-v=2" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + - "--leader-election-namespace=kube-system" + - "--timeout=120s" + - "--extra-create-metadata=true" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: liveness-probe + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.6.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port=29632 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: blob + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:29634" + - "--user-agent-suffix=OSS-kubectl" + ports: + - containerPort: 29632 + name: healthz + protocol: TCP + - containerPort: 29634 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-resizer + image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.4.0 + args: + - "-csi-address=$(ADDRESS)" + - "-v=2" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - '-handle-volume-inuse-error=false' + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate diff --git a/deploy/v1.13.0/csi-blob-driver.yaml b/deploy/v1.13.0/csi-blob-driver.yaml new file mode 100644 index 000000000..7b216feab --- /dev/null +++ b/deploy/v1.13.0/csi-blob-driver.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: blob.csi.azure.com +spec: + attachRequired: false + podInfoOnMount: true + volumeLifecycleModes: + - Persistent + - Ephemeral diff --git a/deploy/v1.13.0/csi-blob-node.yaml b/deploy/v1.13.0/csi-blob-node.yaml new file mode 100644 index 000000000..244c71122 --- /dev/null +++ b/deploy/v1.13.0/csi-blob-node.yaml @@ -0,0 +1,162 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-blob-node + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-blob-node + template: + metadata: + labels: + app: csi-blob-node + spec: + hostNetwork: true + dnsPolicy: Default + serviceAccountName: csi-blob-node-sa + nodeSelector: + kubernetes.io/os: linux + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + tolerations: + - operator: "Exists" + containers: + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.6.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --health-port=29633 + - --v=2 + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.5.0 + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 + env: + - name: ADDRESS + value: /csi/csi.sock + - name: DRIVER_REG_SOCK_PATH + value: /var/lib/kubelet/plugins/blob.csi.azure.com/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: blob + image: mcr.microsoft.com/k8s/csi/blob-csi:v1.13.0 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--enable-blobfuse-proxy=false" + - "--blobfuse-proxy-endpoint=$(BLOBFUSE_PROXY_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--metrics-address=0.0.0.0:29635" + - "--user-agent-suffix=OSS-kubectl" + ports: + - containerPort: 29633 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: BLOBFUSE_PROXY_ENDPOINT + value: unix:///csi/blobfuse-proxy.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + securityContext: + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /var/lib/kubelet/ + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /mnt + name: blob-cache + resources: + limits: + memory: 2100Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/blob.csi.azure.com + type: DirectoryOrCreate + name: socket-dir + - hostPath: + path: /var/lib/kubelet/ + type: DirectoryOrCreate + name: mountpoint-dir + - hostPath: + path: /var/lib/kubelet/plugins_registry/ + type: DirectoryOrCreate + name: registration-dir + - hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + name: azure-cred + - hostPath: + path: /mnt + type: DirectoryOrCreate + name: blob-cache +--- diff --git a/deploy/v1.13.0/kustomization.yaml b/deploy/v1.13.0/kustomization.yaml new file mode 100644 index 000000000..8b7f5fcac --- /dev/null +++ b/deploy/v1.13.0/kustomization.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - csi-blob-controller.yaml + - csi-blob-driver.yaml + - csi-blob-node.yaml + - rbac-csi-blob-controller.yaml + - rbac-csi-blob-node.yaml + - blobfuse-proxy.yaml diff --git a/deploy/v1.13.0/rbac-csi-blob-controller.yaml b/deploy/v1.13.0/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..0d6058f80 --- /dev/null +++ b/deploy/v1.13.0/rbac-csi-blob-controller.yaml @@ -0,0 +1,108 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-blob-controller-sa + namespace: kube-system +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-external-provisioner-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: csi-blob-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: blob-external-provisioner-role + apiGroup: rbac.authorization.k8s.io +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-external-resizer-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "list", "watch", "create", "update", "patch"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: blob-csi-resizer-role +subjects: + - kind: ServiceAccount + name: csi-blob-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: blob-external-resizer-role + apiGroup: rbac.authorization.k8s.io +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-controller-secret-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "create"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-controller-secret-binding +subjects: + - kind: ServiceAccount + name: csi-blob-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-blob-controller-secret-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.13.0/rbac-csi-blob-node.yaml b/deploy/v1.13.0/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..fe081dba8 --- /dev/null +++ b/deploy/v1.13.0/rbac-csi-blob-node.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-blob-node-sa + namespace: kube-system + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-node-secret-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-blob-node-secret-binding +subjects: + - kind: ServiceAccount + name: csi-blob-node-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-blob-node-secret-role + apiGroup: rbac.authorization.k8s.io diff --git a/docs/install-blob-csi-driver.md b/docs/install-blob-csi-driver.md index 631983bbb..b05321225 100644 --- a/docs/install-blob-csi-driver.md +++ b/docs/install-blob-csi-driver.md @@ -1,6 +1,6 @@ ## Install Azure Blob Storage CSI driver on a Kubernetes cluster - [install CSI driver master version](./install-csi-driver-master.md) + - [install v1.13.0 CSI driver](./install-csi-driver-v1.13.0.md) - [install v1.12.0 CSI driver](./install-csi-driver-v1.12.0.md) - [install v1.11.0 CSI driver](./install-csi-driver-v1.11.0.md) - - [install v1.10.0 CSI driver](./install-csi-driver-v1.10.0.md) diff --git a/docs/install-csi-driver-v1.13.0.md b/docs/install-csi-driver-v1.13.0.md new file mode 100644 index 000000000..603f6e1b2 --- /dev/null +++ b/docs/install-csi-driver-v1.13.0.md @@ -0,0 +1,47 @@ +# Install Azure Blob Storage CSI driver v1.13.0 version on a kubernetes cluster +> `blobfuse-proxy` is only available for debian based agent nodes, remove `blobfuse-proxy` parameter in installation steps if it's not applicable. +> +If you have already installed Helm, you can also use it to install this driver. Please check [Installation with Helm](../charts/README.md). + +## Install with kubectl + - Option#1. remote install +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.13.0/deploy/install-driver.sh | bash -s v1.13.0 blobfuse-proxy -- +``` + + - Option#2. local install +```console +git clone https://github.com/kubernetes-sigs/blob-csi-driver.git +cd blob-csi-driver +./deploy/install-driver.sh v1.13.0 local,blobfuse-proxy +``` + +- check pods status: +```console +kubectl -n kube-system get pod -o wide -l app=csi-blob-controller +kubectl -n kube-system get pod -o wide -l app=csi-blob-node +``` + +example output: + +```console +NAME READY STATUS RESTARTS AGE IP NODE +csi-blob-controller-56bfddd689-dh5tk 4/4 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 +csi-blob-controller-56bfddd689-8pgr4 4/4 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 +csi-blob-node-cvgbs 3/3 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 +csi-blob-node-dr4s4 3/3 Running 0 35s 10.240.0.4 k8s-agentpool-22533604-0 +``` + +### clean up Blob CSI driver +- Option#1. remote uninstall +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/v1.13.0/deploy/uninstall-driver.sh | bash -s v1.13.0 blobfuse-proxy -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/blob-csi-driver.git +cd blob-csi-driver +git checkout v1.13.0 +./deploy/install-driver.sh v1.13.0 local +```