From 3ed37e9527d2a0293404f899c2a7f86f3137e55f Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Thu, 11 Sep 2025 07:14:51 +0000 Subject: [PATCH] doc: update new chart versions --- README.md | 2 +- charts/README.md | 2 +- charts/index.yaml | 113 +++--- charts/v1.26.7/blob-csi-driver-1.26.7.tgz | Bin 0 -> 6383 bytes charts/v1.26.7/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 | 259 +++++++++++++ .../templates/csi-blob-driver.yaml | 16 + .../templates/csi-blob-node.yaml | 339 ++++++++++++++++++ .../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.26.7/blob-csi-driver/values.yaml | 187 ++++++++++ deploy/v1.26.7/csi-blob-controller.yaml | 172 +++++++++ deploy/v1.26.7/csi-blob-driver.yaml | 14 + deploy/v1.26.7/csi-blob-node.yaml | 254 +++++++++++++ deploy/v1.26.7/kustomization.yaml | 10 + deploy/v1.26.7/rbac-csi-blob-controller.yaml | 108 ++++++ deploy/v1.26.7/rbac-csi-blob-node.yaml | 30 ++ docs/install-blob-csi-driver.md | 2 +- docs/install-csi-driver-v1.26.7.md | 47 +++ 23 files changed, 1737 insertions(+), 55 deletions(-) create mode 100644 charts/v1.26.7/blob-csi-driver-1.26.7.tgz create mode 100644 charts/v1.26.7/blob-csi-driver/Chart.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.26.7/blob-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.26.7/blob-csi-driver/templates/csi-blob-controller.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/templates/csi-blob-driver.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/templates/csi-blob-node.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/templates/rbac-csi-blob-controller.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/templates/rbac-csi-blob-node.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml create mode 100644 charts/v1.26.7/blob-csi-driver/values.yaml create mode 100644 deploy/v1.26.7/csi-blob-controller.yaml create mode 100644 deploy/v1.26.7/csi-blob-driver.yaml create mode 100644 deploy/v1.26.7/csi-blob-node.yaml create mode 100644 deploy/v1.26.7/kustomization.yaml create mode 100644 deploy/v1.26.7/rbac-csi-blob-controller.yaml create mode 100644 deploy/v1.26.7/rbac-csi-blob-node.yaml create mode 100644 docs/install-csi-driver-v1.26.7.md diff --git a/README.md b/README.md index 21caab598..4390f374a 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Disclaimer: Deploying this driver manually is not an officially supported Micros |----------------|------------------------------------------------------|-----------------------| |master branch |mcr.microsoft.com/k8s/csi/blob-csi:latest | 1.21+ | |v1.27.0 |mcr.microsoft.com/oss/v2/kubernetes-csi/blob-csi:v1.27.0 | 1.21+ | -|v1.26.3 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.26.3 | 1.21+ | +|v1.26.7 |mcr.microsoft.com/oss/v2/kubernetes-csi/blob-csi:v1.26.7 | 1.21+ | |v1.25.6 |mcr.microsoft.com/oss/kubernetes-csi/blob-csi:v1.25.6 | 1.21+ | ### Driver parameters diff --git a/charts/README.md b/charts/README.md index 28f9d7ba0..b1f453edb 100644 --- a/charts/README.md +++ b/charts/README.md @@ -21,7 +21,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 1.26.3 +helm install blob-csi-driver blob-csi-driver/blob-csi-driver --set node.enableBlobfuseProxy=true --namespace kube-system --version 1.26.7 ``` ## install on Azure Stack diff --git a/charts/index.yaml b/charts/index.yaml index 6e568f481..ed8579942 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -3,16 +3,25 @@ entries: blob-csi-driver: - apiVersion: v1 appVersion: 1.27.0 - created: "2025-09-01T02:08:04.754375462Z" + created: "2025-09-11T07:14:31.490822468Z" description: Azure Blob Storage CSI driver digest: 44f731780f186f0c8e75e4673b26bd4336d25ceb6ce837964f0461716f3d5476 name: blob-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v1.27.0/blob-csi-driver-1.27.0.tgz version: 1.27.0 + - apiVersion: v1 + appVersion: 1.26.7 + created: "2025-09-11T07:14:31.489663631Z" + description: Azure Blob Storage CSI driver + digest: 2ed6405b6e8b18eb40e6fa8fbcc77c93c7ae358fe58f04931e84d6daac1c9a30 + name: blob-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/blob-csi-driver/master/charts/v1.26.7/blob-csi-driver-1.26.7.tgz + version: 1.26.7 - apiVersion: v1 appVersion: 1.26.3 - created: "2025-09-01T02:08:04.753698799Z" + created: "2025-09-11T07:14:31.489007164Z" description: Azure Blob Storage CSI driver digest: 630f8b4120d0accf97bdeadf3ee091fb4c3ba1928f5fe9c962083adc58bf362b name: blob-csi-driver @@ -21,7 +30,7 @@ entries: version: 1.26.3 - apiVersion: v1 appVersion: 1.26.1 - created: "2025-09-01T02:08:04.753032242Z" + created: "2025-09-11T07:14:31.488337463Z" description: Azure Blob Storage CSI driver digest: 9beab65ce119f3d41963f985ad8f3811c3e3042ecb783ace951172f93ea319d9 name: blob-csi-driver @@ -30,7 +39,7 @@ entries: version: 1.26.1 - apiVersion: v1 appVersion: 1.26.0 - created: "2025-09-01T02:08:04.752377381Z" + created: "2025-09-11T07:14:31.487658604Z" description: Azure Blob Storage CSI driver digest: fa8972b58e1b5b73c4751f5dbb5cca8d581d79ee60a06bbc869d82ec4923e600 name: blob-csi-driver @@ -39,7 +48,7 @@ entries: version: 1.26.0 - apiVersion: v1 appVersion: 1.25.6 - created: "2025-09-01T02:08:04.751662357Z" + created: "2025-09-11T07:14:31.487004942Z" description: Azure Blob Storage CSI driver digest: a72dce2f8950042da36039232efa8fe0fb87cdf7cc9c6523104fe25558f2135e name: blob-csi-driver @@ -48,7 +57,7 @@ entries: version: 1.25.6 - apiVersion: v1 appVersion: 1.25.4 - created: "2025-09-01T02:08:04.750272719Z" + created: "2025-09-11T07:14:31.486346391Z" description: Azure Blob Storage CSI driver digest: 391be65e1cf2c14a5c5fe32f5938e68d52fd15ce80f4d2365b7685593475c0cc name: blob-csi-driver @@ -57,7 +66,7 @@ entries: version: 1.25.4 - apiVersion: v1 appVersion: 1.25.3 - created: "2025-09-01T02:08:04.749344353Z" + created: "2025-09-11T07:14:31.485685747Z" description: Azure Blob Storage CSI driver digest: 68aa4fbb475a481ba4c68877a9d9caed9d75dc1b5d48db51a4787afd64fd9892 name: blob-csi-driver @@ -66,7 +75,7 @@ entries: version: 1.25.3 - apiVersion: v1 appVersion: 1.25.1 - created: "2025-09-01T02:08:04.74868739Z" + created: "2025-09-11T07:14:31.485012428Z" description: Azure Blob Storage CSI driver digest: 2d546ab7f2f365ddbc10667e2385773d5a3ac1465161fb7ca4fcc1c2baf1c0b8 name: blob-csi-driver @@ -75,7 +84,7 @@ entries: version: 1.25.1 - apiVersion: v1 appVersion: 1.25.0 - created: "2025-09-01T02:08:04.747974815Z" + created: "2025-09-11T07:14:31.476672819Z" description: Azure Blob Storage CSI driver digest: de80f1865c1d95134dfc35faaa2c143c09957e3de6e07196aac5a54529fde9a6 name: blob-csi-driver @@ -84,7 +93,7 @@ entries: version: 1.25.0 - apiVersion: v1 appVersion: v1.24.9 - created: "2025-09-01T02:08:04.747340811Z" + created: "2025-09-11T07:14:31.47597802Z" description: Azure Blob Storage CSI driver digest: 0851ae8238e8ecea9c567fff9210f68c4c17f49035ebbaafeab74039d4b1e346 name: blob-csi-driver @@ -93,7 +102,7 @@ entries: version: v1.24.9 - apiVersion: v1 appVersion: v1.24.8 - created: "2025-09-01T02:08:04.746694134Z" + created: "2025-09-11T07:14:31.475327595Z" description: Azure Blob Storage CSI driver digest: 59bbf267d6cce912683a3a80562ee54c852949dbfaa22d87c07a229555d0fb05 name: blob-csi-driver @@ -102,7 +111,7 @@ entries: version: v1.24.8 - apiVersion: v1 appVersion: v1.24.7 - created: "2025-09-01T02:08:04.746028116Z" + created: "2025-09-11T07:14:31.474660187Z" description: Azure Blob Storage CSI driver digest: 82afae20cec1614c109706926e45a683af2673c9dd5f70ac88e3b4146ae1cfb6 name: blob-csi-driver @@ -111,7 +120,7 @@ entries: version: v1.24.7 - apiVersion: v1 appVersion: v1.24.6 - created: "2025-09-01T02:08:04.745367581Z" + created: "2025-09-11T07:14:31.473985807Z" description: Azure Blob Storage CSI driver digest: 5325f237fabfc4a2bfaa8271fb6ffc638b4afc97ad12992c5cd7ccb055a9fa27 name: blob-csi-driver @@ -120,7 +129,7 @@ entries: version: v1.24.6 - apiVersion: v1 appVersion: v1.24.5 - created: "2025-09-01T02:08:04.744690996Z" + created: "2025-09-11T07:14:31.473328468Z" description: Azure Blob Storage CSI driver digest: d8271336dabc6957f287488f97bc7189f1134d94f8a720359762c1adb24bb8cf name: blob-csi-driver @@ -129,7 +138,7 @@ entries: version: v1.24.5 - apiVersion: v1 appVersion: v1.24.3 - created: "2025-09-01T02:08:04.744026139Z" + created: "2025-09-11T07:14:31.472654148Z" description: Azure Blob Storage CSI driver digest: d8fac26124eaa218c4e3aeb187b8204c5266b4e4a3fca0df39e76376e846c8d8 name: blob-csi-driver @@ -138,7 +147,7 @@ entries: version: v1.24.3 - apiVersion: v1 appVersion: v1.24.2 - created: "2025-09-01T02:08:04.743332224Z" + created: "2025-09-11T07:14:31.469088654Z" description: Azure Blob Storage CSI driver digest: 36567735f655d0c11a2b0247421a85577e5badd0a9413785075b29b58e2b049a name: blob-csi-driver @@ -147,7 +156,7 @@ entries: version: v1.24.2 - apiVersion: v1 appVersion: v1.24.1 - created: "2025-09-01T02:08:04.74206475Z" + created: "2025-09-11T07:14:31.456627995Z" description: Azure Blob Storage CSI driver digest: d4d98037428523005015a3f62441a7665b8a4126d39f7f0d563c474387edef0b name: blob-csi-driver @@ -156,7 +165,7 @@ entries: version: v1.24.1 - apiVersion: v1 appVersion: v1.24.0 - created: "2025-09-01T02:08:04.741156664Z" + created: "2025-09-11T07:14:31.453737032Z" description: Azure Blob Storage CSI driver digest: 183f724b7d67bf336de373b0e5ac22a50af63e42ff0e26ad73a7c11fd0ec6bfc name: blob-csi-driver @@ -165,7 +174,7 @@ entries: version: v1.24.0 - apiVersion: v1 appVersion: v1.23.10 - created: "2025-09-01T02:08:04.737230507Z" + created: "2025-09-11T07:14:31.431378312Z" description: Azure Blob Storage CSI driver digest: 945952507f26b8ea1e77ceb07fe1be8504a67a838708c282605491bdb7f8375d name: blob-csi-driver @@ -174,7 +183,7 @@ entries: version: v1.23.10 - apiVersion: v1 appVersion: v1.23.9 - created: "2025-09-01T02:08:04.740492937Z" + created: "2025-09-11T07:14:31.450805973Z" description: Azure Blob Storage CSI driver digest: cb3b402c2ea03f71a7d57ae8f2d92181664489d4dd8f6130314f6dbd791871ab name: blob-csi-driver @@ -183,7 +192,7 @@ entries: version: v1.23.9 - apiVersion: v1 appVersion: v1.23.7 - created: "2025-09-01T02:08:04.739820252Z" + created: "2025-09-11T07:14:31.450058977Z" description: Azure Blob Storage CSI driver digest: 95f9e01cec77cda71ba7f556cf00ba377270df264aa11caf3d99062d959c8e66 name: blob-csi-driver @@ -192,7 +201,7 @@ entries: version: v1.23.7 - apiVersion: v1 appVersion: v1.23.4 - created: "2025-09-01T02:08:04.739182667Z" + created: "2025-09-11T07:14:31.447269444Z" description: Azure Blob Storage CSI driver digest: 3ce2ee0c9255ebbd004fcdb9f3e5eb702b2203182eb7046754c9b2244c417b02 name: blob-csi-driver @@ -201,7 +210,7 @@ entries: version: v1.23.4 - apiVersion: v1 appVersion: v1.23.3 - created: "2025-09-01T02:08:04.738533544Z" + created: "2025-09-11T07:14:31.444429175Z" description: Azure Blob Storage CSI driver digest: 55b2f47774558d16dec5c93655e5625634e35424466c10244fabd471c9b2a5c6 name: blob-csi-driver @@ -210,7 +219,7 @@ entries: version: v1.23.3 - apiVersion: v1 appVersion: v1.23.2 - created: "2025-09-01T02:08:04.737880506Z" + created: "2025-09-11T07:14:31.434536395Z" description: Azure Blob Storage CSI driver digest: d85ba0c55d74c22b2b4cb964d70d8e38ede06f521cc5ca5502f57ed4b52d49f4 name: blob-csi-driver @@ -219,7 +228,7 @@ entries: version: v1.23.2 - apiVersion: v1 appVersion: v1.23.1 - created: "2025-09-01T02:08:04.736571847Z" + created: "2025-09-11T07:14:31.43070303Z" description: Azure Blob Storage CSI driver digest: 66215f12a4e3acdcf09416d817b737e14546058b081a2cfd8bf9ef507229ca07 name: blob-csi-driver @@ -228,7 +237,7 @@ entries: version: v1.23.1 - apiVersion: v1 appVersion: v1.23.0 - created: "2025-09-01T02:08:04.735892849Z" + created: "2025-09-11T07:14:31.423242526Z" description: Azure Blob Storage CSI driver digest: 57151e21e33660522f25694bd8ae985e5e17c7ffe09904ad2af4025e8bf1da72 name: blob-csi-driver @@ -237,7 +246,7 @@ entries: version: v1.23.0 - apiVersion: v1 appVersion: v1.22.9 - created: "2025-09-01T02:08:04.735196916Z" + created: "2025-09-11T07:14:31.420041613Z" description: Azure Blob Storage CSI driver digest: 2ba7025c4c9917e5550b702c205ffd329ccec0a85b6a4fb74a4dc7206fa9ca64 name: blob-csi-driver @@ -246,7 +255,7 @@ entries: version: v1.22.9 - apiVersion: v1 appVersion: v1.22.8 - created: "2025-09-01T02:08:04.734161672Z" + created: "2025-09-11T07:14:31.418818287Z" description: Azure Blob Storage CSI driver digest: a2ab602708e9c3b08d01baa66ffc7937b67119c060b4b90a41bedf15b709313c name: blob-csi-driver @@ -255,7 +264,7 @@ entries: version: v1.22.8 - apiVersion: v1 appVersion: v1.22.6 - created: "2025-09-01T02:08:04.732932068Z" + created: "2025-09-11T07:14:31.415778686Z" description: Azure Blob Storage CSI driver digest: ef7b5c287fca46351903cb819b3ccc8b8b2021addda87c59bea94d9ed61015a0 name: blob-csi-driver @@ -264,7 +273,7 @@ entries: version: v1.22.6 - apiVersion: v1 appVersion: v1.22.5 - created: "2025-09-01T02:08:04.732232581Z" + created: "2025-09-11T07:14:31.412304071Z" description: Azure Blob Storage CSI driver digest: ff3c2c2e05dd048dd0af3e5c7d002eae2928a5d17fb269a1e4d5cadd30e8ab51 name: blob-csi-driver @@ -273,7 +282,7 @@ entries: version: v1.22.5 - apiVersion: v1 appVersion: v1.22.4 - created: "2025-09-01T02:08:04.731585625Z" + created: "2025-09-11T07:14:31.406718892Z" description: Azure Blob Storage CSI driver digest: 6c38e79d2f50616daac0658cfa5b1a569e6ff8ce8f24ed40f563e87fb1d1340a name: blob-csi-driver @@ -282,7 +291,7 @@ entries: version: v1.22.4 - apiVersion: v1 appVersion: v1.22.3 - created: "2025-09-01T02:08:04.730966976Z" + created: "2025-09-11T07:14:31.397776598Z" description: Azure Blob Storage CSI driver digest: 6cdee296d22ecd330f477f2ca6da51b07320c546c04ae46c23eef48146b772c1 name: blob-csi-driver @@ -291,7 +300,7 @@ entries: version: v1.22.3 - apiVersion: v1 appVersion: v1.22.2 - created: "2025-09-01T02:08:04.730326666Z" + created: "2025-09-11T07:14:31.393258574Z" description: Azure Blob Storage CSI driver digest: 259e66dc12db7310fe1c51e49c964398e0a6b7d511133916dd7d25f748f0b791 name: blob-csi-driver @@ -300,7 +309,7 @@ entries: version: v1.22.2 - apiVersion: v1 appVersion: v1.22.1 - created: "2025-09-01T02:08:04.729681269Z" + created: "2025-09-11T07:14:31.388658718Z" description: Azure Blob Storage CSI driver digest: 8329d477d55c82f97bb09fb172c5f39a1677bedc13c7410bd93b306194516438 name: blob-csi-driver @@ -309,7 +318,7 @@ entries: version: v1.22.1 - apiVersion: v1 appVersion: v1.21.7 - created: "2025-09-01T02:08:04.729061773Z" + created: "2025-09-11T07:14:31.382516176Z" description: Azure Blob Storage CSI driver digest: 1095721182d611e2556c611dd330758d8130fe66493db4f9189586a9219896d3 name: blob-csi-driver @@ -318,7 +327,7 @@ entries: version: v1.21.7 - apiVersion: v1 appVersion: v1.21.6 - created: "2025-09-01T02:08:04.728449908Z" + created: "2025-09-11T07:14:31.378555686Z" description: Azure Blob Storage CSI driver digest: d5ba1f92795ec45970eb6e5fc54aa13a5684f9936216c064f8a3843bf722bf54 name: blob-csi-driver @@ -327,7 +336,7 @@ entries: version: v1.21.6 - apiVersion: v1 appVersion: v1.21.5 - created: "2025-09-01T02:08:04.727681641Z" + created: "2025-09-11T07:14:31.37408651Z" description: Azure Blob Storage CSI driver digest: b403e9d49abfe076ecd83d6dd50166347ee4305f33dc840019474b2876723b9b name: blob-csi-driver @@ -336,7 +345,7 @@ entries: version: v1.21.5 - apiVersion: v1 appVersion: v1.21.4 - created: "2025-09-01T02:08:04.726882598Z" + created: "2025-09-11T07:14:31.372595926Z" description: Azure Blob Storage CSI driver digest: e4fa13670caf6b0d3e9fefa55d100daa439cd7187dabd45318ab03c7d4b17710 name: blob-csi-driver @@ -345,7 +354,7 @@ entries: version: v1.21.4 - apiVersion: v1 appVersion: v1.20.3 - created: "2025-09-01T02:08:04.725484748Z" + created: "2025-09-11T07:14:31.361684412Z" description: Azure Blob Storage CSI driver digest: 8c2c20547b2e0e1b39d2f2efd04c1bd778f14af5feae2bda86d722dac3c02643 name: blob-csi-driver @@ -354,7 +363,7 @@ entries: version: v1.20.3 - apiVersion: v1 appVersion: v1.19.6 - created: "2025-09-01T02:08:04.724486003Z" + created: "2025-09-11T07:14:31.354644474Z" description: Azure Blob Storage CSI driver digest: 0007ef225b5658d3989aa6fdc3a91a4b33696a438eee46ad9a675af615cbdf21 name: blob-csi-driver @@ -363,7 +372,7 @@ entries: version: v1.19.6 - apiVersion: v1 appVersion: v1.19.5 - created: "2025-09-01T02:08:04.723741009Z" + created: "2025-09-11T07:14:31.348625754Z" description: Azure Blob Storage CSI driver digest: 183c3e5cd84b709f1455cc7c84ed5bd573e8a24149fd6442d38999835b0a1711 name: blob-csi-driver @@ -372,7 +381,7 @@ entries: version: v1.19.5 - apiVersion: v1 appVersion: v1.18.0 - created: "2025-09-01T02:08:04.723026461Z" + created: "2025-09-11T07:14:31.343839396Z" description: Azure Blob Storage CSI driver digest: 3eac15488da5be7d1e78431929f7cda35bceb1af3fe107ffbd84606e047c9204 name: blob-csi-driver @@ -381,7 +390,7 @@ entries: version: v1.18.0 - apiVersion: v1 appVersion: v1.17.0 - created: "2025-09-01T02:08:04.722320024Z" + created: "2025-09-11T07:14:31.338344626Z" description: Azure Blob Storage CSI driver digest: 22cfa17fc5e8d771ff8edd26729266a9a8ee55c0e150df85ef15698f7fe985e9 name: blob-csi-driver @@ -390,7 +399,7 @@ entries: version: v1.17.0 - apiVersion: v1 appVersion: v1.16.0 - created: "2025-09-01T02:08:04.721606668Z" + created: "2025-09-11T07:14:31.333289137Z" description: Azure Blob Storage CSI driver digest: bf6249c0e3e3d3d009d4c79ceb7fda9a56c0565b969de753628792ea3ea5ece8 name: blob-csi-driver @@ -399,7 +408,7 @@ entries: version: v1.16.0 - apiVersion: v1 appVersion: v1.15.0 - created: "2025-09-01T02:08:04.720897296Z" + created: "2025-09-11T07:14:31.328022053Z" description: Azure Blob Storage CSI driver digest: 8daa35cd4957695cb64b45da05a15b4020df5545a8ac44c4668dad4bba82c8a9 name: blob-csi-driver @@ -408,7 +417,7 @@ entries: version: v1.15.0 - apiVersion: v1 appVersion: v1.14.0 - created: "2025-09-01T02:08:04.720187442Z" + created: "2025-09-11T07:14:31.322790494Z" description: Azure Blob Storage CSI driver digest: 442bc579b231aab626b9e474e2c0ed3f101d47d61c99aa9a7f863af7ce268d9d name: blob-csi-driver @@ -417,7 +426,7 @@ entries: version: v1.14.0 - apiVersion: v1 appVersion: v1.13.0 - created: "2025-09-01T02:08:04.719550891Z" + created: "2025-09-11T07:14:31.31829949Z" description: Azure Blob Storage CSI driver digest: b577b0b771138109aa90eb09d56fc07273ca0b584a263ee8f789e35796279f31 name: blob-csi-driver @@ -426,7 +435,7 @@ entries: version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2025-09-01T02:08:04.718902832Z" + created: "2025-09-11T07:14:31.312983123Z" description: Azure Blob Storage CSI driver digest: 124e87af2581b374b89a39940698620c23d3eae6dcee518d302461ffea93e9a8 name: blob-csi-driver @@ -435,7 +444,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2025-09-01T02:08:04.718244146Z" + created: "2025-09-11T07:14:31.304535354Z" description: Azure Blob Storage CSI driver digest: 07c4d76017491b3d0bdd70de90e814096938bf7916da0c149c3805294bd57560 name: blob-csi-driver @@ -444,7 +453,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2025-09-01T02:08:04.717600115Z" + created: "2025-09-11T07:14:31.297968771Z" description: Azure Blob Storage CSI driver digest: 79716efa958385adf57eb3570843e1b4512d8c801e8e070625e94264f3e917a9 name: blob-csi-driver @@ -453,11 +462,11 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: latest - created: "2025-09-01T02:08:04.716944199Z" + created: "2025-09-11T07:14:31.288884211Z" description: Azure Blob Storage CSI driver digest: d0d40497d2f98840443e6f2ffe4fc34ed2526fb94c63af602f78497a44d78719 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: "2025-09-01T02:08:04.716035542Z" +generated: "2025-09-11T07:14:31.288044442Z" diff --git a/charts/v1.26.7/blob-csi-driver-1.26.7.tgz b/charts/v1.26.7/blob-csi-driver-1.26.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6905a0042c3b00625c19085cf5a14db907de1012 GIT binary patch literal 6383 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 literal 0 HcmV?d00001 diff --git a/charts/v1.26.7/blob-csi-driver/Chart.yaml b/charts/v1.26.7/blob-csi-driver/Chart.yaml new file mode 100644 index 000000000..37ca920ce --- /dev/null +++ b/charts/v1.26.7/blob-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: 1.26.7 +description: Azure Blob Storage CSI driver +name: blob-csi-driver +version: 1.26.7 diff --git a/charts/v1.26.7/blob-csi-driver/templates/NOTES.txt b/charts/v1.26.7/blob-csi-driver/templates/NOTES.txt new file mode 100644 index 000000000..c75dafbb5 --- /dev/null +++ b/charts/v1.26.7/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="app.kubernetes.io/name={{ .Release.Name }}" --watch diff --git a/charts/v1.26.7/blob-csi-driver/templates/_helpers.tpl b/charts/v1.26.7/blob-csi-driver/templates/_helpers.tpl new file mode 100644 index 000000000..d99392f32 --- /dev/null +++ b/charts/v1.26.7/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.26.7/blob-csi-driver/templates/csi-blob-controller.yaml b/charts/v1.26.7/blob-csi-driver/templates/csi-blob-controller.yaml new file mode 100644 index 000000000..9b443e7ee --- /dev/null +++ b/charts/v1.26.7/blob-csi-driver/templates/csi-blob-controller.yaml @@ -0,0 +1,259 @@ +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: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + hostNetwork: {{ .Values.controller.hostNetwork }} + serviceAccountName: {{ .Values.serviceAccount.controller }} + nodeSelector: + kubernetes.io/os: linux + # runOnControlPlane=true or runOnMaster=true only takes effect if affinity is not set + {{- if tpl "{{ .Values.controller.affinity }}" . | contains "nodeSelectorTerms" }} + {{- with .Values.controller.affinity }} + affinity: +{{ toYaml . | indent 8 }} + {{- end }} + {{- else if or .Values.controller.runOnControlPlane .Values.controller.runOnMaster}} + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + {{- if .Values.controller.runOnControlPlane}} + - key: node-role.kubernetes.io/control-plane + operator: Exists + {{- end}} + {{- if .Values.controller.runOnMaster}} + - key: node-role.kubernetes.io/master + operator: Exists + {{- end}} + {{- 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=1200s" + - "--extra-create-metadata=true" + - "--kube-api-qps=50" + - "--kube-api-burst=100" + - "--feature-gates=HonorPVReclaimPolicy=true" + - "--retry-interval-max=30m" + 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 }} + securityContext: + capabilities: + drop: + - ALL + - 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 +{{- if eq .Values.controller.hostNetwork true }} + - --http-endpoint=localhost:{{ .Values.controller.livenessProbe.healthPort }} +{{- else }} + - --health-port={{ .Values.controller.livenessProbe.healthPort }} +{{- end }} + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - 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.metricsPort }} + name: metrics + protocol: TCP +{{- if ne .Values.controller.hostNetwork true }} + - containerPort: {{ .Values.controller.livenessProbe.healthPort }} + name: healthz + protocol: TCP +{{- end }} + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz +{{- if eq .Values.controller.hostNetwork true }} + host: localhost + port: {{ .Values.controller.livenessProbe.healthPort }} +{{- else }} + port: healthz +{{- end }} + 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 }} + - name: AZCOPY_CONCURRENCY_VALUE + value: "10" + - name: AZCOPY_CONCURRENT_FILES + value: "20" + - name: AZCOPY_BUFFER_GB + value: "1" + imagePullPolicy: {{ .Values.image.blob.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /root/.azcopy + name: azcopy-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + {{- if or (eq .Values.cloud "AzureStackCloud") (eq .Values.linux.distro "fedora") }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.controller.resources.blob | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - 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 }} + securityContext: + capabilities: + drop: + - ALL + volumes: + - name: socket-dir + emptyDir: {} + - name: azcopy-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + {{- if or (eq .Values.cloud "AzureStackCloud") (eq .Values.linux.distro "fedora") }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - 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.26.7/blob-csi-driver/templates/csi-blob-driver.yaml b/charts/v1.26.7/blob-csi-driver/templates/csi-blob-driver.yaml new file mode 100644 index 000000000..9c5de5b91 --- /dev/null +++ b/charts/v1.26.7/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 + fsGroupPolicy: {{ .Values.feature.fsGroupPolicy }} + volumeLifecycleModes: + - Persistent + - Ephemeral + tokenRequests: + - audience: api://AzureADTokenExchange diff --git a/charts/v1.26.7/blob-csi-driver/templates/csi-blob-node.yaml b/charts/v1.26.7/blob-csi-driver/templates/csi-blob-node.yaml new file mode 100644 index 000000000..169da2522 --- /dev/null +++ b/charts/v1.26.7/blob-csi-driver/templates/csi-blob-node.yaml @@ -0,0 +1,339 @@ +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 or .Values.node.enableBlobfuseProxy .Values.node.enableAznfsMount }} + 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 }} + 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 + capabilities: + drop: + - ALL + 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: INSTALL_BLOBFUSE_PROXY + value: "{{ .Values.node.enableBlobfuseProxy }}" + - 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 }}" + - name: KUBELET_PATH + value: "{{ .Values.linux.kubelet }}" + - name: MIGRATE_K8S_REPO + value: "{{ .Values.node.blobfuseProxy.migrateK8sRepo }}" + - name: SET_READ_AHEAD_SIZE + value: "{{ .Values.node.blobfuseProxy.setReadAheadSize }}" + - name: ALLOW_PACKAGE_INSTALL_DOWNGRADE + value: "{{ .Values.node.blobfuseProxy.allowPackageInstallDowngrade }}" + volumeMounts: + - name: host-usr + mountPath: /host/usr + - name: host-usr-local + mountPath: /host/usr/local + - name: host-etc + mountPath: /host/etc + 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=10s + - --http-endpoint=localhost:{{ .Values.node.livenessProbe.healthPort }} + - --v=2 + resources: {{- toYaml .Values.node.resources.livenessProbe | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - 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 + 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 }} + securityContext: + capabilities: + drop: + - ALL + - 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 }}" + - "--enable-aznfs-mount={{ .Values.node.enableAznfsMount }}" + - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" + ports: + - containerPort: {{ .Values.node.metricsPort }} + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: {{ .Values.node.livenessProbe.healthPort }} + initialDelaySeconds: 30 + timeoutSeconds: 30 + 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 + capabilities: + drop: + - ALL + 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 or (eq .Values.cloud "AzureStackCloud") (eq .Values.linux.distro "fedora") }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + {{- if .Values.node.enableAznfsMount }} + - mountPath: /opt/microsoft/aznfs/data + name: aznfs-data + - mountPath: /lib/modules + name: lib-modules + readOnly: true + {{- end }} + resources: {{- toYaml .Values.node.resources.blob | nindent 12 }} +{{- if .Values.node.enableAznfsMount }} + - name: aznfswatchdog +{{- 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: + - "aznfswatchdog" + imagePullPolicy: {{ .Values.image.blob.pullPolicy }} + securityContext: + privileged: true + capabilities: + drop: + - ALL + resources: {{- toYaml .Values.node.resources.aznfswatchdog | nindent 12 }} + volumeMounts: + - mountPath: /opt/microsoft/aznfs/data + name: aznfs-data + - mountPath: {{ .Values.linux.kubelet }}/ + mountPropagation: Bidirectional + name: mountpoint-dir +{{- end }} + volumes: + - name: host-usr + hostPath: + path: /usr + - name: host-usr-local + hostPath: + path: /usr/local + - name: host-etc + hostPath: + path: /etc + - 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 or (eq .Values.cloud "AzureStackCloud") (eq .Values.linux.distro "fedora") }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} + {{- if .Values.node.enableAznfsMount }} + - hostPath: + path: /opt/microsoft/aznfs/data + type: DirectoryOrCreate + name: aznfs-data + - name: lib-modules + hostPath: + path: /lib/modules + type: DirectoryOrCreate + {{- end }} + {{- if .Values.securityContext }} + securityContext: {{- toYaml .Values.securityContext | nindent 8 }} + {{- end }} diff --git a/charts/v1.26.7/blob-csi-driver/templates/rbac-csi-blob-controller.yaml b/charts/v1.26.7/blob-csi-driver/templates/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..8c85e4eef --- /dev/null +++ b/charts/v1.26.7/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", "patch", "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.26.7/blob-csi-driver/templates/rbac-csi-blob-node.yaml b/charts/v1.26.7/blob-csi-driver/templates/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..c041cf8db --- /dev/null +++ b/charts/v1.26.7/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.26.7/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml b/charts/v1.26.7/blob-csi-driver/templates/serviceaccount-csi-blob-controller.yaml new file mode 100644 index 000000000..7433bccf1 --- /dev/null +++ b/charts/v1.26.7/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.26.7/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml b/charts/v1.26.7/blob-csi-driver/templates/serviceaccount-csi-blob-node.yaml new file mode 100644 index 000000000..a25090e30 --- /dev/null +++ b/charts/v1.26.7/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.26.7/blob-csi-driver/values.yaml b/charts/v1.26.7/blob-csi-driver/values.yaml new file mode 100644 index 000000000..ff659c97b --- /dev/null +++ b/charts/v1.26.7/blob-csi-driver/values.yaml @@ -0,0 +1,187 @@ +image: + baseRepo: mcr.microsoft.com + blob: + repository: /oss/v2/kubernetes-csi/blob-csi + tag: v1.26.7 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/v2/kubernetes-csi/csi-provisioner + tag: v5.3.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/v2/kubernetes-csi/livenessprobe + tag: v2.16.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/v2/kubernetes-csi/csi-node-driver-registrar + tag: v2.14.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/v2/kubernetes-csi/csi-resizer + tag: v1.14.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: 800Mi + 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" + - key: "CriticalAddonsOnly" + 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: true + blobfuseProxy: + installBlobfuse: false + blobfuseVersion: "1.4.5" + installBlobfuse2: true + blobfuse2Version: "2.5.0" + setMaxOpenFileNum: true + maxOpenFileNum: "9000000" + disableUpdateDB: true + migrateK8sRepo: false + setReadAheadSize: true + allowPackageInstallDowngrade: 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 + aznfswatchdog: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + affinity: {} + nodeSelector: {} + tolerations: + - operator: "Exists" + enableAznfsMount: true + +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/v1.26.7/csi-blob-controller.yaml b/deploy/v1.26.7/csi-blob-controller.yaml new file mode 100644 index 000000000..0bae163d0 --- /dev/null +++ b/deploy/v1.26.7/csi-blob-controller.yaml @@ -0,0 +1,172 @@ +--- +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" + - key: "CriticalAddonsOnly" + operator: "Exists" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: mcr.microsoft.com/oss/v2/kubernetes-csi/csi-provisioner:v5.3.0 + args: + - "-v=2" + - "--csi-address=$(ADDRESS)" + - "--leader-election" + - "--leader-election-namespace=kube-system" + - "--timeout=1200s" + - "--extra-create-metadata=true" + - "--kube-api-qps=50" + - "--kube-api-burst=100" + - "--feature-gates=HonorPVReclaimPolicy=true" + - "--retry-interval-max=30m" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + securityContext: + capabilities: + drop: + - ALL + - name: liveness-probe + image: mcr.microsoft.com/oss/v2/kubernetes-csi/livenessprobe:v2.16.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --http-endpoint=localhost:29632 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + securityContext: + capabilities: + drop: + - ALL + - name: blob + image: mcr.microsoft.com/oss/v2/kubernetes-csi/blob-csi:v1.26.7 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:29634" + - "--user-agent-suffix=OSS-kubectl" + ports: + - containerPort: 29634 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29632 + 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: AZCOPY_CONCURRENCY_VALUE + value: "10" + - name: AZCOPY_CONCURRENT_FILES + value: "20" + - name: AZCOPY_BUFFER_GB + value: "1" + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /root/.azcopy + name: azcopy-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + resources: + limits: + memory: 800Mi + requests: + cpu: 10m + memory: 20Mi + securityContext: + capabilities: + drop: + - ALL + - name: csi-resizer + image: mcr.microsoft.com/oss/v2/kubernetes-csi/csi-resizer:v1.13.2 + 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 + securityContext: + capabilities: + drop: + - ALL + volumes: + - name: socket-dir + emptyDir: {} + - name: azcopy-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate diff --git a/deploy/v1.26.7/csi-blob-driver.yaml b/deploy/v1.26.7/csi-blob-driver.yaml new file mode 100644 index 000000000..d13ff5f91 --- /dev/null +++ b/deploy/v1.26.7/csi-blob-driver.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: blob.csi.azure.com +spec: + attachRequired: false + podInfoOnMount: true + fsGroupPolicy: ReadWriteOnceWithFSType + volumeLifecycleModes: + - Persistent + - Ephemeral + tokenRequests: + - audience: api://AzureADTokenExchange diff --git a/deploy/v1.26.7/csi-blob-node.yaml b/deploy/v1.26.7/csi-blob-node.yaml new file mode 100644 index 000000000..241d29ce8 --- /dev/null +++ b/deploy/v1.26.7/csi-blob-node.yaml @@ -0,0 +1,254 @@ +--- +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/v2/kubernetes-csi/blob-csi:v1.26.7 + imagePullPolicy: IfNotPresent + command: + - "/blobfuse-proxy/init.sh" + securityContext: + privileged: true + capabilities: + drop: + - ALL + env: + - name: DEBIAN_FRONTEND + value: "noninteractive" + - name: INSTALL_BLOBFUSE_PROXY + value: "true" + - name: INSTALL_BLOBFUSE + value: "false" + - name: BLOBFUSE_VERSION + value: "1.4.5" + - name: INSTALL_BLOBFUSE2 + value: "true" + - name: BLOBFUSE2_VERSION + value: "2.5.0" + - name: SET_MAX_OPEN_FILE_NUM + value: "true" + - name: MAX_FILE_NUM + value: "9000000" + - name: DISABLE_UPDATEDB + value: "true" + - name: ALLOW_PACKAGE_INSTALL_DOWNGRADE + value: "true" + volumeMounts: + - name: host-usr + mountPath: /host/usr + - name: host-usr-local + mountPath: /host/usr/local + - name: host-etc + mountPath: /host/etc + containers: + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: mcr.microsoft.com/oss/v2/kubernetes-csi/livenessprobe:v2.16.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=10s + - --http-endpoint=localhost:29633 + - --v=2 + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + securityContext: + capabilities: + drop: + - ALL + - name: node-driver-registrar + image: mcr.microsoft.com/oss/v2/kubernetes-csi/csi-node-driver-registrar:v2.14.0 + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 + 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 + securityContext: + capabilities: + drop: + - ALL + - name: blob + image: mcr.microsoft.com/oss/v2/kubernetes-csi/blob-csi:v1.26.7 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--enable-blobfuse-proxy=true" + - "--blobfuse-proxy-endpoint=$(BLOBFUSE_PROXY_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--user-agent-suffix=OSS-kubectl" + - "--metrics-address=0.0.0.0:29635" + - "--enable-aznfs-mount=true" + ports: + - containerPort: 29635 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29633 + initialDelaySeconds: 30 + timeoutSeconds: 30 + 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 + capabilities: + drop: + - ALL + 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 + - mountPath: /opt/microsoft/aznfs/data + name: aznfs-data + - mountPath: /lib/modules + name: lib-modules + readOnly: true + resources: + limits: + memory: 2100Mi + requests: + cpu: 10m + memory: 20Mi + - name: aznfswatchdog + image: mcr.microsoft.com/oss/v2/kubernetes-csi/blob-csi:v1.26.7 + command: + - "aznfswatchdog" + imagePullPolicy: IfNotPresent + securityContext: + privileged: true + capabilities: + drop: + - ALL + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + volumeMounts: + - mountPath: /opt/microsoft/aznfs/data + name: aznfs-data + - mountPath: /var/lib/kubelet/ + mountPropagation: Bidirectional + name: mountpoint-dir + volumes: + - name: host-usr + hostPath: + path: /usr + - name: host-usr-local + hostPath: + path: /usr/local + - 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 + - hostPath: + path: /opt/microsoft/aznfs/data + type: DirectoryOrCreate + name: aznfs-data + - name: lib-modules + hostPath: + path: /lib/modules + type: DirectoryOrCreate +--- diff --git a/deploy/v1.26.7/kustomization.yaml b/deploy/v1.26.7/kustomization.yaml new file mode 100644 index 000000000..8b7f5fcac --- /dev/null +++ b/deploy/v1.26.7/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.26.7/rbac-csi-blob-controller.yaml b/deploy/v1.26.7/rbac-csi-blob-controller.yaml new file mode 100644 index 000000000..bba964e5b --- /dev/null +++ b/deploy/v1.26.7/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", "patch", "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.26.7/rbac-csi-blob-node.yaml b/deploy/v1.26.7/rbac-csi-blob-node.yaml new file mode 100644 index 000000000..ce06d862c --- /dev/null +++ b/deploy/v1.26.7/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 575d4c12f..6d49dca90 100644 --- a/docs/install-blob-csi-driver.md +++ b/docs/install-blob-csi-driver.md @@ -5,5 +5,5 @@ > - [install CSI driver master version](./install-csi-driver-master.md) (only for testing purpose) - [install v1.27.0 CSI driver](./install-csi-driver-v1.27.0.md) - - [install v1.26.3 CSI driver](./install-csi-driver-v1.26.3.md) + - [install v1.26.7 CSI driver](./install-csi-driver-v1.26.7.md) - [install v1.25.6 CSI driver](./install-csi-driver-v1.25.6.md) diff --git a/docs/install-csi-driver-v1.26.7.md b/docs/install-csi-driver-v1.26.7.md new file mode 100644 index 000000000..f49e301ce --- /dev/null +++ b/docs/install-csi-driver-v1.26.7.md @@ -0,0 +1,47 @@ +# Install Azure Blob Storage CSI driver v1.26.7 version on a kubernetes cluster +> `blobfuse-proxy` is supported on CoreOS(OpenShift) from v1.23.2 +> +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.26.7/deploy/install-driver.sh | bash -s v1.26.7 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.26.7 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.26.7/deploy/uninstall-driver.sh | bash -s v1.26.7 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/blob-csi-driver.git +cd blob-csi-driver +git checkout v1.26.7 +./deploy/uninstall-driver.sh v1.26.7 local +```