From 085b7c5ae5dc024194f23baccf4948be1d0cfd4a Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Fri, 17 Jan 2025 11:39:35 +0000 Subject: [PATCH] doc: update new chart versions --- README.md | 6 +- charts/README.md | 2 +- charts/index.yaml | 152 ++-- .../azuredisk-csi-driver-v1.29.12.tgz | Bin 0 -> 14602 bytes .../v1.29.12/azuredisk-csi-driver/Chart.yaml | 5 + .../azuredisk-csi-driver/templates/NOTES.txt | 5 + .../templates/_helpers.tpl | 26 + .../templates/crd-csi-snapshot.yaml | 840 ++++++++++++++++++ .../templates/csi-azuredisk-controller.yaml | 324 +++++++ .../templates/csi-azuredisk-driver.yaml | 13 + ...si-azuredisk-node-windows-hostprocess.yaml | 174 ++++ .../templates/csi-azuredisk-node-windows.yaml | 248 ++++++ .../templates/csi-azuredisk-node.yaml | 266 ++++++ .../templates/csi-snapshot-controller.yaml | 98 ++ .../rbac-csi-azuredisk-controller.yaml | 199 +++++ .../templates/rbac-csi-azuredisk-node.yaml | 28 + .../rbac-csi-snapshot-controller.yaml | 72 ++ ...rviceaccount-csi-azuredisk-controller.yaml | 16 + .../serviceaccount-csi-azuredisk-node.yaml | 16 + ...erviceaccount-csi-snapshot-controller.yaml | 7 + .../v1.29.12/azuredisk-csi-driver/values.yaml | 293 ++++++ .../v1.30.7/azuredisk-csi-driver-v1.30.2.tgz | Bin 0 -> 14749 bytes .../v1.30.7/azuredisk-csi-driver-v1.30.7.tgz | Bin 0 -> 15069 bytes .../v1.30.7/azuredisk-csi-driver/Chart.yaml | 5 + .../azuredisk-csi-driver/templates/NOTES.txt | 5 + .../templates/_helpers.tpl | 26 + .../templates/crd-csi-snapshot.yaml | 840 ++++++++++++++++++ .../templates/csi-azuredisk-controller.yaml | 342 +++++++ .../templates/csi-azuredisk-driver.yaml | 13 + ...si-azuredisk-node-windows-hostprocess.yaml | 174 ++++ .../templates/csi-azuredisk-node-windows.yaml | 248 ++++++ .../templates/csi-azuredisk-node.yaml | 266 ++++++ .../templates/csi-snapshot-controller.yaml | 115 +++ .../rbac-csi-azuredisk-controller.yaml | 205 +++++ .../templates/rbac-csi-azuredisk-node.yaml | 31 + .../rbac-csi-snapshot-controller.yaml | 72 ++ ...rviceaccount-csi-azuredisk-controller.yaml | 16 + .../serviceaccount-csi-azuredisk-node.yaml | 16 + ...erviceaccount-csi-snapshot-controller.yaml | 7 + .../v1.30.7/azuredisk-csi-driver/values.yaml | 294 ++++++ .../v1.31.1/azuredisk-csi-driver-1.31.0.tgz | Bin 14814 -> 0 bytes .../v1.31.1/azuredisk-csi-driver-1.31.1.tgz | Bin 0 -> 14813 bytes .../v1.31.1/azuredisk-csi-driver/Chart.yaml | 4 +- .../v1.31.2/azuredisk-csi-driver-1.31.2.tgz | Bin 0 -> 15068 bytes .../v1.31.2/azuredisk-csi-driver/Chart.yaml | 5 + .../azuredisk-csi-driver/templates/NOTES.txt | 5 + .../templates/_helpers.tpl | 26 + .../templates/crd-csi-snapshot.yaml | 840 ++++++++++++++++++ .../templates/csi-azuredisk-controller.yaml | 342 +++++++ .../templates/csi-azuredisk-driver.yaml | 13 + ...si-azuredisk-node-windows-hostprocess.yaml | 174 ++++ .../templates/csi-azuredisk-node-windows.yaml | 248 ++++++ .../templates/csi-azuredisk-node.yaml | 266 ++++++ .../templates/csi-snapshot-controller.yaml | 115 +++ .../rbac-csi-azuredisk-controller.yaml | 205 +++++ .../templates/rbac-csi-azuredisk-node.yaml | 31 + .../rbac-csi-snapshot-controller.yaml | 72 ++ ...rviceaccount-csi-azuredisk-controller.yaml | 16 + .../serviceaccount-csi-azuredisk-node.yaml | 16 + ...erviceaccount-csi-snapshot-controller.yaml | 7 + .../v1.31.2/azuredisk-csi-driver/values.yaml | 294 ++++++ deploy/v1.29.12/crd-csi-snapshot.yaml | 838 +++++++++++++++++ deploy/v1.29.12/csi-azuredisk-controller.yaml | 219 +++++ deploy/v1.29.12/csi-azuredisk-driver.yaml | 12 + ...si-azuredisk-node-windows-hostprocess.yaml | 120 +++ .../v1.29.12/csi-azuredisk-node-windows.yaml | 198 +++++ deploy/v1.29.12/csi-azuredisk-node.yaml | 178 ++++ deploy/v1.29.12/csi-snapshot-controller.yaml | 62 ++ .../rbac-csi-azuredisk-controller.yaml | 196 ++++ deploy/v1.29.12/rbac-csi-azuredisk-node.yaml | 33 + .../rbac-csi-snapshot-controller.yaml | 78 ++ deploy/v1.30.7/crd-csi-snapshot.yaml | 838 +++++++++++++++++ deploy/v1.30.7/csi-azuredisk-controller.yaml | 223 +++++ deploy/v1.30.7/csi-azuredisk-driver.yaml | 12 + ...si-azuredisk-node-windows-hostprocess.yaml | 120 +++ .../v1.30.7/csi-azuredisk-node-windows.yaml | 198 +++++ deploy/v1.30.7/csi-azuredisk-node.yaml | 178 ++++ deploy/v1.30.7/csi-snapshot-controller.yaml | 62 ++ .../rbac-csi-azuredisk-controller.yaml | 202 +++++ deploy/v1.30.7/rbac-csi-azuredisk-node.yaml | 35 + .../v1.30.7/rbac-csi-snapshot-controller.yaml | 78 ++ deploy/v1.31.2/crd-csi-snapshot.yaml | 838 +++++++++++++++++ deploy/v1.31.2/csi-azuredisk-controller.yaml | 223 +++++ deploy/v1.31.2/csi-azuredisk-driver.yaml | 12 + ...si-azuredisk-node-windows-hostprocess.yaml | 120 +++ .../v1.31.2/csi-azuredisk-node-windows.yaml | 198 +++++ deploy/v1.31.2/csi-azuredisk-node.yaml | 178 ++++ deploy/v1.31.2/csi-snapshot-controller.yaml | 62 ++ .../rbac-csi-azuredisk-controller.yaml | 202 +++++ deploy/v1.31.2/rbac-csi-azuredisk-node.yaml | 35 + .../v1.31.2/rbac-csi-snapshot-controller.yaml | 78 ++ docs/install-azuredisk-csi-driver.md | 6 +- docs/install-csi-driver-v1.29.12.md | 48 + docs/install-csi-driver-v1.30.7.md | 48 + docs/install-csi-driver-v1.31.2.md | 48 + 95 files changed, 14053 insertions(+), 67 deletions(-) create mode 100644 charts/v1.29.12/azuredisk-csi-driver-v1.29.12.tgz create mode 100644 charts/v1.29.12/azuredisk-csi-driver/Chart.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml create mode 100644 charts/v1.29.12/azuredisk-csi-driver/values.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver-v1.30.2.tgz create mode 100644 charts/v1.30.7/azuredisk-csi-driver-v1.30.7.tgz create mode 100644 charts/v1.30.7/azuredisk-csi-driver/Chart.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml create mode 100644 charts/v1.30.7/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.31.1/azuredisk-csi-driver-1.31.0.tgz create mode 100644 charts/v1.31.1/azuredisk-csi-driver-1.31.1.tgz create mode 100644 charts/v1.31.2/azuredisk-csi-driver-1.31.2.tgz create mode 100644 charts/v1.31.2/azuredisk-csi-driver/Chart.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml create mode 100644 charts/v1.31.2/azuredisk-csi-driver/values.yaml create mode 100644 deploy/v1.29.12/crd-csi-snapshot.yaml create mode 100644 deploy/v1.29.12/csi-azuredisk-controller.yaml create mode 100644 deploy/v1.29.12/csi-azuredisk-driver.yaml create mode 100644 deploy/v1.29.12/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 deploy/v1.29.12/csi-azuredisk-node-windows.yaml create mode 100644 deploy/v1.29.12/csi-azuredisk-node.yaml create mode 100644 deploy/v1.29.12/csi-snapshot-controller.yaml create mode 100644 deploy/v1.29.12/rbac-csi-azuredisk-controller.yaml create mode 100644 deploy/v1.29.12/rbac-csi-azuredisk-node.yaml create mode 100644 deploy/v1.29.12/rbac-csi-snapshot-controller.yaml create mode 100644 deploy/v1.30.7/crd-csi-snapshot.yaml create mode 100644 deploy/v1.30.7/csi-azuredisk-controller.yaml create mode 100644 deploy/v1.30.7/csi-azuredisk-driver.yaml create mode 100644 deploy/v1.30.7/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 deploy/v1.30.7/csi-azuredisk-node-windows.yaml create mode 100644 deploy/v1.30.7/csi-azuredisk-node.yaml create mode 100644 deploy/v1.30.7/csi-snapshot-controller.yaml create mode 100644 deploy/v1.30.7/rbac-csi-azuredisk-controller.yaml create mode 100644 deploy/v1.30.7/rbac-csi-azuredisk-node.yaml create mode 100644 deploy/v1.30.7/rbac-csi-snapshot-controller.yaml create mode 100644 deploy/v1.31.2/crd-csi-snapshot.yaml create mode 100644 deploy/v1.31.2/csi-azuredisk-controller.yaml create mode 100644 deploy/v1.31.2/csi-azuredisk-driver.yaml create mode 100644 deploy/v1.31.2/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 deploy/v1.31.2/csi-azuredisk-node-windows.yaml create mode 100644 deploy/v1.31.2/csi-azuredisk-node.yaml create mode 100644 deploy/v1.31.2/csi-snapshot-controller.yaml create mode 100644 deploy/v1.31.2/rbac-csi-azuredisk-controller.yaml create mode 100644 deploy/v1.31.2/rbac-csi-azuredisk-node.yaml create mode 100644 deploy/v1.31.2/rbac-csi-snapshot-controller.yaml create mode 100644 docs/install-csi-driver-v1.29.12.md create mode 100644 docs/install-csi-driver-v1.30.7.md create mode 100644 docs/install-csi-driver-v1.31.2.md diff --git a/README.md b/README.md index e554e7941d..18cc353f91 100644 --- a/README.md +++ b/README.md @@ -17,9 +17,9 @@ Disclaimer: Deploying this driver manually is not an officially supported Micros |Driver Version |Image | supported k8s version | |----------------|-----------------------------------------------------------|-----------------------| |`master` branch |mcr.microsoft.com/k8s/csi/azuredisk-csi:latest | 1.21+ | -|v1.31.1 |mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.31.1 | 1.21+ | -|v1.30.6 |mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.30.6 | 1.21+ | -|v1.29.11 |mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.29.11 | 1.21+ | +|v1.31.2 |mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.31.2 | 1.21+ | +|v1.30.7 |mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.30.7 | 1.21+ | +|v1.29.12 |mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.29.12 | 1.21+ | |v1.28.11 |mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.28.11 | 1.21+ | ### Driver parameters diff --git a/charts/README.md b/charts/README.md index caf8859a50..5b17cf757d 100644 --- a/charts/README.md +++ b/charts/README.md @@ -60,7 +60,7 @@ helm repo update azuredisk-csi-driver ### install a specific version ```console -helm install azuredisk-csi-driver azuredisk-csi-driver/azuredisk-csi-driver --namespace kube-system --version v1.31.1 +helm install azuredisk-csi-driver azuredisk-csi-driver/azuredisk-csi-driver --namespace kube-system --version v1.31.2 ``` ### install on Azure Stack diff --git a/charts/index.yaml b/charts/index.yaml index 7f4636c575..0057405bbe 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -3,7 +3,7 @@ entries: azuredisk-csi-driver: - apiVersion: v1 appVersion: v2.0.0-beta.6 - created: "2024-11-15T08:39:55.8273547Z" + created: "2025-01-17T11:38:54.163259938Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 0e7280d2bcd752668c4439078ffdfc4567ac97af97d8baa07c322b99c34fb741 name: azuredisk-csi-driver @@ -11,35 +11,53 @@ entries: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-beta.6/azuredisk-csi-driver-v2.0.0-beta.6.tgz version: v2.0.0-beta.6 - apiVersion: v1 - appVersion: 1.31.0 - created: "2024-11-15T08:39:55.825294161Z" + appVersion: 1.31.2 + created: "2025-01-17T11:38:54.161554382Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 422a7dd3396e5e151ff0280fd94e4627fcebc95f506cd02842fa8cb82e6c303c + digest: cc12c845ac4a0319980c65ec3b6ed9d320c62765395feae354c28cca82eaf87e name: azuredisk-csi-driver urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.31.1/azuredisk-csi-driver-1.31.0.tgz - version: 1.31.0 + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.31.2/azuredisk-csi-driver-1.31.2.tgz + version: 1.31.2 + - apiVersion: v1 + appVersion: 1.31.1 + created: "2025-01-17T11:38:54.160212922Z" + description: Azure disk Container Storage Interface (CSI) Storage Plugin + digest: da7310a7abb392f37bb10793c8daf2dbb214274ead4ef236792ede1ff90ceba0 + name: azuredisk-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.31.1/azuredisk-csi-driver-1.31.1.tgz + version: 1.31.1 - apiVersion: v1 appVersion: 1.31.0 - created: "2024-11-15T08:39:55.824029996Z" + created: "2025-01-17T11:38:54.158463761Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 4a805d304b6c9f15aa2e22b26f03792f03568abf1d43139964155f666f889189 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.31.0/azuredisk-csi-driver-1.31.0.tgz version: 1.31.0 + - apiVersion: v1 + appVersion: v1.30.7 + created: "2025-01-17T11:38:54.15671309Z" + description: Azure disk Container Storage Interface (CSI) Storage Plugin + digest: ccffa5f204472c9f5c7afa19490ee5b08f8f4b3b0efb4d9fe4dcd82cdac71b5a + name: azuredisk-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.30.7/azuredisk-csi-driver-v1.30.7.tgz + version: v1.30.7 - apiVersion: v1 appVersion: v1.30.6 - created: "2024-11-15T08:39:55.822339307Z" + created: "2025-01-17T11:38:54.154266366Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: d491fd79faf2643c770b9261770446b5f1d8cf771716115b5202834c8b49e262 + digest: b98d1ff336cd1ee8b4484d27390d8c75e14be67ca96b8b52fd9839d47e4e59cc name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.30.6/azuredisk-csi-driver-v1.30.6.tgz version: v1.30.6 - apiVersion: v1 appVersion: v1.30.5 - created: "2024-11-15T08:39:55.819524098Z" + created: "2025-01-17T11:38:54.15139777Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 7d15bc12a408e7c9e208cf9949a93d5ddb884a580c7737ab5d7d43796d90515e name: azuredisk-csi-driver @@ -48,7 +66,7 @@ entries: version: v1.30.5 - apiVersion: v1 appVersion: v1.30.3 - created: "2024-11-15T08:39:55.81708956Z" + created: "2025-01-17T11:38:54.148603183Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 62423183e2ea8bafcbbf586361e3410b25a82d861fa479f718ed9be5f2e8dcce name: azuredisk-csi-driver @@ -57,7 +75,7 @@ entries: version: v1.30.3 - apiVersion: v1 appVersion: v1.30.2 - created: "2024-11-15T08:39:55.820727595Z" + created: "2025-01-17T11:38:54.152999978Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: fa316618e93400163281a891eff994ff683492736c1dc0c698a8b817f40968b1 name: azuredisk-csi-driver @@ -66,7 +84,7 @@ entries: version: v1.30.2 - apiVersion: v1 appVersion: v1.30.2 - created: "2024-11-15T08:39:55.818331631Z" + created: "2025-01-17T11:38:54.149837862Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: fa316618e93400163281a891eff994ff683492736c1dc0c698a8b817f40968b1 name: azuredisk-csi-driver @@ -75,7 +93,16 @@ entries: version: v1.30.2 - apiVersion: v1 appVersion: v1.30.2 - created: "2024-11-15T08:39:55.81550611Z" + created: "2025-01-17T11:38:54.155485173Z" + description: Azure disk Container Storage Interface (CSI) Storage Plugin + digest: fa316618e93400163281a891eff994ff683492736c1dc0c698a8b817f40968b1 + name: azuredisk-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.30.7/azuredisk-csi-driver-v1.30.2.tgz + version: v1.30.2 + - apiVersion: v1 + appVersion: v1.30.2 + created: "2025-01-17T11:38:54.147410905Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 86bdb8d2801e587296848d1a426c4730f0a214e6690b3cbf067553a90ab1870e name: azuredisk-csi-driver @@ -84,7 +111,7 @@ entries: version: v1.30.2 - apiVersion: v1 appVersion: v1.30.1 - created: "2024-11-15T08:39:55.813970667Z" + created: "2025-01-17T11:38:54.145916997Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: fdd86f1db134c9a61ed82d0a5c7fd9b268755a56fa4e225dfdcf544e21dd1615 name: azuredisk-csi-driver @@ -93,25 +120,34 @@ entries: version: v1.30.1 - apiVersion: v1 appVersion: v1.30.0 - created: "2024-11-15T08:39:55.812721393Z" + created: "2025-01-17T11:38:54.143499294Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e76dc3ae89d3040cf078ca3232577d29e100813670ca5138a297bc3b2e1c5514 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.30.0/azuredisk-csi-driver-v1.30.0.tgz version: v1.30.0 + - apiVersion: v1 + appVersion: v1.29.12 + created: "2025-01-17T11:38:54.136455019Z" + description: Azure disk Container Storage Interface (CSI) Storage Plugin + digest: 2bf50f57346d04b5625de7137e1a88bb5463146247a84833c5994d972ec02aee + name: azuredisk-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.29.12/azuredisk-csi-driver-v1.29.12.tgz + version: v1.29.12 - apiVersion: v1 appVersion: v1.29.11 - created: "2024-11-15T08:39:55.805525527Z" + created: "2025-01-17T11:38:54.135243409Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 8e658cb8f49da4f4ba55acd049bbb88565e6fb0f711e6832f11ba3b66f757059 + digest: a63ca53c0863258e2dc54563aeb7ac928fe1f6ed840507c36a8f4c63d8744529 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.29.11/azuredisk-csi-driver-v1.29.11.tgz version: v1.29.11 - apiVersion: v1 appVersion: v1.29.10 - created: "2024-11-15T08:39:55.804254828Z" + created: "2025-01-17T11:38:54.134002132Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 7160c696b3c8ecc019259ad7edba5f2fbc0944fa66d59bbf118ae678f2a5f14b name: azuredisk-csi-driver @@ -120,7 +156,7 @@ entries: version: v1.29.10 - apiVersion: v1 appVersion: v1.29.8 - created: "2024-11-15T08:39:55.811535648Z" + created: "2025-01-17T11:38:54.142290655Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: a1da319541d5cb28b30967672a4675021090d24c492bd376f623aa7b5d240918 name: azuredisk-csi-driver @@ -129,7 +165,7 @@ entries: version: v1.29.8 - apiVersion: v1 appVersion: v1.29.7 - created: "2024-11-15T08:39:55.810312253Z" + created: "2025-01-17T11:38:54.141043271Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3b14cbf811e0034f879b85e75854806bce38edb57e10fed7dba5e9c9f134f176 name: azuredisk-csi-driver @@ -138,7 +174,7 @@ entries: version: v1.29.7 - apiVersion: v1 appVersion: v1.29.5 - created: "2024-11-15T08:39:55.808211313Z" + created: "2025-01-17T11:38:54.13980337Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: b15f92d13ad8cbc6c6ab48baffe25536866e5e69314eb5cf6d36619241fb0279 name: azuredisk-csi-driver @@ -147,7 +183,7 @@ entries: version: v1.29.5 - apiVersion: v1 appVersion: v1.29.2 - created: "2024-11-15T08:39:55.806988671Z" + created: "2025-01-17T11:38:54.138351512Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: ae0c15b875bb0bd2a4c1135437f0abfee6bf3591abcc502604317b3fe46015ff name: azuredisk-csi-driver @@ -156,7 +192,7 @@ entries: version: v1.29.2 - apiVersion: v1 appVersion: v1.29.1 - created: "2024-11-15T08:39:55.802777192Z" + created: "2025-01-17T11:38:54.132737509Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 441c64c6487a89efda91f22aa40358b6f9d31c73e2f131cfc10dcddd628af54f name: azuredisk-csi-driver @@ -165,7 +201,7 @@ entries: version: v1.29.1 - apiVersion: v1 appVersion: v1.29.0 - created: "2024-11-15T08:39:55.800923074Z" + created: "2025-01-17T11:38:54.130417914Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 611857811af7ac3304f7cae847be4f35bad6735482700d5b2c970dfbb53f9a3b name: azuredisk-csi-driver @@ -174,7 +210,7 @@ entries: version: v1.29.0 - apiVersion: v1 appVersion: v1.28.11 - created: "2024-11-15T08:39:55.790449243Z" + created: "2025-01-17T11:38:54.121002405Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: d23c341609c78075ec62c7145f79d9a84a86737107a9310e8ee3c94249747891 name: azuredisk-csi-driver @@ -183,7 +219,7 @@ entries: version: v1.28.11 - apiVersion: v1 appVersion: v1.28.10 - created: "2024-11-15T08:39:55.789279095Z" + created: "2025-01-17T11:38:54.119853813Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 0a186f610f7b723da55f81aeffd2d1e2a8dbb293dd45da6fc5f71f1fe15bc71c name: azuredisk-csi-driver @@ -192,7 +228,7 @@ entries: version: v1.28.10 - apiVersion: v1 appVersion: v1.28.9 - created: "2024-11-15T08:39:55.799076168Z" + created: "2025-01-17T11:38:54.129195795Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8e2069be5d367516339f474a41563675ce7d797d6e53d458471e6137fa293355 name: azuredisk-csi-driver @@ -201,7 +237,7 @@ entries: version: v1.28.9 - apiVersion: v1 appVersion: v1.28.7 - created: "2024-11-15T08:39:55.797932851Z" + created: "2025-01-17T11:38:54.128028012Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 98008a5df89122ccb01927e0f33b91453c31369c4d105e8bf89d6741064d9cdf name: azuredisk-csi-driver @@ -210,7 +246,7 @@ entries: version: v1.28.7 - apiVersion: v1 appVersion: v1.28.5 - created: "2024-11-15T08:39:55.796736605Z" + created: "2025-01-17T11:38:54.126870427Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 1c8d6bb8882ddc62b699f877734f637291f755436474b4daeb80b395a9d5cdf1 name: azuredisk-csi-driver @@ -219,7 +255,7 @@ entries: version: v1.28.5 - apiVersion: v1 appVersion: v1.28.4 - created: "2024-11-15T08:39:55.795517719Z" + created: "2025-01-17T11:38:54.125483229Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f1b8fa60b0769577c563e33d475544577b37bb2430d027bfe92b91ad8588744d name: azuredisk-csi-driver @@ -228,7 +264,7 @@ entries: version: v1.28.4 - apiVersion: v1 appVersion: v1.28.3 - created: "2024-11-15T08:39:55.793707491Z" + created: "2025-01-17T11:38:54.123601828Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12fe80d19091cc4bc0025585da35d12bcab9cbc2f3e4cfd90eb4368e6967931a name: azuredisk-csi-driver @@ -237,7 +273,7 @@ entries: version: v1.28.3 - apiVersion: v1 appVersion: v1.28.2 - created: "2024-11-15T08:39:55.791888632Z" + created: "2025-01-17T11:38:54.12214326Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 044dc6ffb662914020a3a835f994455a3301a4b2b665c9d4b9496b422a93c8b1 name: azuredisk-csi-driver @@ -246,7 +282,7 @@ entries: version: v1.28.2 - apiVersion: v1 appVersion: v1.27.1 - created: "2024-11-15T08:39:55.788118221Z" + created: "2025-01-17T11:38:54.118714265Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 805d2f7437e7442739c18791e3eaf839d75bc9f3c1a10710e6cc6cb7ee06cbc4 name: azuredisk-csi-driver @@ -255,7 +291,7 @@ entries: version: v1.27.1 - apiVersion: v1 appVersion: v1.26.8 - created: "2024-11-15T08:39:55.786919019Z" + created: "2025-01-17T11:38:54.116772464Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3920ea0e2c358bc659b4bc243ad35420959d59c7532ebcf775de6c819ff0aca6 name: azuredisk-csi-driver @@ -264,7 +300,7 @@ entries: version: v1.26.8 - apiVersion: v1 appVersion: v1.26.7 - created: "2024-11-15T08:39:55.785062985Z" + created: "2025-01-17T11:38:54.11571218Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8796e69d622aaef119bf87047d1d7ed699e88119d48655590813ec5a38a3ccab name: azuredisk-csi-driver @@ -273,7 +309,7 @@ entries: version: v1.26.7 - apiVersion: v1 appVersion: v1.26.6 - created: "2024-11-15T08:39:55.784018122Z" + created: "2025-01-17T11:38:54.114657515Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 277051eba7872783d34d9b8ba7bd606f3161afe571523eaabfa8b400491010c9 name: azuredisk-csi-driver @@ -282,7 +318,7 @@ entries: version: v1.26.6 - apiVersion: v1 appVersion: v1.25.0 - created: "2024-11-15T08:39:55.782746366Z" + created: "2025-01-17T11:38:54.113594543Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: cc1a78eb68d741382945252fdc86dc38fc903bcc7448eef5753a1e663e4e6e3c name: azuredisk-csi-driver @@ -291,7 +327,7 @@ entries: version: v1.25.0 - apiVersion: v1 appVersion: v1.24.0 - created: "2024-11-15T08:39:55.781441407Z" + created: "2025-01-17T11:38:54.112448109Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8f4a2048cd3d8ef128e533c43c5b68464989e28949658010599d466b2ccb1b58 name: azuredisk-csi-driver @@ -300,7 +336,7 @@ entries: version: v1.24.0 - apiVersion: v1 appVersion: v1.23.0 - created: "2024-11-15T08:39:55.780387007Z" + created: "2025-01-17T11:38:54.110380624Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 4347271a297c6c95e10c4a880a08453c22839c95ad7db232d2d8fc38e926b385 name: azuredisk-csi-driver @@ -309,7 +345,7 @@ entries: version: v1.23.0 - apiVersion: v1 appVersion: v1.22.0 - created: "2024-11-15T08:39:55.77906194Z" + created: "2025-01-17T11:38:54.109338261Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: fc7adc9ddb406356bee117d3ba5c360408b4ee9a7decc30d34fe310d0cdd6aef name: azuredisk-csi-driver @@ -318,7 +354,7 @@ entries: version: v1.22.0 - apiVersion: v1 appVersion: v1.21.0 - created: "2024-11-15T08:39:55.77672951Z" + created: "2025-01-17T11:38:54.108287924Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 50a5c0860aa631c7e83affbaeac1a84c43c96b19175e1dd1c21cba472564798d name: azuredisk-csi-driver @@ -327,7 +363,7 @@ entries: version: v1.21.0 - apiVersion: v1 appVersion: v1.20.0 - created: "2024-11-15T08:39:55.775237506Z" + created: "2025-01-17T11:38:54.107294667Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 9f2a936be5efc45002c12d5bbbd8cb453e51a0c1668f6ceae51df656ac190c95 name: azuredisk-csi-driver @@ -336,7 +372,7 @@ entries: version: v1.20.0 - apiVersion: v1 appVersion: v1.19.0 - created: "2024-11-15T08:39:55.773909733Z" + created: "2025-01-17T11:38:54.106085663Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 6c044a33b4adf598b9810e8839f04a16b1214470eceeb61bbe48076552955296 name: azuredisk-csi-driver @@ -345,7 +381,7 @@ entries: version: v1.19.0 - apiVersion: v1 appVersion: v1.18.0 - created: "2024-11-15T08:39:55.772638897Z" + created: "2025-01-17T11:38:54.103964737Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 79474616c7373ed65bbf75050748fda16ae2f6b290d240813006abd74e733628 name: azuredisk-csi-driver @@ -354,7 +390,7 @@ entries: version: v1.18.0 - apiVersion: v1 appVersion: v1.17.0 - created: "2024-11-15T08:39:55.771317052Z" + created: "2025-01-17T11:38:54.10296988Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dcaad8438f57941c19f2269d9d4510591529f4de00353d12506fd277dc06378e name: azuredisk-csi-driver @@ -363,7 +399,7 @@ entries: version: v1.17.0 - apiVersion: v1 appVersion: v1.16.0 - created: "2024-11-15T08:39:55.770092609Z" + created: "2025-01-17T11:38:54.101990871Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 95108dce3a4da8aad2729ff8bc1587906b917925e6fe2e5935b5d25805080fb4 name: azuredisk-csi-driver @@ -372,7 +408,7 @@ entries: version: v1.16.0 - apiVersion: v1 appVersion: v1.15.0 - created: "2024-11-15T08:39:55.768013716Z" + created: "2025-01-17T11:38:54.100985329Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3da85b9206af81dc4217a3304bf14839158112300de7dbb95841e30daaf5e4e5 name: azuredisk-csi-driver @@ -381,7 +417,7 @@ entries: version: v1.15.0 - apiVersion: v1 appVersion: v1.14.0 - created: "2024-11-15T08:39:55.766651344Z" + created: "2025-01-17T11:38:54.099995759Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 89e87dead7767f8abd56096e436956b23a666802040f7aad91d5b6c36af8b098 name: azuredisk-csi-driver @@ -390,7 +426,7 @@ entries: version: v1.14.0 - apiVersion: v1 appVersion: v1.13.0 - created: "2024-11-15T08:39:55.765509203Z" + created: "2025-01-17T11:38:54.098906784Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: c109533218e0625e9ca33c2db5e73c4b550b88943f7950b33e02a344a8ff9f8c name: azuredisk-csi-driver @@ -399,7 +435,7 @@ entries: version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2024-11-15T08:39:55.764361801Z" + created: "2025-01-17T11:38:54.09741876Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e41f089e5216fc9263039310990d1e41bcb468a85879289af1834dea0c457aaa name: azuredisk-csi-driver @@ -408,7 +444,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2024-11-15T08:39:55.763219554Z" + created: "2025-01-17T11:38:54.095631976Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f35447c256488b1942342e9fcf8b6bed5f47b4ae5fb0fdae037110c5926803fe name: azuredisk-csi-driver @@ -417,7 +453,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2024-11-15T08:39:55.761995993Z" + created: "2025-01-17T11:38:54.094671259Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12bd0e1f20a2e2adcb04b6954423438d9ece7a2ad0fb4b4fe2969844d14cfb86 name: azuredisk-csi-driver @@ -426,7 +462,7 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: v1.1.1 - created: "2024-11-15T08:39:55.759517303Z" + created: "2025-01-17T11:38:54.093635042Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dd7066be8f499f6c1a396ab27c0013c09f5a8d8319cc04fbdd480d31107bb851 name: azuredisk-csi-driver @@ -435,7 +471,7 @@ entries: version: v1.1.1 - apiVersion: v1 appVersion: v1.1.0 - created: "2024-11-15T08:39:55.758801118Z" + created: "2025-01-17T11:38:54.09309565Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3d2a5189416dd6a43bd3e2097bbe23a8db347b6e1a36c6a43fd59cc9c9633ff3 name: azuredisk-csi-driver @@ -444,11 +480,11 @@ entries: version: v1.1.0 - apiVersion: v1 appVersion: latest - created: "2024-11-15T08:39:55.757737888Z" + created: "2025-01-17T11:38:54.0925261Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: b3c36c85815ea4e16f17235dda909baf6f33967b3e3fb2322253b3a17f8dea65 + digest: 3aff5af4dd2dbc92cb8f9458dd54d15104b43d1ad9e4a52746e8cf93148d30e2 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/latest/azuredisk-csi-driver-v0.0.0.tgz version: v0.0.0 -generated: "2024-11-15T08:39:55.756255676Z" +generated: "2025-01-17T11:38:54.091052058Z" diff --git a/charts/v1.29.12/azuredisk-csi-driver-v1.29.12.tgz b/charts/v1.29.12/azuredisk-csi-driver-v1.29.12.tgz new file mode 100644 index 0000000000000000000000000000000000000000..d6ef8c7c576f5718b4ea51eba06ea6ebe535a691 GIT binary patch literal 14602 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 AF#rGn literal 0 HcmV?d00001 diff --git a/charts/v1.29.12/azuredisk-csi-driver/Chart.yaml b/charts/v1.29.12/azuredisk-csi-driver/Chart.yaml new file mode 100644 index 0000000000..dd949decff --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.29.12 +description: Azure disk Container Storage Interface (CSI) Storage Plugin +name: azuredisk-csi-driver +version: v1.29.12 diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.29.12/azuredisk-csi-driver/templates/NOTES.txt new file mode 100644 index 0000000000..6a9695dad2 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/NOTES.txt @@ -0,0 +1,5 @@ +The Azure Disk CSI Driver is getting deployed to your cluster. + +To check Azure Disk CSI Driver pods status, please run: + + kubectl --namespace={{ .Release.Namespace }} get pods --selector="release={{ .Release.Name }}" --watch diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.29.12/azuredisk-csi-driver/templates/_helpers.tpl new file mode 100644 index 0000000000..51fcc8a092 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/_helpers.tpl @@ -0,0 +1,26 @@ +{{/* vim: set filetype=mustache: */}} + +{{/* Expand the name of the chart.*/}} +{{- define "azuredisk.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* labels for helm resources */}} +{{- define "azuredisk.labels" -}} +labels: + app.kubernetes.io/instance: "{{ .Release.Name }}" + app.kubernetes.io/managed-by: "{{ .Release.Service }}" + app.kubernetes.io/name: "{{ template "azuredisk.name" . }}" + app.kubernetes.io/version: "{{ .Chart.AppVersion }}" + helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" +{{- end -}} + +{{/* pull secrets for containers */}} +{{- define "azuredisk.pullSecrets" -}} +{{- if .Values.imagePullSecrets }} +imagePullSecrets: +{{- range .Values.imagePullSecrets }} + - name: {{ . }} +{{- end }} +{{- end }} +{{- end -}} \ No newline at end of file diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml new file mode 100644 index 0000000000..76df8af7e9 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml @@ -0,0 +1,840 @@ +{{- if .Values.snapshot.enabled -}} +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.8.0 + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/665" + creationTimestamp: null + name: volumesnapshots.snapshot.storage.k8s.io +spec: + group: snapshot.storage.k8s.io + names: + kind: VolumeSnapshot + listKind: VolumeSnapshotList + plural: volumesnapshots + shortNames: + - vs + singular: volumesnapshot + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: If a new snapshot needs to be created, this contains the name of + the source PVC from which this snapshot was (or will be) created. + jsonPath: .spec.source.persistentVolumeClaimName + name: SourcePVC + type: string + - description: If a snapshot already exists, this contains the name of the existing + VolumeSnapshotContent object representing the existing snapshot. + jsonPath: .spec.source.volumeSnapshotContentName + name: SourceSnapshotContent + type: string + - description: Represents the minimum size of volume required to rehydrate from + this snapshot. + jsonPath: .status.restoreSize + name: RestoreSize + type: string + - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. + jsonPath: .spec.volumeSnapshotClassName + name: SnapshotClass + type: string + - description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot + object intends to bind to. Please note that verification of binding actually + requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure + both are pointing at each other. Binding MUST be verified prior to usage of + this object. + jsonPath: .status.boundVolumeSnapshotContentName + name: SnapshotContent + type: string + - description: Timestamp when the point-in-time snapshot was taken by the underlying + storage system. + jsonPath: .status.creationTime + name: CreationTime + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: VolumeSnapshot is a user's request for either creating a point-in-time + snapshot of a persistent volume, or binding to a pre-existing snapshot. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: 'spec defines the desired characteristics of a snapshot requested + by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots + Required.' + properties: + source: + description: source specifies where a snapshot will be created from. + This field is immutable after creation. Required. + properties: + persistentVolumeClaimName: + description: persistentVolumeClaimName specifies the name of the + PersistentVolumeClaim object representing the volume from which + a snapshot should be created. This PVC is assumed to be in the + same namespace as the VolumeSnapshot object. This field should + be set if the snapshot does not exists, and needs to be created. + This field is immutable. + type: string + volumeSnapshotContentName: + description: volumeSnapshotContentName specifies the name of a + pre-existing VolumeSnapshotContent object representing an existing + volume snapshot. This field should be set if the snapshot already + exists and only needs a representation in Kubernetes. This field + is immutable. + type: string + type: object + oneOf: + - required: ["persistentVolumeClaimName"] + - required: ["volumeSnapshotContentName"] + volumeSnapshotClassName: + description: 'VolumeSnapshotClassName is the name of the VolumeSnapshotClass + requested by the VolumeSnapshot. VolumeSnapshotClassName may be + left nil to indicate that the default SnapshotClass should be used. + A given cluster may have multiple default Volume SnapshotClasses: + one default per CSI Driver. If a VolumeSnapshot does not specify + a SnapshotClass, VolumeSnapshotSource will be checked to figure + out what the associated CSI Driver is, and the default VolumeSnapshotClass + associated with that CSI Driver will be used. If more than one VolumeSnapshotClass + exist for a given CSI Driver and more than one have been marked + as default, CreateSnapshot will fail and generate an event. Empty + string is not allowed for this field.' + type: string + required: + - source + type: object + status: + description: status represents the current information of a snapshot. + Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent + objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent + point at each other) before using this object. + properties: + boundVolumeSnapshotContentName: + description: 'boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent + object to which this VolumeSnapshot object intends to bind to. If + not specified, it indicates that the VolumeSnapshot object has not + been successfully bound to a VolumeSnapshotContent object yet. NOTE: + To avoid possible security issues, consumers must verify binding + between VolumeSnapshot and VolumeSnapshotContent objects is successful + (by validating that both VolumeSnapshot and VolumeSnapshotContent + point at each other) before using this object.' + type: string + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshot is taken by the underlying storage system. In dynamic snapshot + creation case, this field will be filled in by the snapshot controller + with the "creation_time" value returned from CSI "CreateSnapshot" + gRPC call. For a pre-existing snapshot, this field will be filled + with the "creation_time" value returned from the CSI "ListSnapshots" + gRPC call if the driver supports it. If not specified, it may indicate + that the creation time of the snapshot is unknown. + format: date-time + type: string + error: + description: error is the last observed error during snapshot creation, + if any. This field could be helpful to upper level controllers(i.e., + application controller) to decide whether they should continue on + waiting for the snapshot to be created based on the type of error + reported. The snapshot controller will keep retrying when an error + occurs during the snapshot creation. Upon success, this error field + will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error + during snapshot creation if specified. NOTE: message may be + logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if the snapshot is ready to be used + to restore a volume. In dynamic snapshot creation case, this field + will be filled in by the snapshot controller with the "ready_to_use" + value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "ready_to_use" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it, otherwise, this field will be set to "True". If not specified, + it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + type: string + description: restoreSize represents the minimum size of volume required + to create a volume from this snapshot. In dynamic snapshot creation + case, this field will be filled in by the snapshot controller with + the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. + For a pre-existing snapshot, this field will be filled with the + "size_bytes" value returned from the CSI "ListSnapshots" gRPC call + if the driver supports it. When restoring a volume from this snapshot, + the size of the volume MUST NOT be smaller than the restoreSize + if it is specified, otherwise the restoration will fail. If not + specified, it indicates that the size is unknown. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: If a new snapshot needs to be created, this contains the name of the source PVC from which this snapshot was (or will be) created. + jsonPath: .spec.source.persistentVolumeClaimName + name: SourcePVC + type: string + - description: If a snapshot already exists, this contains the name of the existing VolumeSnapshotContent object representing the existing snapshot. + jsonPath: .spec.source.volumeSnapshotContentName + name: SourceSnapshotContent + type: string + - description: Represents the minimum size of volume required to rehydrate from this snapshot. + jsonPath: .status.restoreSize + name: RestoreSize + type: string + - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. + jsonPath: .spec.volumeSnapshotClassName + name: SnapshotClass + type: string + - description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot object intends to bind to. Please note that verification of binding actually requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure both are pointing at each other. Binding MUST be verified prior to usage of this object. + jsonPath: .status.boundVolumeSnapshotContentName + name: SnapshotContent + type: string + - description: Timestamp when the point-in-time snapshot was taken by the underlying storage system. + jsonPath: .status.creationTime + name: CreationTime + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + # This indicates the v1beta1 version of the custom resource is deprecated. + # API requests to this version receive a warning in the server response. + deprecated: true + # This overrides the default warning returned to clients making v1beta1 API requests. + deprecationWarning: "snapshot.storage.k8s.io/v1beta1 VolumeSnapshot is deprecated; use snapshot.storage.k8s.io/v1 VolumeSnapshot" + schema: + openAPIV3Schema: + description: VolumeSnapshot is a user's request for either creating a point-in-time snapshot of a persistent volume, or binding to a pre-existing snapshot. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: 'spec defines the desired characteristics of a snapshot requested by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots Required.' + properties: + source: + description: source specifies where a snapshot will be created from. This field is immutable after creation. Required. + properties: + persistentVolumeClaimName: + description: persistentVolumeClaimName specifies the name of the PersistentVolumeClaim object representing the volume from which a snapshot should be created. This PVC is assumed to be in the same namespace as the VolumeSnapshot object. This field should be set if the snapshot does not exists, and needs to be created. This field is immutable. + type: string + volumeSnapshotContentName: + description: volumeSnapshotContentName specifies the name of a pre-existing VolumeSnapshotContent object representing an existing volume snapshot. This field should be set if the snapshot already exists and only needs a representation in Kubernetes. This field is immutable. + type: string + type: object + volumeSnapshotClassName: + description: 'VolumeSnapshotClassName is the name of the VolumeSnapshotClass requested by the VolumeSnapshot. VolumeSnapshotClassName may be left nil to indicate that the default SnapshotClass should be used. A given cluster may have multiple default Volume SnapshotClasses: one default per CSI Driver. If a VolumeSnapshot does not specify a SnapshotClass, VolumeSnapshotSource will be checked to figure out what the associated CSI Driver is, and the default VolumeSnapshotClass associated with that CSI Driver will be used. If more than one VolumeSnapshotClass exist for a given CSI Driver and more than one have been marked as default, CreateSnapshot will fail and generate an event. Empty string is not allowed for this field.' + type: string + required: + - source + type: object + status: + description: status represents the current information of a snapshot. Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object. + properties: + boundVolumeSnapshotContentName: + description: 'boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent object to which this VolumeSnapshot object intends to bind to. If not specified, it indicates that the VolumeSnapshot object has not been successfully bound to a VolumeSnapshotContent object yet. NOTE: To avoid possible security issues, consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent point at each other) before using this object.' + type: string + creationTime: + description: creationTime is the timestamp when the point-in-time snapshot is taken by the underlying storage system. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "creation_time" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "creation_time" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. If not specified, it may indicate that the creation time of the snapshot is unknown. + format: date-time + type: string + error: + description: error is the last observed error during snapshot creation, if any. This field could be helpful to upper level controllers(i.e., application controller) to decide whether they should continue on waiting for the snapshot to be created based on the type of error reported. The snapshot controller will keep retrying when an error occurs during the snapshot creation. Upon success, this error field will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if the snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "ready_to_use" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "ready_to_use" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it, otherwise, this field will be set to "True". If not specified, it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + type: string + description: restoreSize represents the minimum size of volume required to create a volume from this snapshot. In dynamic snapshot creation case, this field will be filled in by the snapshot controller with the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "size_bytes" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. When restoring a volume from this snapshot, the size of the volume MUST NOT be smaller than the restoreSize if it is specified, otherwise the restoration will fail. If not specified, it indicates that the size is unknown. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + required: + - spec + type: object + served: false + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.8.0 + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/665" + creationTimestamp: null + name: volumesnapshotclasses.snapshot.storage.k8s.io +spec: + group: snapshot.storage.k8s.io + names: + kind: VolumeSnapshotClass + listKind: VolumeSnapshotClassList + plural: volumesnapshotclasses + shortNames: + - vsclass + - vsclasses + singular: volumesnapshotclass + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .driver + name: Driver + type: string + - description: Determines whether a VolumeSnapshotContent created through the + VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted. + jsonPath: .deletionPolicy + name: DeletionPolicy + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: VolumeSnapshotClass specifies parameters that a underlying storage + system uses when creating a volume snapshot. A specific VolumeSnapshotClass + is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses + are non-namespaced + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + deletionPolicy: + description: deletionPolicy determines whether a VolumeSnapshotContent + created through the VolumeSnapshotClass should be deleted when its bound + VolumeSnapshot is deleted. Supported values are "Retain" and "Delete". + "Retain" means that the VolumeSnapshotContent and its physical snapshot + on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent + and its physical snapshot on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the storage driver that handles this + VolumeSnapshotClass. Required. + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific + parameters for creating snapshots. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - driver + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - jsonPath: .driver + name: Driver + type: string + - description: Determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted. + jsonPath: .deletionPolicy + name: DeletionPolicy + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + # This indicates the v1beta1 version of the custom resource is deprecated. + # API requests to this version receive a warning in the server response. + deprecated: true + # This overrides the default warning returned to clients making v1beta1 API requests. + deprecationWarning: "snapshot.storage.k8s.io/v1beta1 VolumeSnapshotClass is deprecated; use snapshot.storage.k8s.io/v1 VolumeSnapshotClass" + schema: + openAPIV3Schema: + description: VolumeSnapshotClass specifies parameters that a underlying storage system uses when creating a volume snapshot. A specific VolumeSnapshotClass is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses are non-namespaced + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + deletionPolicy: + description: deletionPolicy determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted. Supported values are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted. Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the storage driver that handles this VolumeSnapshotClass. Required. + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific parameters for creating snapshots. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - driver + type: object + served: false + storage: false + subresources: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.8.0 + api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/665" + creationTimestamp: null + name: volumesnapshotcontents.snapshot.storage.k8s.io +spec: + group: snapshot.storage.k8s.io + names: + kind: VolumeSnapshotContent + listKind: VolumeSnapshotContentList + plural: volumesnapshotcontents + shortNames: + - vsc + - vscs + singular: volumesnapshotcontent + scope: Cluster + versions: + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: Represents the complete size of the snapshot in bytes + jsonPath: .status.restoreSize + name: RestoreSize + type: integer + - description: Determines whether this VolumeSnapshotContent and its physical + snapshot on the underlying storage system should be deleted when its bound + VolumeSnapshot is deleted. + jsonPath: .spec.deletionPolicy + name: DeletionPolicy + type: string + - description: Name of the CSI driver used to create the physical snapshot on + the underlying storage system. + jsonPath: .spec.driver + name: Driver + type: string + - description: Name of the VolumeSnapshotClass to which this snapshot belongs. + jsonPath: .spec.volumeSnapshotClassName + name: VolumeSnapshotClass + type: string + - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent + object is bound. + jsonPath: .spec.volumeSnapshotRef.name + name: VolumeSnapshot + type: string + - description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. + jsonPath: .spec.volumeSnapshotRef.namespace + name: VolumeSnapshotNamespace + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: VolumeSnapshotContent represents the actual "on-disk" snapshot + object in the underlying storage system + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: spec defines properties of a VolumeSnapshotContent created + by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this VolumeSnapshotContent + and its physical snapshot on the underlying storage system should + be deleted when its bound VolumeSnapshot is deleted. Supported values + are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent + and its physical snapshot on underlying storage system are kept. + "Delete" means that the VolumeSnapshotContent and its physical snapshot + on underlying storage system are deleted. For dynamically provisioned + snapshots, this field will automatically be filled in by the CSI + snapshotter sidecar with the "DeletionPolicy" field defined in the + corresponding VolumeSnapshotClass. For pre-existing snapshots, users + MUST specify this field when creating the VolumeSnapshotContent + object. Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the CSI driver used to create the + physical snapshot on the underlying storage system. This MUST be + the same as the name returned by the CSI GetPluginName() call for + that driver. Required. + type: string + source: + description: source specifies whether the snapshot is (or should be) + dynamically provisioned or already exists, and just requires a Kubernetes + object representation. This field is immutable after creation. Required. + properties: + snapshotHandle: + description: snapshotHandle specifies the CSI "snapshot_id" of + a pre-existing snapshot on the underlying storage system for + which a Kubernetes object representation was (or should be) + created. This field is immutable. + type: string + volumeHandle: + description: volumeHandle specifies the CSI "volume_id" of the + volume from which a snapshot should be dynamically taken from. + This field is immutable. + type: string + type: object + oneOf: + - required: ["snapshotHandle"] + - required: ["volumeHandle"] + sourceVolumeMode: + description: SourceVolumeMode is the mode of the volume whose snapshot + is taken. Can be either “Filesystem” or “Block”. If not specified, + it indicates the source volume's mode is unknown. This field is + immutable. This field is an alpha field. + type: string + volumeSnapshotClassName: + description: name of the VolumeSnapshotClass from which this snapshot + was (or will be) created. Note that after provisioning, the VolumeSnapshotClass + may be deleted or recreated with different set of values, and as + such, should not be referenced post-snapshot creation. + type: string + volumeSnapshotRef: + description: volumeSnapshotRef specifies the VolumeSnapshot object + to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName + field must reference to this VolumeSnapshotContent's name for the + bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent + object, name and namespace of the VolumeSnapshot object MUST be + provided for binding to happen. This field is immutable after creation. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + required: + - deletionPolicy + - driver + - source + - volumeSnapshotRef + type: object + status: + description: status represents the current information of a snapshot. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshot is taken by the underlying storage system. In dynamic snapshot + creation case, this field will be filled in by the CSI snapshotter + sidecar with the "creation_time" value returned from CSI "CreateSnapshot" + gRPC call. For a pre-existing snapshot, this field will be filled + with the "creation_time" value returned from the CSI "ListSnapshots" + gRPC call if the driver supports it. If not specified, it indicates + the creation time is unknown. The format of this field is a Unix + nanoseconds time encoded as an int64. On Unix, the command `date + +%s%N` returns the current time in nanoseconds since 1970-01-01 + 00:00:00 UTC. + format: int64 + type: integer + error: + description: error is the last observed error during snapshot creation, + if any. Upon success after retry, this error field will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error + during snapshot creation if specified. NOTE: message may be + logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if a snapshot is ready to be used + to restore a volume. In dynamic snapshot creation case, this field + will be filled in by the CSI snapshotter sidecar with the "ready_to_use" + value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "ready_to_use" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it, otherwise, this field will be set to "True". If not specified, + it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + description: restoreSize represents the complete size of the snapshot + in bytes. In dynamic snapshot creation case, this field will be + filled in by the CSI snapshotter sidecar with the "size_bytes" value + returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "size_bytes" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it. When restoring a volume from this snapshot, the size of the + volume MUST NOT be smaller than the restoreSize if it is specified, + otherwise the restoration will fail. If not specified, it indicates + that the size is unknown. + format: int64 + minimum: 0 + type: integer + snapshotHandle: + description: snapshotHandle is the CSI "snapshot_id" of a snapshot + on the underlying storage system. If not specified, it indicates + that dynamic snapshot creation has either failed or it is still + in progress. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: Represents the complete size of the snapshot in bytes + jsonPath: .status.restoreSize + name: RestoreSize + type: integer + - description: Determines whether this VolumeSnapshotContent and its physical snapshot on the underlying storage system should be deleted when its bound VolumeSnapshot is deleted. + jsonPath: .spec.deletionPolicy + name: DeletionPolicy + type: string + - description: Name of the CSI driver used to create the physical snapshot on the underlying storage system. + jsonPath: .spec.driver + name: Driver + type: string + - description: Name of the VolumeSnapshotClass to which this snapshot belongs. + jsonPath: .spec.volumeSnapshotClassName + name: VolumeSnapshotClass + type: string + - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. + jsonPath: .spec.volumeSnapshotRef.name + name: VolumeSnapshot + type: string + - description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. + jsonPath: .spec.volumeSnapshotRef.namespace + name: VolumeSnapshotNamespace + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + # This indicates the v1beta1 version of the custom resource is deprecated. + # API requests to this version receive a warning in the server response. + deprecated: true + # This overrides the default warning returned to clients making v1beta1 API requests. + deprecationWarning: "snapshot.storage.k8s.io/v1beta1 VolumeSnapshotContent is deprecated; use snapshot.storage.k8s.io/v1 VolumeSnapshotContent" + schema: + openAPIV3Schema: + description: VolumeSnapshotContent represents the actual "on-disk" snapshot object in the underlying storage system + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: spec defines properties of a VolumeSnapshotContent created by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this VolumeSnapshotContent and its physical snapshot on the underlying storage system should be deleted when its bound VolumeSnapshot is deleted. Supported values are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent and its physical snapshot on underlying storage system are deleted. For dynamically provisioned snapshots, this field will automatically be filled in by the CSI snapshotter sidecar with the "DeletionPolicy" field defined in the corresponding VolumeSnapshotClass. For pre-existing snapshots, users MUST specify this field when creating the VolumeSnapshotContent object. Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the CSI driver used to create the physical snapshot on the underlying storage system. This MUST be the same as the name returned by the CSI GetPluginName() call for that driver. Required. + type: string + source: + description: source specifies whether the snapshot is (or should be) dynamically provisioned or already exists, and just requires a Kubernetes object representation. This field is immutable after creation. Required. + properties: + snapshotHandle: + description: snapshotHandle specifies the CSI "snapshot_id" of a pre-existing snapshot on the underlying storage system for which a Kubernetes object representation was (or should be) created. This field is immutable. + type: string + volumeHandle: + description: volumeHandle specifies the CSI "volume_id" of the volume from which a snapshot should be dynamically taken from. This field is immutable. + type: string + type: object + volumeSnapshotClassName: + description: name of the VolumeSnapshotClass from which this snapshot was (or will be) created. Note that after provisioning, the VolumeSnapshotClass may be deleted or recreated with different set of values, and as such, should not be referenced post-snapshot creation. + type: string + volumeSnapshotRef: + description: volumeSnapshotRef specifies the VolumeSnapshot object to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName field must reference to this VolumeSnapshotContent's name for the bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent object, name and namespace of the VolumeSnapshot object MUST be provided for binding to happen. This field is immutable after creation. Required. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + required: + - deletionPolicy + - driver + - source + - volumeSnapshotRef + type: object + status: + description: status represents the current information of a snapshot. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time snapshot is taken by the underlying storage system. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the "creation_time" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "creation_time" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. If not specified, it indicates the creation time is unknown. The format of this field is a Unix nanoseconds time encoded as an int64. On Unix, the command `date +%s%N` returns the current time in nanoseconds since 1970-01-01 00:00:00 UTC. + format: int64 + type: integer + error: + description: error is the last observed error during snapshot creation, if any. Upon success after retry, this error field will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error during snapshot creation if specified. NOTE: message may be logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if a snapshot is ready to be used to restore a volume. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the "ready_to_use" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "ready_to_use" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it, otherwise, this field will be set to "True". If not specified, it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + description: restoreSize represents the complete size of the snapshot in bytes. In dynamic snapshot creation case, this field will be filled in by the CSI snapshotter sidecar with the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing snapshot, this field will be filled with the "size_bytes" value returned from the CSI "ListSnapshots" gRPC call if the driver supports it. When restoring a volume from this snapshot, the size of the volume MUST NOT be smaller than the restoreSize if it is specified, otherwise the restoration will fail. If not specified, it indicates that the size is unknown. + format: int64 + minimum: 0 + type: integer + snapshotHandle: + description: snapshotHandle is the CSI "snapshot_id" of a snapshot on the underlying storage system. If not specified, it indicates that dynamic snapshot creation has either failed or it is still in progress. + type: string + type: object + required: + - spec + type: object + served: false + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] +{{- end -}} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..823cc6411e --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml @@ -0,0 +1,324 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: {{ .Values.controller.name }} + namespace: {{ .Release.Namespace }} +{{ include "azuredisk.labels" . | indent 2 }} +{{- with .Values.controller.labels }} +{{ . | toYaml | indent 4 }} +{{- end }} +{{- with .Values.controller.annotations }} + annotations: +{{ . | toYaml | indent 4 }} +{{- end }} +spec: + replicas: {{ .Values.controller.replicas }} + selector: + matchLabels: + app: {{ .Values.controller.name }} + template: + metadata: +{{ include "azuredisk.labels" . | indent 6 }} + app: {{ .Values.controller.name }} + {{- if .Values.workloadIdentity.clientID }} + azure.workload.identity/use: "true" + {{- end }} +{{- with .Values.controller.podLabels }} +{{ toYaml . | indent 8 }} +{{- end }} +{{- with .Values.controller.podAnnotations }} + annotations: +{{ toYaml . | indent 8 }} +{{- end }} + spec: + hostNetwork: {{ .Values.controller.hostNetwork }} + serviceAccountName: {{ .Values.serviceAccount.controller }} + nodeSelector: + kubernetes.io/os: linux +{{- with .Values.controller.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + {{- if .Values.controller.runOnMaster}} + node-role.kubernetes.io/master: "" + {{- end}} + {{- if .Values.controller.runOnControlPlane}} + node-role.kubernetes.io/control-plane: "" + {{- end}} + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault +{{- with .Values.controller.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} +{{- with .Values.controller.affinity }} + affinity: +{{ toYaml . | indent 8 }} +{{- end }} + {{- include "azuredisk.pullSecrets" . | indent 6 }} + 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: + - "--feature-gates=Topology=true,HonorPVReclaimPolicy=true" + - "--csi-address=$(ADDRESS)" + - "--v=2" + - "--timeout=30s" + - "--leader-election" + - "--leader-election-namespace={{ .Release.Namespace }}" + - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" + - "--extra-create-metadata=true" + - "--strict-topology=true" + - "--kube-api-qps=50" + - "--kube-api-burst=100" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: {{- toYaml .Values.controller.resources.csiProvisioner | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - name: csi-attacher +{{- if hasPrefix "/" .Values.image.csiAttacher.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiAttacher.repository }}:{{ .Values.image.csiAttacher.tag }}" +{{- else }} + image: "{{ .Values.image.csiAttacher.repository }}:{{ .Values.image.csiAttacher.tag }}" +{{- end }} + args: + - "-v=2" + - "-csi-address=$(ADDRESS)" + - "-timeout=1200s" + - "-leader-election" + - "--leader-election-namespace={{ .Release.Namespace }}" + - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" + - "-kube-api-qps=200" + - "-kube-api-burst=400" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: {{- toYaml .Values.controller.resources.csiAttacher | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - name: csi-snapshotter +{{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotter.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.tag }}" +{{- else }} + image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.tag }}" +{{- end }} + args: + - "-csi-address=$(ADDRESS)" + - "-leader-election" + - "--leader-election-namespace={{ .Release.Namespace }}" + - "-v=2" + - "--timeout=1200s" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.csiSnapshotter | 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' + - '-feature-gates=RecoverVolumeExpansionFailure=true' + - "-timeout=240s" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.csiResizer | 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 }} + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL +{{- if eq .Values.controller.enableTrafficManager true }} + - image: mcr.microsoft.com/aks/ccp/ccp-auto-thrust:master.221118.2 + imagePullPolicy: IfNotPresent + name: proxy + command: + - /ccp-auto-thrust + args: + - "--port={{ .Values.controller.trafficManagerPort }}" + ports: + - containerPort: {{ .Values.controller.trafficManagerPort }} + protocol: TCP + securityContext: + capabilities: + drop: + - ALL +{{- end }} + - name: azuredisk +{{- if hasPrefix "/" .Values.image.azuredisk.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" +{{- else }} + image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" +{{- end }} + args: + - "--v={{ .Values.controller.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}" + - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" + - "--vm-type={{ .Values.controller.vmType }}" + - "--drivername={{ .Values.driver.name }}" + - "--cloud-config-secret-name={{ .Values.controller.cloudConfigSecretName }}" + - "--cloud-config-secret-namespace={{ .Values.controller.cloudConfigSecretNamespace }}" + - "--custom-user-agent={{ .Values.driver.customUserAgent }}" + - "--user-agent-suffix={{ .Values.driver.userAgentSuffix }}" + - "--allow-empty-cloud-config={{ .Values.controller.allowEmptyCloudConfig }}" + - "--vmss-cache-ttl-seconds={{ .Values.controller.vmssCacheTTLInSeconds }}" + - "--enable-traffic-manager={{ .Values.controller.enableTrafficManager }}" + - "--traffic-manager-port={{ .Values.controller.trafficManagerPort }}" + - "--enable-otel-tracing={{ .Values.controller.otelTracing.enabled }}" + - "--check-disk-lun-collision=true" + 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: {{ .Values.azureCredentialFileConfigMap }} + 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 }} + {{- if ne .Values.driver.noProxy "" }} + - name: NO_PROXY + value: {{ .Values.driver.noProxy }} + {{- 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 }} + {{- if .Values.controller.otelTracing.enabled }} + - name: OTEL_SERVICE_NAME + value: {{ .Values.controller.otelTracing.otelServiceName }} + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: {{ .Values.controller.otelTracing.otelExporterEndpoint }} + {{- end }} + imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + {{- if and (eq .Values.cloud "AzureStackCloud") (ne .Values.linux.distro "fedora") }} + - 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.azuredisk | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + {{- if and (eq .Values.cloud "AzureStackCloud") (ne .Values.linux.distro "fedora") }} + - 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 }} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml new file mode 100644 index 0000000000..21f941748e --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml @@ -0,0 +1,13 @@ +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: {{ .Values.driver.name }} + annotations: + csiDriver: "{{ .Values.image.azuredisk.tag }}" + snapshot: "{{ .Values.snapshot.image.csiSnapshotter.tag }}" +spec: + attachRequired: true + podInfoOnMount: false + {{- if .Values.feature.enableFSGroupPolicy}} + fsGroupPolicy: File + {{- end}} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml new file mode 100644 index 0000000000..fe7be5ba4c --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml @@ -0,0 +1,174 @@ +{{- if and (.Values.windows.enabled) (eq .Values.windows.useHostProcessContainers true) }} +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: {{ .Values.windows.dsName }} + namespace: {{ .Release.Namespace }} +{{ include "azuredisk.labels" . | indent 2 }} +{{- with .Values.windows.labels }} +{{ . | toYaml | indent 4 }} +{{- end }} +{{- with .Values.windows.annotations }} + annotations: +{{ . | toYaml | indent 4 }} +{{- end }} +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: {{ .Values.node.maxUnavailable }} + type: RollingUpdate + selector: + matchLabels: + app: {{ .Values.windows.dsName }} + template: + metadata: +{{ include "azuredisk.labels" . | indent 6 }} + app: {{ .Values.windows.dsName }} +{{- with .Values.windows.podLabels }} +{{ toYaml . | indent 8 }} +{{- end }} +{{- with .Values.windows.podAnnotations }} + annotations: +{{ toYaml . | indent 8 }} +{{- end }} + spec: + serviceAccountName: {{ .Values.serviceAccount.node }} +{{- with .Values.windows.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + nodeSelector: + kubernetes.io/os: windows +{{- with .Values.windows.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + affinity: +{{- with .Values.windows.affinity }} +{{ toYaml . | indent 8 }} +{{- end }} + nodeAffinity: +{{ toYaml .Values.windows.nodeAffinity | indent 10 }} + priorityClassName: system-node-critical + {{- include "azuredisk.pullSecrets" . | indent 6 }} + securityContext: + seccompProfile: + type: RuntimeDefault + windowsOptions: + hostProcess: true + runAsUserName: "NT AUTHORITY\\SYSTEM" + hostNetwork: true + initContainers: + - name: init +{{- if hasPrefix "/" .Values.image.azuredisk.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}-windows-hp" +{{- else }} + image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}-windows-hp" +{{- end }} + imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} + command: + - "powershell.exe" + - "-c" + - "New-Item -ItemType Directory -Path C:\\var\\lib\\kubelet\\plugins\\{{ .Values.driver.name }}\\ -Force" + securityContext: + capabilities: + drop: + - ALL + containers: + - 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 }} + command: + - "csi-node-driver-registrar.exe" + args: + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + - "--plugin-registration-path=$(PLUGIN_REG_DIR)" + - "--v=2" + env: + - name: CSI_ENDPOINT + value: unix://{{ .Values.windows.kubelet }}\plugins\{{ .Values.driver.name }}\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\{{ .Values.driver.name }}\\csi.sock + - name: PLUGIN_REG_DIR + value: C:\\var\\lib\\kubelet\\plugins_registry\\ + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + imagePullPolicy: {{ .Values.image.nodeDriverRegistrar.pullPolicy }} + resources: {{- toYaml .Values.windows.resources.nodeDriverRegistrar | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - name: azuredisk +{{- if hasPrefix "/" .Values.image.azuredisk.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}-windows-hp" +{{- else }} + image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}-windows-hp" +{{- end }} + command: + - "azurediskplugin.exe" + args: + - "--v={{ .Values.node.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--drivername={{ .Values.driver.name }}" + - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" + - "--reserved-data-disk-slot-num={{ .Values.node.reservedDataDiskSlotNum }}" + - "--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 }}" + - "--support-zone={{ .Values.node.supportZone }}" + - "--enable-windows-host-process=true" + - "--get-nodeid-from-imds={{ .Values.node.getNodeIDFromIMDS }}" + - "--enable-otel-tracing={{ .Values.windows.otelTracing.enabled }}" + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: {{ .Values.azureCredentialFileConfigMap }} + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\var\\lib\\kubelet\\plugins\\{{ .Values.driver.name }}\\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 }} + {{- if ne .Values.driver.noProxy "" }} + - name: NO_PROXY + value: {{ .Values.driver.noProxy }} + {{- 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: C:\k\azurestackcloud.json + {{- end }} + {{- if .Values.windows.otelTracing.enabled }} + - name: OTEL_SERVICE_NAME + value: {{ .Values.windows.otelTracing.otelServiceName }} + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: {{ .Values.windows.otelTracing.otelExporterEndpoint }} + {{- end }} + imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} + securityContext: + capabilities: + drop: + - ALL +{{- end -}} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml new file mode 100644 index 0000000000..1ebf5713bb --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml @@ -0,0 +1,248 @@ +{{- if and (.Values.windows.enabled) (ne .Values.windows.useHostProcessContainers true) }} +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: {{ .Values.windows.dsName }} + namespace: {{ .Release.Namespace }} +{{ include "azuredisk.labels" . | indent 2 }} +{{- with .Values.windows.labels }} +{{ . | toYaml | indent 4 }} +{{- end }} +{{- with .Values.windows.annotations }} + annotations: +{{ . | toYaml | indent 4 }} +{{- end }} +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: {{ .Values.node.maxUnavailable }} + type: RollingUpdate + selector: + matchLabels: + app: {{ .Values.windows.dsName }} + template: + metadata: +{{ include "azuredisk.labels" . | indent 6 }} + app: {{ .Values.windows.dsName }} +{{- with .Values.windows.podLabels }} +{{ toYaml . | indent 8 }} +{{- end }} +{{- with .Values.windows.podAnnotations }} + annotations: +{{ toYaml . | indent 8 }} +{{- end }} + spec: + serviceAccountName: {{ .Values.serviceAccount.node }} +{{- with .Values.windows.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + nodeSelector: + kubernetes.io/os: windows +{{- with .Values.windows.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + affinity: +{{- with .Values.windows.affinity }} +{{ toYaml . | indent 8 }} +{{- end }} + nodeAffinity: +{{ toYaml .Values.windows.nodeAffinity | indent 10 }} + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault + {{- include "azuredisk.pullSecrets" . | indent 6 }} + containers: + - name: liveness-probe + volumeMounts: + - mountPath: C:\csi + name: plugin-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_ENDPOINT)" + - "--probe-timeout=30s" + - "--health-port={{ .Values.node.livenessProbe.healthPort }}" + - "--v=2" + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} + resources: {{- toYaml .Values.windows.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: + - "--v=2" + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\{{ .Values.driver.name }}\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + imagePullPolicy: {{ .Values.image.nodeDriverRegistrar.pullPolicy }} + volumeMounts: + - name: kubelet-dir + mountPath: "C:\\var\\lib\\kubelet" + - name: plugin-dir + mountPath: C:\csi + - name: registration-dir + mountPath: C:\registration + resources: {{- toYaml .Values.windows.resources.nodeDriverRegistrar | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - name: azuredisk +{{- if hasPrefix "/" .Values.image.azuredisk.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" +{{- else }} + image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" +{{- end }} + args: + - "--v={{ .Values.node.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--drivername={{ .Values.driver.name }}" + - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" + - "--reserved-data-disk-slot-num={{ .Values.node.reservedDataDiskSlotNum }}" + - "--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 }}" + - "--support-zone={{ .Values.node.supportZone }}" + - "--get-node-info-from-labels={{ .Values.windows.getNodeInfoFromLabels }}" + - "--get-nodeid-from-imds={{ .Values.node.getNodeIDFromIMDS }}" + - "--enable-otel-tracing={{ .Values.windows.otelTracing.enabled }}" + ports: + - containerPort: {{ .Values.node.livenessProbe.healthPort }} + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 60 + timeoutSeconds: 30 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: {{ .Values.azureCredentialFileConfigMap }} + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\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 }} + {{- if ne .Values.driver.noProxy "" }} + - name: NO_PROXY + value: {{ .Values.driver.noProxy }} + {{- 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: C:\k\azurestackcloud.json + {{- end }} + {{- if .Values.windows.otelTracing.enabled }} + - name: OTEL_SERVICE_NAME + value: {{ .Values.windows.otelTracing.otelServiceName }} + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: {{ .Values.windows.otelTracing.otelExporterEndpoint }} + {{- end }} + imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} + volumeMounts: + - name: kubelet-dir + mountPath: "C:\\var\\lib\\kubelet" + - name: plugin-dir + mountPath: C:\csi + - name: azure-config + mountPath: C:\k + - name: csi-proxy-fs-pipe-v1 + mountPath: \\.\pipe\csi-proxy-filesystem-v1 + - name: csi-proxy-disk-pipe-v1 + mountPath: \\.\pipe\csi-proxy-disk-v1 + - name: csi-proxy-volume-pipe-v1 + mountPath: \\.\pipe\csi-proxy-volume-v1 + # these paths are still included for compatibility, they're used + # only if the node has still the beta version of the CSI proxy + - name: csi-proxy-fs-pipe-v1beta1 + mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 + - name: csi-proxy-disk-pipe-v1beta2 + mountPath: \\.\pipe\csi-proxy-disk-v1beta2 + - name: csi-proxy-volume-pipe-v1beta2 + mountPath: \\.\pipe\csi-proxy-volume-v1beta2 + resources: {{- toYaml .Values.windows.resources.azuredisk | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + volumes: + - name: csi-proxy-fs-pipe-v1 + hostPath: + path: \\.\pipe\csi-proxy-filesystem-v1 + - name: csi-proxy-disk-pipe-v1 + hostPath: + path: \\.\pipe\csi-proxy-disk-v1 + - name: csi-proxy-volume-pipe-v1 + hostPath: + path: \\.\pipe\csi-proxy-volume-v1 + # these paths are still included for compatibility, they're used + # only if the node has still the beta version of the CSI proxy + - name: csi-proxy-fs-pipe-v1beta1 + hostPath: + path: \\.\pipe\csi-proxy-filesystem-v1beta1 + - name: csi-proxy-disk-pipe-v1beta2 + hostPath: + path: \\.\pipe\csi-proxy-disk-v1beta2 + - name: csi-proxy-volume-pipe-v1beta2 + hostPath: + path: \\.\pipe\csi-proxy-volume-v1beta2 + - name: registration-dir + hostPath: + path: {{ .Values.windows.kubelet }}\plugins_registry\ + type: Directory + - name: kubelet-dir + hostPath: + path: {{ .Values.windows.kubelet }}\ + type: Directory + - name: plugin-dir + hostPath: + path: {{ .Values.windows.kubelet }}\plugins\{{ .Values.driver.name }}\ + type: DirectoryOrCreate + - name: azure-config + hostPath: + path: C:\k + type: DirectoryOrCreate +{{- end -}} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml new file mode 100644 index 0000000000..9843386d6d --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml @@ -0,0 +1,266 @@ +{{- if .Values.linux.enabled}} +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: {{ .Values.linux.dsName }} + namespace: {{ .Release.Namespace }} +{{ include "azuredisk.labels" . | indent 2 }} +{{- with .Values.linux.labels }} +{{ . | toYaml | indent 4 }} +{{- end }} +{{- with .Values.linux.annotations }} + annotations: +{{ . | toYaml | indent 4 }} +{{- end }} +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: {{ .Values.node.maxUnavailable }} + type: RollingUpdate + selector: + matchLabels: + app: {{ .Values.linux.dsName }} + template: + metadata: +{{ include "azuredisk.labels" . | indent 6 }} + app: {{ .Values.linux.dsName }} + {{- if .Values.workloadIdentity.clientID }} + azure.workload.identity/use: "true" + {{- end }} +{{- with .Values.linux.podLabels }} +{{ toYaml . | indent 8 }} +{{- end }} +{{- with .Values.linux.podAnnotations }} + annotations: +{{ toYaml . | indent 8 }} +{{- end }} + spec: + hostNetwork: {{ .Values.linux.hostNetwork }} + dnsPolicy: Default + serviceAccountName: {{ .Values.serviceAccount.node }} + nodeSelector: + kubernetes.io/os: linux +{{- with .Values.linux.nodeSelector }} +{{ toYaml . | indent 8 }} +{{- end }} + affinity: +{{- with .Values.linux.affinity }} +{{ toYaml . | indent 8 }} +{{- end }} + nodeAffinity: +{{ toYaml .Values.linux.nodeAffinity | indent 10 }} + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault +{{- with .Values.linux.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} + {{- include "azuredisk.pullSecrets" . | indent 6 }} + containers: + - name: liveness-probe + 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 +{{- if eq .Values.node.hostNetwork true }} + - --http-endpoint=localhost:{{ .Values.node.livenessProbe.healthPort }} +{{- else }} + - --health-port={{ .Values.node.livenessProbe.healthPort }} +{{- end }} + - --v=2 + resources: {{- toYaml .Values.linux.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.linux.resources.nodeDriverRegistrar | nindent 12 }} + securityContext: + capabilities: + drop: + - ALL + - name: azuredisk +{{- if hasPrefix "/" .Values.image.azuredisk.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" +{{- else }} + image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" +{{- end }} + args: + - "--v={{ .Values.node.logLevel }}" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" + - "--drivername={{ .Values.driver.name }}" + - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" + - "--reserved-data-disk-slot-num={{ .Values.node.reservedDataDiskSlotNum }}" + - "--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 }}" + - "--support-zone={{ .Values.node.supportZone }}" + - "--get-node-info-from-labels={{ .Values.linux.getNodeInfoFromLabels }}" + - "--get-nodeid-from-imds={{ .Values.node.getNodeIDFromIMDS }}" + - "--enable-otel-tracing={{ .Values.linux.otelTracing.enabled }}" +{{- if ne .Values.node.hostNetwork true }} + ports: + - containerPort: {{ .Values.node.livenessProbe.healthPort }} + name: healthz + protocol: TCP +{{- end }} + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz +{{- if eq .Values.node.hostNetwork true }} + host: localhost + port: {{ .Values.node.livenessProbe.healthPort }} +{{- else }} + port: healthz +{{- end }} + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: {{ .Values.azureCredentialFileConfigMap }} + 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 }} + {{- if ne .Values.driver.noProxy "" }} + - name: NO_PROXY + value: {{ .Values.driver.noProxy }} + {{- 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 }} + {{- if .Values.linux.otelTracing.enabled }} + - name: OTEL_SERVICE_NAME + value: {{ .Values.linux.otelTracing.otelServiceName }} + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: {{ .Values.linux.otelTracing.otelExporterEndpoint }} + {{- end }} + imagePullPolicy: {{ .Values.image.azuredisk.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: /dev + name: device-dir + - mountPath: /sys/bus/scsi/devices + name: sys-devices-dir + - mountPath: /sys/class/ + name: sys-class + {{- if and (eq .Values.cloud "AzureStackCloud") (ne .Values.linux.distro "fedora") }} + - 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.linux.resources.azuredisk | 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: /dev + type: Directory + name: device-dir + - hostPath: + path: /sys/bus/scsi/devices + type: Directory + name: sys-devices-dir + - hostPath: + path: /sys/class/ + type: Directory + name: sys-class + {{- if and (eq .Values.cloud "AzureStackCloud") (ne .Values.linux.distro "fedora") }} + - 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 }} +{{- end -}} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml new file mode 100644 index 0000000000..7ea860c7a2 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml @@ -0,0 +1,98 @@ +{{- if .Values.snapshot.enabled -}} +kind: Deployment +apiVersion: apps/v1 +metadata: + name: {{ .Values.snapshot.snapshotController.name }} + namespace: {{ .Release.Namespace }} +{{ include "azuredisk.labels" . | indent 2 }} +{{- with .Values.snapshot.snapshotController.labels }} +{{ . | toYaml | indent 4 }} +{{- end }} +{{- with .Values.snapshot.snapshotController.annotations }} + annotations: +{{ . | toYaml | indent 4 }} +{{- end }} +spec: + replicas: {{ .Values.snapshot.snapshotController.replicas }} + selector: + matchLabels: + app: {{ .Values.snapshot.snapshotController.name }} + # the snapshot controller won't be marked as ready if the v1 CRDs are unavailable + # in #504 the snapshot-controller will exit after around 7.5 seconds if it + # can't find the v1 CRDs so this value should be greater than that + minReadySeconds: 15 + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: +{{ include "azuredisk.labels" . | indent 6 }} + app: {{ .Values.snapshot.snapshotController.name }} +{{- with .Values.snapshot.snapshotController.podLabels }} +{{ toYaml . | indent 8 }} +{{- end }} +{{- with .Values.snapshot.snapshotController.podAnnotations }} + annotations: +{{ toYaml . | indent 8 }} +{{- end }} + spec: + serviceAccountName: {{ .Values.serviceAccount.snapshotController }} + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault +{{- with .Values.controller.tolerations }} + tolerations: +{{ toYaml . | indent 8 }} +{{- end }} +{{- with .Values.controller.affinity }} + affinity: +{{ toYaml . | indent 8 }} +{{- end }} + {{- include "azuredisk.pullSecrets" . | indent 6 }} + containers: + - name: {{ .Values.snapshot.snapshotController.name }} +{{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotController.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.tag }}" +{{- else }} + image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.tag }}" +{{- end }} + args: + - "--v=2" + - "--leader-election=true" + - "--leader-election-namespace={{ .Release.Namespace }}" + resources: {{- toYaml .Values.snapshot.snapshotController.resources | nindent 12 }} + imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} + securityContext: + capabilities: + drop: + - ALL + +--- +{{- if .Values.snapshot.VolumeSnapshotClass.enabled -}} +kind: VolumeSnapshotClass +apiVersion: snapshot.storage.k8s.io/v1 +metadata: + name: {{ .Values.snapshot.VolumeSnapshotClass.name }} + annotations: + # This is what defines this resource as a hook. Without this line, the + # job is considered part of the release. + "helm.sh/hook": post-install +driver: {{ .Values.driver.name }} +deletionPolicy: {{ .Values.snapshot.VolumeSnapshotClass.deletionPolicy }} +parameters: + incremental: {{ .Values.snapshot.VolumeSnapshotClass.parameters.incremental }} + {{- if ne .Values.snapshot.VolumeSnapshotClass.parameters.resourceGroup "" }} + resourceGroup: {{ .Values.snapshot.VolumeSnapshotClass.parameters.resourceGroup }} + {{- end }} + tags: {{ .Values.snapshot.VolumeSnapshotClass.parameters.tags }} +{{- with .Values.snapshot.VolumeSnapshotClass.additionalLabels }} +additionalLabels: +{{ toYaml . | indent 2 }} +{{- end }} +{{- end -}} +{{- end -}} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..84cccdf733 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml @@ -0,0 +1,199 @@ +{{- if .Values.rbac.create -}} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-provisioner-role +{{ include "azuredisk.labels" . | indent 2 }} +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: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots"] + verbs: ["get", "list"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents"] + verbs: ["get", "list"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create", "patch"] + +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-provisioner-binding +{{ include "azuredisk.labels" . | indent 2 }} +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-attacher-role +{{ include "azuredisk.labels" . | indent 2 }} +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["csi.storage.k8s.io"] + resources: ["csinodeinfos"] + verbs: ["get", "list", "watch"] + - apiGroups: ["storage.k8s.io"] + resources: ["volumeattachments"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["volumeattachments/status"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create", "patch"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-attacher-binding +{{ include "azuredisk.labels" . | indent 2 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ .Values.rbac.name }}-external-attacher-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-snapshotter-role +{{ include "azuredisk.labels" . | indent 2 }} +rules: + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents"] + verbs: ["create", "get", "list", "watch", "update", "delete", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents/status"] + verbs: ["update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create", "patch"] +--- + +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-snapshotter-binding +{{ include "azuredisk.labels" . | indent 2 }} +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: {{ .Values.rbac.name }}-external-snapshotter-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-external-resizer-role +{{ include "azuredisk.labels" . | indent 2 }} +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", "watch", "list", "delete", "update", "create", "patch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ .Values.rbac.name }}-csi-resizer-role +{{ include "azuredisk.labels" . | indent 2 }} +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 +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-controller-secret-binding +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.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..ae7e080af9 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml @@ -0,0 +1,28 @@ +{{- if .Values.rbac.create -}} +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-node-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-{{ .Values.rbac.name }}-node-secret-binding +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.node }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: csi-{{ .Values.rbac.name }}-node-role + apiGroup: rbac.authorization.k8s.io +{{ end }} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..8e4278b6f5 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml @@ -0,0 +1,72 @@ +{{- if and .Values.snapshot.enabled .Values.rbac.create -}} +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-snapshot-controller-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents"] + verbs: ["create", "get", "list", "watch", "update", "delete", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshotcontents/status"] + verbs: ["patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: ["snapshot.storage.k8s.io"] + resources: ["volumesnapshots/status"] + verbs: ["update", "patch"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-snapshot-controller-binding +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.snapshotController }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: csi-snapshot-controller-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-snapshot-controller-leaderelection-role +rules: + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create", "patch"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-snapshot-controller-leaderelection-binding +subjects: + - kind: ServiceAccount + name: {{ .Values.serviceAccount.snapshotController }} + namespace: {{ .Release.Namespace }} +roleRef: + kind: ClusterRole + name: csi-snapshot-controller-leaderelection-role + apiGroup: rbac.authorization.k8s.io +{{ end }} diff --git a/charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..1806e9c586 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml @@ -0,0 +1,16 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.controller }} + namespace: {{ .Release.Namespace }} +{{ include "azuredisk.labels" . | indent 2 }} +{{- 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.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..dcc2ff60b3 --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml @@ -0,0 +1,16 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.node }} + namespace: {{ .Release.Namespace }} +{{ include "azuredisk.labels" . | indent 2 }} +{{- 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.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..7cdaad0b4f --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml @@ -0,0 +1,7 @@ +{{- if and .Values.snapshot.enabled .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ .Values.serviceAccount.snapshotController }} + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/charts/v1.29.12/azuredisk-csi-driver/values.yaml b/charts/v1.29.12/azuredisk-csi-driver/values.yaml new file mode 100644 index 0000000000..b5ddbc4d8e --- /dev/null +++ b/charts/v1.29.12/azuredisk-csi-driver/values.yaml @@ -0,0 +1,293 @@ +image: + baseRepo: mcr.microsoft.com + azuredisk: + repository: /oss/kubernetes-csi/azuredisk-csi + tag: v1.29.12 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v5.1.0 + pullPolicy: IfNotPresent + csiAttacher: + repository: /oss/kubernetes-csi/csi-attacher + tag: v4.7.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.12.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.14.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.12.0 + pullPolicy: IfNotPresent + +serviceAccount: + create: true # When true, service accounts will be created for you. Set to false if you want to use your own. + controller: csi-azuredisk-controller-sa # Name of Service Account to be created or used + node: csi-azuredisk-node-sa # Name of Service Account to be created or used + snapshotController: csi-snapshot-controller-sa # Name of Service Account to be created or used + +rbac: + create: true + name: azuredisk + +controller: + name: csi-azuredisk-controller + cloudConfigSecretName: azure-cloud-provider + cloudConfigSecretNamespace: kube-system + allowEmptyCloudConfig: false + enableTrafficManager: false + trafficManagerPort: 7788 + replicas: 2 + metricsPort: 29604 + livenessProbe: + healthPort: 29602 + runOnMaster: false + runOnControlPlane: false + disableAvailabilitySetNodes: false + vmType: "" + provisionerWorkerThreads: 100 + attacherWorkerThreads: 1000 + vmssCacheTTLInSeconds: -1 + logLevel: 5 + otelTracing: + enabled: false + otelServiceName: csi-azuredisk-controller + otelExporterEndpoint: "http://localhost:4317" + 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" + hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting + labels: {} + annotations: {} + podLabels: {} + podAnnotations: {} + nodeSelector: {} + affinity: {} + resources: + csiProvisioner: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + csiAttacher: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + csiResizer: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + csiSnapshotter: + limits: + memory: 400Mi + requests: + cpu: 10m + memory: 20Mi + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + azuredisk: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + +node: + cloudConfigSecretName: azure-cloud-provider + cloudConfigSecretNamespace: kube-system + # reserved data disk slot number per node, driver.volumeAttachLimit must be < 0 + reservedDataDiskSlotNum: 0 + supportZone: true + allowEmptyCloudConfig: true + getNodeIDFromIMDS: false + maxUnavailable: 1 + logLevel: 5 + livenessProbe: + healthPort: 29603 + +snapshot: + enabled: false + name: csi-snapshot-controller + image: + csiSnapshotter: + repository: /oss/kubernetes-csi/csi-snapshotter + tag: v8.1.0 + pullPolicy: IfNotPresent + csiSnapshotController: + repository: /oss/kubernetes-csi/snapshot-controller + tag: v8.1.0 + pullPolicy: IfNotPresent + snapshotController: + name: csi-snapshot-controller + replicas: 2 + labels: {} + annotations: {} + podLabels: {} + podAnnotations: {} + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + VolumeSnapshotClass: + enabled: false + name: csi-azuredisk-vsc + deletionPolicy: Delete + parameters: + incremental: '"true"' # available values: "true", "false" ("true" by default for Azure Public Cloud, and "false" by default for Azure Stack Cloud) + resourceGroup: "" # available values: EXISTING RESOURCE GROUP (If not specified, snapshot will be stored in the same resource group as source Azure disk) + tags: "" # tag format: 'key1=val1,key2=val2' + additionalLabels: {} + +feature: + enableFSGroupPolicy: true + +driver: + name: disk.csi.azure.com + # maximum number of attachable volumes per node, + # maximum number is defined according to node instance type by default(-1) + volumeAttachLimit: -1 + customUserAgent: "" + userAgentSuffix: "OSS-helm" + azureGoSDKLogLevel: "" # available values: ""(no logs), DEBUG, INFO, WARNING, ERROR + httpsProxy: "" + httpProxy: "" + noProxy: "" + +linux: + enabled: true + dsName: csi-azuredisk-node # daemonset name + kubelet: /var/lib/kubelet + distro: debian # available values: debian, fedora + enablePerfOptimization: true + otelTracing: + enabled: false + otelServiceName: csi-azuredisk-node + otelExporterEndpoint: "http://localhost:4317" + tolerations: + - operator: "Exists" + hostNetwork: true # this setting could be disabled if perfProfile is `none` + getNodeInfoFromLabels: false # get node info from node labels instead of IMDS + labels: {} + annotations: {} + podLabels: {} + podAnnotations: {} + nodeSelector: {} + affinity: {} + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + resources: + livenessProbe: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + nodeDriverRegistrar: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + azuredisk: + limits: + memory: 1000Mi + requests: + cpu: 10m + memory: 20Mi + +windows: + enabled: true + useHostProcessContainers: false + dsName: csi-azuredisk-node-win # daemonset name + kubelet: 'C:\var\lib\kubelet' + getNodeInfoFromLabels: false # get node info from node labels instead of IMDS + enableRegistrationProbe: true + otelTracing: + enabled: false + otelServiceName: csi-azuredisk-node-win + otelExporterEndpoint: "http://localhost:4317" + tolerations: + - key: "node.kubernetes.io/os" + operator: "Exists" + effect: "NoSchedule" + labels: {} + annotations: {} + podLabels: {} + podAnnotations: {} + nodeSelector: {} + affinity: {} + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + resources: + livenessProbe: + limits: + memory: 150Mi + requests: + cpu: 10m + memory: 40Mi + nodeDriverRegistrar: + limits: + memory: 150Mi + requests: + cpu: 30m + memory: 40Mi + azuredisk: + limits: + memory: 1000Mi + requests: + cpu: 10m + memory: 40Mi + +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: "image-pull-secret" + +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: "" + +azureCredentialFileConfigMap: azure-cred-file diff --git a/charts/v1.30.7/azuredisk-csi-driver-v1.30.2.tgz b/charts/v1.30.7/azuredisk-csi-driver-v1.30.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f4df61018b50e1d9265fc6ff6e52a311a39b4988 GIT binary patch literal 14749 zcmV;OIby~iiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ{avM34H`;&eDG>C0VS7hKQnD=f@*Ky8MpCf%>=K?-&2=@4x8(uy=6ya_{hP@5RekKlJxr z?!WB+0QxH_z2S+tfb56<(q$DJ_mw;_#2*mjn34gQ?(M)Z%>3-W=y&&bJj7jwL!n+C zNqzy6VZbpZ0%C#~7z)bZ7=be)5F0@kfoI3Vv**eCOFtT8vO{2i2EfK~JJVvJ58W@{ z%VVAYQ|L#CuS@{c&;Pww{lop@{C~N>x1Il+cyIv6Xs`po4dmzwg>(P{mvsZ|GRo;l zbX^+kfOOKzqyR7!QjP^>vjON)&U?4f4Ppcd#3di~a$Kcy2slnBw|o&szJE!5?9K+@ zY;;b=B|{t$u>*k1@g<{EEF}VB?Mjr~8>X2uWxnk8yL&B)JQ4!BlX=R6CP${QgYIFg z!mbdOQyj6?%s=Tzo|e%J#?bP$Q2r6 zE*PAnl`^vtLJo_w=c};SRD~Um*c7|y$aQH%ge=@;2nsX+f<*{C0e_t!qW<0mCM|$E zF$Z_p_rVP^Sv)YJ49sZM1w$l&pkM@jjsPCXm*5T(^)li}{$_yQk*+L{62YkNBQ^kv zQPSyKngbvbsC$ z2D-)mmyO8l0XsXH{z^Vq^_wK;)5trfWQ4~<pfPw!5HP|S|gJOe%CI{+X8Z+vvk;An*1caXrb?63H%$i2U$Obo!QS3mx^qd4Ek zF609sMPGmf!!Fk;_W$#+e_)@c69j!RNt4OEEFu@=9poZgvU+KT@Y06_rJp>^Wu1?v z5c}{3`&i6|NSsp-@ifsixSoY*06Lu=05UT4uaw;)c0FMTdVB!(`f}pMGOzrxuSjuz zEWcl0zda*E@gkv{-0WoO)!U# zYU(tG^Uj-iM5jKz4=EFfof0pkn1})BOoRvry`E29=uapYgM$})uVl*w^$~+o%jLQT z4!A|L0qCgt#i)$nyG9e*Un4!{dLh8NErUrSeUSk$5&0FoV46|=Wde0iG9N z0TPHM)xyMOC_qF&e*m6#%Q05>z>p%ILHp|(2O zymuMh_}B$%HtqsQyd;}7`A|UjR;PZR^q=nZH;hK1R4uKQI{ojn;q}@18*p_xym)_g zdvu@dzVtH{q>hgT@7AQjH)$Oc3C5V-gn%#vG&xqi-xMPoy-%K@`MtmyV3Gt-DOI7f+?JEeqyybTC1l+R!pj zs$PPs3;+`@AaM~8vk+wl@|m+Id!;1RjoR);T+rY>N9<^flm;yoz9{}Zj7B4TKLDMJ z;n0~NKj_5PqBnGS^2^&q8dtDDr}KDAT6l~gi?2&EvupP5R?7uny0roVQ4OrraoKsW1&$8DPj)kRN$2T?!?M?wwN4p57w zkHi4;^zKS9IshKJ!H`&+r$6n25%MU5No_6>8(o9~2l#iW?dqm-`g3eK zQF1`7T=Dl6Y?EY5SG7U1?h_W<41|b{E*TwRA4xv`JD~*qJ+u6i5tRx+Jo~gA=860q zv-gOC5u<_rsaFui^ay%#GD+28V;c#X;wXN#6R#+kA@3w&n2gQl36t^Jn9$_)={<5I z#SlhLWlOq7EXXWK4hW!dC#UxzL!76hl73ekKRMfT@3XtRb1KeA;j3ZY!dppiikXO@ z@1!%Ju(obg{jM}LJ_3#Za2bvN4ik^wahvRlIQp4#amlEQI8P4XGRB;0>E_&FQY+z} z9uGcFA^Yg#n~&z@(=|-M4T(6}+|}EG3dR%47qysd#n59BLoXMast3!6q2?lA)D^jI zF{BFGQ6>a);IB6XO2gmTdGZ8Yp%G$8DU%dXf&gV8pbP=7j1Alz2t*ut;BJD5+BM3h zUu~ATB*D;VpjEm-ua}=y9(8$7Kz_@6uCfJ03^^h7)UHtpyq=`zC}K{?@DvIZpBK$~ zJ5QeMs85%X?`!LawlY5fj?ut7Caa{PtK8YykqV1Xp?BsXBFuzweT;}WJ24vO6Ywhy z^)}!)a5hp~kE5d#07JEZm0!&12Xi3jcq~=%KphEq02{hey^*_{?AApf0*R1Y7WvBc zBd#q0QgcE?YECA}*$KGAVxp4GSE?!E>_o~qLrbg5il2@dQYoST6ZVm|!MuZEVqs#) zbEI;%MP__cj}`wRP!Rf1Al^H_xIP_r#l2Xjj3)foi^IJF{^Rh~%U4_c$0nZZNo*cD zQJAjb8PKbllu~1}Ve?Sv(;4!lSXbxVMnH9UcCIOKC&<06AQDoK11_M5_$~;21UUjM zB7+^Hc)G#|jzePO^y|-`LH7!&blt>c4ZeI)YNjIQINT^AuRAad3ksQ}R3ZYteCYtk zxs!UzR($23hWY<#g8UFM-WB2EP_TyizjyHRpfLYm9lku+&i_q3pFj8h159x+P&$TO z;H9SiI*{GsPS61SNAJs*ogJ0z^ge{dQ>q6sKoF&^D73Ij_xZD9ERdj+a8_3)?f@tK zuI$HMjWSjfwEICL4rR)VDPjzJ2>c;;gv14hFVvqn(6&a`M@nyQROP5t~C#B;ISq20>d z37S@wsr&gTLH3$#vWL2S(o@5iOKO_rq;KM!f2flhDUv&X?tspxj-pi_2&q^ndjUBd ziRNBA6k)2cr$dZK340W^dhq2-S<_dU7$jp`dg)n>B^@7il9W+7SNl2AXi9L zLPJN?DRm}$I!Ed|U}~dY(E){2Ej!~XuA**hfQdS8=lFNkW?g~Armp#QGV_?!*W_?# zSRpgubv&%NeTaWAGI8;JQ_ZgnLt}xb#3o_nft#5nQC06x%cRPkp8eXg%IDS9%`=Xm z$uugaOgh{ol>&*Fxr^oAg?7QEHbW395D*h6q&&l;#E?2tDJ2_1S47bFX9-a=&|I55 zWRe>yCWR^}yo|m6f&xT%#L|-xl^-$$)UlK*Q~(6s37}$vSQq@o)aBj#;k6V$x~|9r zA;Xku=L0w{h#kyL`>Q$ahDOA**0Opm=bAdnvZ)UMD2PiN81iVEgX2Xbh zi21XuATf(2(6GhoW@Q)cTqBOlA9M>mXwX$omRzi>bW2)5j_T34f|yYeG-!^y6BNKf zdQwP^F3&!^80KDseD@W23UdIJf&XbTZPmUCVaX;&SCQP4@8rzsS<>B93ix#GFhXn> zP?j*hpfU+VPNhUvjshWK0_V@@GHPP(b9!tM5)N#z8DXvZqMzQw` zYdKGcKz0}=BgFI|D)mP#^X3rV9ChJTrX;)?-2_-9oX(ZlK301Mr5lExQjfqH0mm>v z{xRfe?E@ftnme*%+YLdi_g4*p{GMZf4{@bMxD&{rD-e@&&*gf;Cet@rvr*y z)c+CyH1W`5H0YLy0&uOE4kKSNIu3$JC}LDO+bFE*PNafrrn`+GO*_1+dsgmfqyXVO3bg8bgUpe31yOa-ogDSV zXWfN`E|%k&(bF}kAbNw8;kvk+O#F%Bjf<4vmTjDkaX>Zm*ppWXfcUB0rnF#`%Dfef z0xQ~+Tg=<<${;E4>1>Tl^@H-jRSl8ZT2|22?gVrECC46 zrHza#QECo1HZkI(kpKkyauQ=>O455cy@2YIrTi{8<-&;DC;Sl@<0&HXskSP90;dQB zkuPxQr<8St^99&f2TIahA!3;`@vb(p6y#nau=KpPO$(SWceg-7+d0zZQEpMSVAcpK zTO}g_?&98qoKqL8B{hcv(6TezzwJgpL(d?VpvY2=E2>6C_K5@8>=dRu~remaPJc8I)l*fo5W$2MYQYwmFpnTXY zG>wjJa9_&Z&4d;ZiNGqTQJ_u~C1Rm~wA9LzML8`=EWKT>QBQS(j9#y`^@uUKR!HTN z1&P4~TK0$fIi^JF2XZ$MabszjCHu@9B<|#3v^Ahu_a0pKE00_kaXyNC@a$$LcQe?7 zM(u%OJ~K_B6uno;nPr}X8#I!P6>(ie$>3tLRw|J7=9eZ(U7x#!z_vCt?b57;4RgDS zW;LyyjVv?^o?KWYqMN6(+g`>5swrb3swQzd>i$f3sWx5IDmXJFy5Ric`qU=2uPK02 ziaiig&avDsaO6fzqc(Yj_%3kkSlU|C`Iy|!))vC6W^^z&v(F*2^5oHu!oIKF6HS>(WlBD_*(bsF zcH$yF$;NdO`;3SfF`Hhs)OGS}RL4Sde06yYTWKgl95w3Xj(pmjL0o9VSMsW>?7(yf$SVt z!~BRb${M&{rHR?yhg?bm!%3zsyOsvy5rAZt+m0n}cN64?a-|d$M4?np zeKbXWhB5gw+(lg**(~HdP5)ey@{o%?Bxk2GNs9@ZWvs9QlL@mBE?#EKKOK9m`a zd{m(u$dL*RqNKqrRHLUl#=7-T4nN9RVV!%L#cvS`C9^Um3zT4y+FS)u>beo*@i62k zbz)9>AJSxDGIL6gUe&fVQP_P17cfHwi1Q=>LGj6}4JK*M?&~1|v7em45*5!0v6$y7 zw$W9bDA_KVmu8iXYgoOjlaEiwV`QAoabk5MX3QWafFr`Oz*CgfJ}pZSXtu}*>k?Gz zFj2q!=wZEsJlkz{qe8RnXsmUO=^;fvG)R~@TRf|m%9^RrX7S7{ zL8`i+1pO3oWLs6*uATKOWsQPSrvX${Q&-9=xmqlpjSHo1MG(7Mp}WHsIt$k!?mE{j zLLJLGYb6Q-1Pv5KHV_lUi$@l9t7;jIlkJKG^-yN)+R0Mj`h-kzKidH4u=BlMkP^0! z2PzBjsGSKmeR3H!Qn8p-=Ru$&TlVQ@CJ=A0LuTfIh3sNFWHJvd6dNnqI1B6wP?Z9y z;y-Gx&}ZhA18HMsGFA|6aq0a0RR89kAMEddH!F|p8eW){`0p#Kl|8KfBeVu|9bvM z{NvBhpFex{>o4!#Twk94hM)iOD~W;2Sfo{qjA7zf7 z_leJVW^`=JWZ7Qks4m*6%%%1241Kdt%)W_kN}+{}Sxq}%Z=sQPl;C#>iTv)NkXs1k zh9HnDg+8th^0-Q<bWGSb4mE-(m>6x7m~RG@a6I_ z%cTL8YlKcd2wrhnbmA(oh|41nm&O?`iz-|phHwpt!DaD*%cB9mC+y#f(SGZ~_kF{N zzUA?ID?sb51e>=s67Oqex5tF3TNQ$CMR>X8(Q(UT;Z}ltTM^Ff8%MRR1jDvGVr_YR z+6vHUtH7Q;Zlu{Vn6fQ;>@lOqR)7^-2{P7vtY`^l4@s(oX$! zDbbj!_~KZ757>t|B%OS@jaS$luh7*7#I;8)Owlh@p$k=thWLf1wwkXjQ4HOrl;jtx z4{aFdF!2qKlN%T23vQUfRcNW0!%&=LUp1jgPLMz>P{(`mj-<+35^p)ggwbf6ht=Aw zpsCqe-7Xkk%7FzpmKhrYK_#@nQSuiQ=G$xgWNG)~4YXzYD>=wXuUyot1GHE^vZhsK z1Cd%U*Ik^!NtBLoj^c9M24{D<5^;S_VXXGbqAa*J2x3w;^T+3K7Q!e?8Zrb3C20hH z?-3v`3Txapz?Vf&E?g5@Jr?F>MDbH zNl!z6gX;<6C@ZFD2>%(W+tD&;ip92KR((r-$ZD4>@L_4|weo0m-tSe{-6F5ogS^%Z zv<&=OQCJlQdy&1!Dt90&-*-ID-NqK@9rx+FcNCkD;q&YoR<%!9%g$gGdx394`+wB> z{?>)zE79q{dM&>FS60Pv<%X= zZd|$EuV71F>2iNOJd4+jn2QX2L_uRMidZVQ=XL5Ct%@cv9^fpGJ) zJygJc=@1p5Ly6;Ie%rAf+a#_I_4D%)SRslB2ir5x?Xk@x+~PHOspp*3)5)aqq_sAo zLT5F*nb-{g)d==F^H!-H%_goEYg78vnsVAGQWlykF^<{lx*~Jgyxq{kfMy}NB9oeh za(g4&Pn5;*VHGk-ZbGq^`4+l~y`c=+g^{2E6o!lqVSGG1t05^60~~wEg<0HjUMudH z0`(;Is&8y^DbwdUp2cfj+u&rwt$1XLn*}DgS{tNL>2S7!#>f zK6|c_;UjCPXf+)@J8r z8q8P;EBUmb_N_lkN!t9A*hA&4~SEI!d@qP@ofI7@KtDD^6b1MpE!<5 z+Ryf0O~Oak4mLJB`McBd zoZ0fiw2H)9X6QBM9rc<-%&?F=7UF^YJMYGFH=!BGfTf>eUuvcO%Mmd#)&Bjj|NRs8 zk)8$r{@4GJQs>|Q`rm)?seAkHfBm1<0lD*N5F;FQ<(_g~TZOc&5fWy7B^!&%c#& z=Hbx@sfZdJsc?B(CD$tpw2|bIJK4=Tx8BGVS`l%P3X~w6vRClp<8p;8Q?e!&(iIvN zXXvFpw4F^$bJgcALU|W*^PSfnLK+FD95LE1{f5ZM!n;VTN3Ns*w$J zc!P8l39BF9e5&rQu7nDd)z1D{t@SDH_Dn#UOm!zP3{iXS#6o#deWl9S7C$-uJGwk8 z!raVIT6c?$E4ON?vVu03{q$_43u9?4ON{hTB(^(%2^R=@HEI$8hzQJ3GP+uJX$w{+ z9062#E5$_M{~KPM_ukM7l6t(L3Im{A?ofb;*j4gFM>JBA1BdcUH-H3>5Eorj24eiz z{okt80m;1R9tNS0cH@J%LVamgGupqpD|Bpf@#} zr&1A+$_es)C*J$t!I|uZc;HMpSI9&yw126x@MB0#w3n$HNsN%>40DLss+$y z(fEwSoj@{9;th@>5izt_h=#JIIDRY^=3#*ub$3ZG_A+G-nD7yFY=5u0Lk z*Sn+a7L&0fS<^A0l6q?W={-^ZEZi2gfVFK(|#p&;!{TkCh|1bW(&i`(@E2UrR6e>sf*vS|LLar-Ml=r4oCUj}u* z48DGgq@TNSTO|D!Nx#L+Z!z;*%>3iK|GU{l_TAnAo80_|%c7qj2iEzK zUjP01vjY(Efb-?c&JWwC{(-+o40)K}IxfeKmPkE;f>43Ddh%r^NpdYmcLoE$Z5jQ3 zzkhgep#JUm`-OjB?DY>1e%L!We7SdcxcB1as~`INFZNy@`~dpvZMuFUE+G4%zjRr} z#(gD^o@ys3^yw@>L=>)e33+e2m%FP)LtQ_A2Hg)DvzK8CWnBOAWhZNmR7tOpk03|g z)b9A@%g*P|029}bJOnxkk9B=`gM8irUGRspx)TBRb!tbi!IpA$9z#=R6!dQ}@KXv0 zF$F0X8i-{sqtR{2-A>c8fEd%pQ0QY9@~R$-zw44X@{udzeQN-PJ9(>`77I`qhRuB+ z&t5|%8N1f~eW>ZoQKWuk`|&7Ac}Ll;PoZ}viDEJ9YS7}@Nshd%NRqURP1;_>(ExOW z)SGkkTMS@Gy|-D0Fk_Wz;E!{#LrA@&B1fo-7r3Ii6i~oA7P<=uaEvY^-yb5EA(1Jn z_$60fRqlK>N*$1K?v4-PaCKmQw2xuVC5i%#6qdc?Y>bER$Xq<}m7`{2f!hKqX9cmP}{2FYH+V zzVsnMEsBiK4nmo}w&aju%CMNF_!Oh2I1(ljrij-qJhB+pXUotep_n_13vUgN=~@;dQlKN|hzUc`Yj;cPC+f!FKB0C6{WK!liFvQM3L;m_@zb?g1#JG69*Uu$F zWLjhd@Pr!1O;g}DI!0K^ENz5V<|sFdXLabXB=u#c^d4vdDycMdpu`_?MRpb*fV zw3cE=Ci%)mn4PdymLy3R7hX%3)=q3$g-BZw6w8{u{k~1wY)06$k~J|8H4B=YOxW*R zghD|k96W?fsFw&Umj^M2J-jf;MzO1v2MO9CnI^+D>#AhK9EA*8XPaAQtiKlRWJz1G zu^G8guO5{|*5=mon%OCz>WRJB+|3N?!%ts^IR3r$QhudVuY4u9(zPzFamvNl@g>Vz z?aZ^ziA_w$r;fgL-_aAp!6f3yQ9y~;>R9J#DMNlgb%k6yMNB&moZg2}T?zgZ#D2t( z((j8DQuSp2;5(V>hJzk4cPt3f;buavafjoIu(u4M>B;Ej*2861tU`wkK~My$jc zPCP9FmvsZ|GRo;lbX^+s;4SaDZYclfz(`QJUyHaHXxnyoe}8Xp@5k_VfEH~DQ_VzrgYtBysi zgmYC385Pu}{s3GbU#_1m3R5Va5{bRKjg(J~+bfmu6=ch@HchyoWM8(VmUiT6m6)UB zw`hv|3iD_zhyV2KczE{d^!()V;_Up|W;YIyVA$o!y3y~d|ErMOCbfmT4LJ{UDHV^SVXA@(&R&W1>w%N%yn)4&n45LJ+y2G_H&!T_zYCX!3DnN5fTbF^%; zz56s$&N3rBcDOo!af(DTHBiZqRcd`$b3QlaRE=&)zQ*dVLwz|BN6dj^M1-a7I?a2I z*pWn(Rp_t`*pvp=olb_1e$7$26Sc7xNh3*77 zLimnx0jT5@&W~l<>+82?WN6$4D&~=5W+Q=}K#SlCy4FR}O1406sZ}LkQ!0=z$-9_T zb*oHrty7pPdld{cLGG;zE#~+Uaa`*A>J-3oej+6rQ+}X-(lFJ*YikeP3kHwan3pxM z&!6M0e}I2RRFt$otI#YhsjU~)ydbllpqM0uZ~3*>taJn|rZ%^#YMn-FtG7<^dt<#z zy_qX0->W0NwZ5J(#3$7E2H<7xyVU;QAW_sALahhKHCk$up&=v#kZdiAWi8l+Roji2 zVz%;@%>yP_VCbJ9AI^*{8Gsjg7_r%BC7<{5pF_kj_3W9etrP$A{_6D8@zv?c>G}29 z(c4cyoxMG^*(!cw)DjU%OWt=d`~}Udp)M@&JEh4SGo*l1(Ekbh=r|@*?mhY3qS-(( zf#n+wb$E$PV8~({v$~7j3=) z)yt#npDRp@NVplF=$@(~m*uE}yZ_*n%rSDURRC+{FRoADej1)$eKEinBWrGB0SMuq-3N^@1QP3G7k21K~s%D5g;camciv@(YxaUGgu!xJEQiokpx_oEej#in7@S)4qK>+1{Ufve>z=v5sX{ zti}}2Ga*)1oodE!B-StsG7WubpOx*ix@Ru`FQcB#5zo9C0J#C*$@*YC^a$5K zbIpI{igJgENAI{J7nG1u7jfPo5$fmv-pj)mhlTn7^3~z1?fl=wW0)Nh4?Ig8_w)$I zyU^$0Sw@$MKSmt=EL9540mq4_i<(`}r2sIlr4R*_4ABCfrEyUnKi{NdX*TtiVGwLuyU#q4W7z$`P%t=!*R9biTIUo2KyUS}ozcnf2wXns*roz`5K) zWwnlMzJiwO$LUh4dwtNt_fjpU1;@+9T@6>|vKfCgExZUb>RV=_0JbqXV-uG_;L8R;q~de_>eN^dz_&oJM*~4aZ-N&8o?~7;uLNU*HSKY z9rn};Bv&V-cZl%`^8GHlw|MutrB~w0z2%MiNb8{70n?0@0_g77QT{(xLG3J87R)Bk%QSYFx z;%uws?#2SjEN9EIAbe{br5E|VidW@M$2u-W)~&#VEkRG;YCK?5pU zT?JYoy{SN{mTIeW+7Ig*@m1qxAE}B_C2|u=dWN(V zv^nst+Q_a9b}Ol2@AaRa<>#U;>4NB0<6EUIl8%o9Y(s$RRNABWtxRJl#*mK0=g4ie z#sqSo3Wr2NsgL5cCs4o>%x{N273Wc~IL1~{T?e|hn(#M=t5r>%15s-tg*v}eQtmSI z@qZ|(=p%zh&Dw7rW5BJ7zA-j%aqKxGMgs>2c>u2}c&q{9XD4!fI(v6ATnG#suMN#e z*lz@V7Y~Fb%_>oNt5%4%*u8HZySENSG;8~x?k%RNe#7X(QjOIN+zVfR&_jtexwfsFI=WAlnuK+2M?%2F|EW8Pw`5qLtyU@l_0VfOslrNE;b4AP z?_mC-Z)bw_O1Q^#i2h9+aW{t{i+QLv4q37Y$~rS$#UgDMq1=3*9Qzia~)Ju;|7wHmzzK5T&xTj0YM_^<^&fUj~FY@*VrC8w5v z-F9K_>${&hBkqJaL{4csXUKf~*!?IIeavLTJ~Br?g`DLg)c#?SLR7{^@@D6=NC75m zA=eWiCWs@oSaSdwO0Fqar%xUjQ3hNZgiv4|Rao6#KYPj$h-9!Bk7t`0o4T;aMrbc>Ul>Doc!DIeYyu%Jln-jAc1v(}2!jR5Gf?tn-?E z9%l%vhPhi88maX}ZasS|XCf7hVi)YY@3 z>r|DsSxD;k+2Aub{&()^Z;klh7ccq;1^n;ctG$CQ{&y2kVGpe%RhnJ%Dlohz^yOv| zyt>fk@w=MNcZl9CkJ@^%yXErqQ?&3b z2B4F7bZj2{6+nd(LTdsF7dk1i?ih?`T2%3i4cS`Cov%iz+fpqfiRDuo*X$({NfwXr z*!+}7tuBUp)_L3Fl2yH`Mru8nWFt$~g-A}T{uuGd6}_=iO#0(QJGY4;zr{K~()%}y z30hpIIoIKJ`Hstadz+p$TNLpYMLZ|prx#9_k}ZdwjXAhx8}SH$!=6u3n{$Yh$-`FM@*YErfwB3g;~Xc8h>5r(X{O)=TU_m<#?|VX@HkPmx^B&w+SMai8!qx}#&PDDHJl*NN7x9@cu#4}dKfu>tt2z0k)Q^($m}ihVTB+%%Ow z%kAVgb8~6k#@@PVW;BFjwT~EpzhFG$eaI`?Bnhd{s})h(J7FLBov=j%QWKWe0(WhRN}Jza zmsiFcAZaziX7MU6RD%jxvvfx#Fvi8IRcVT>uh>%8chEj{-vkEU+BUT$qXq2%{ zMOMk)7Ufz5ahuZe0(v3gyuE|CM6CTC#9K(}YMvJO&-k)cCv$1}Tp-Yf`+r~U^$pKx6?FXhJsr<2Yp{vPooUT}771i`G$JDT3v_1-PT+sQ@=HDe<^01q(&Yg|Z?eOuSsV zoB}byTw5LhpU}wnWOc_%hhjiXAd&x(L;_5%WZknz^Z@Wyh~8nu#%KWg>6;wJSKG<# z7~b^)aN7*b#06p-Luh6e`xU`7>x#(YV$Dd} zz^)I20bO98RH7@YZ?4Zv>s3H5<}Yh7Z|=Fl8Jn)tQV}kQ8zhja7A_I?pD3I!J9939LFgl36na0P}Z)bf>J(OlvGQqoVJ>Fr=UzW z`u0a9hg&PKwrZprP;U7F%JKPH>J^xSy9pG)LnBNO*UCmbd{P^NU_$9_7yK2A35|qK z;A4W6L$x9G4|*dhxs-71A%;8>cbM_6zo(gZ^QEYya8AQ&?{0cz0d3>&>jH$9nH^MSYZ8 zO;u_bi3w!}NZNKiRXNRSb#&3P!7bZ_rih3Iy3n*H>CAjI*E4j%F9Q7yh#E`=1Bx2^ERWJDL2cP*ul9-UyGrD7!uM5**17f?hG zR0)P}B7u0#D*U)4?}G^5WFmjJQa3Nk973ZvUR8A- z*;u3M{Z`SM74Y1Ajfz+D$Ins=3|2e7`usUQgna1pl5g#q|NL+MAixdy@4Xj?#rVJb zhx;$K=YN}c8qWVVD$iBmj@63rrOm8sI+uE&#YOe-dX|-JAl8j6C@HsW*O0}Zw(@@& zC!hxTfAC`OWzqlV)!yM&{%_(j@*fhf+6QPO;E)O?n}0o6%-pdBZ>-ePu{DNo))>C} z0#|xEx^N|0+w|6|PTAzriq)rTN1~M~Q_7dN`vv{~aPM$$tN(A}DY{z~Y{jXvUkK=D6*2WL zRP|=)^*H~}b9qp^i-SroURBvNc?Wy>3jynD(NtrB2y9bhovyLyEIEsx&(_W7J9w6n z|7}kK8s+~%(f)t%YJYqG-$tGXlmDr`cq{q0l7IU=&@;dMpZ_GFLH_q&yf`fC|NZUx r?`EEP?Ejlv9IEUP?UstI00II4QQgMm literal 0 HcmV?d00001 diff --git a/charts/v1.30.7/azuredisk-csi-driver-v1.30.7.tgz b/charts/v1.30.7/azuredisk-csi-driver-v1.30.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..9c07ca6b182e9d03c4d5c68cb02b8e6350c02abf GIT binary patch literal 15069 zcmV<3IwHj%iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ{avM34H`;&eDG>C0VSC3#Q5W02Jjb!2k<@OTwk3rq_v~!D zj|Zwsk{A_%8UQ7U?RLaG$oIY6JjoZh)E!kU-Xz)0+MTvo1te~XL?ZK-0RAoJ5D;CpW;i5676x?i5eL?^f~jdcEGO{eAs!uh%R8+uPmieYdm!dVhC+zqhxu|6OnA zylz1!1(0Zg#eC6y<()_j=veTLB24lSt~9 z2Z~>iVi~7}&eLQ4>N6_Cw=n4zCfQa?c#OK`!@i`N0 zD7!wJY@uw@s-y^Uh?pRf@o67zGauyj_Wkd!sB_il*yhL;w%>i- zs;~Bs2CDylfoxiYO=5v= zNf@Fluvr2$WE@Rd+(iSBNHR3Up#VgN>Lt3xRKJV`sNWp1TiR9SF)BF=L*RX+86}$z z=@(C6^aP#a2_QB^16vPUX+<#y{4UB4-EA&Y}UMu%iH0H1?A%?Nt>qY(u`eQFV5ANokKpeLq6f);XN z$Zn4(k(?f8dHQC^w-5q~uR^%wcsL~fdra|2^;hy$7T%vTF8k>9>+iqc(wrX>AB#TP z-9l&rk`rH;6ubZVs<-c+renaN9B0W?ULMmk`W_3JFIm5|LwFuy3fZTC2vz5U8%#oc zMM5H{1CXaI0FfoSnOsgI=%Y?&3!$70{VU_wz%R!fa3K07=fBJ-*rdzzFGhwA&~ z<+~F)0H0Cy)!R``WTSU*17RP%RGoPzIX>Vc(MP}hx`hyv5MFZZ6FM@@H@zKX)ih}= z=bg^t5tI7(E@E5)Kc+#%2$g-*8A}=Ux3@#)<8aJ`?Cl3R|6Kmw#BbcB2shk=qimdgVr zmNOf_M285ep6~iBz`^ zAOv5x%upH*2_1PrUbQ%y#bSV%Rw|6kNIlStD$!V(`5 zaXko`JdG!P{ZYh`67&DVXr^P-tmXFW$Si^cO(sRg(5Dd0&u&*spc;_$ z@sav%vPGEV2}s~+wFvb&On^!p_R-UhnlYWH=m|>a1TyBKJ~H24ppLFZ2R$<{(A5+L zFvM{v_4dh_4A0}MkoZW?#uo_FAkF4XK9JbIHmRSd{bxG;EoX70)KzDtj{o~)aCvh2 z7F`?<&OTfm9;3GxXCKbdvy-7#21Eot84?Iyq`Z}G`h;X$sSy;(F(9EfJ4vBvq)J6t zAp1Krgg(#sTG(nyJW_3$VA)4cuVK3L<_3p5FRo#_tNz-3YFID`h#D3g=D2Qa2w27( zGP&`?K({yLr=ZfCv>5Qy-9=MvxoGXWowLm5NliTLC{7l1)Ac;0GhnTDemA;^g-r z9uCP}A9c2-k*0chM6RV3;r} zKP0kOIEe1a_$2bQ}!d^!*kAtBm~8$f2WMX-*d}59Wu4RC$r1gZl0*m3HuHi z8ge!QXC|&wvrWta0rfKPUy&PjtCu{j3`TAAK!r=>jAfN zC|}Yg@JVjL@z4ZIe|&rwaS$RKmF&CT#i`j`c%R?BoicesOJ6N(mfk9QH-yU=hhE0v zrM2^3)$3a0{hshQ!L;|CgeG1J_wO|?L-Ud<=qn6D8Zf{_CMZW z{xKw1AMMMhYnXthNy(ULRYtSRibb4i?&@tvC4&nSi&{iBV(77mp_dEI)cs||(Ci}j znu=Vz7}6zeX&Zq>2^fuEtMFS}PoAI)7y<{aEi%L?AjZ*zaX>;_6NL35!~z0zI|iz^ zg=+2ByJ4Y7a2WQD&eq@FE>5d}`C?mQaV@rez1fdBco7TqwonVaZAH)1#Jq@;8!RDl zGEKL)o;=yopU&ejH0BLsntp;jt73O-Rz<~BxwEyUG?tLz;3NPl?Tqn50#u$HSrzgL z`h`VC&;J#j4E5gP;NS@1NN-Tp7wap%V{MX*Aof7`z)$9HJ4gTXkp38A! z$~e-PuE7a1E0Yp9BfI$uAPU(O0wtlfpWDis?$*{NL;e{2>lz{v3j`7p%UHZXQ3zN7 z;xX-SStZh!A@V$$7?R(7{*1a8pwo3z^D_GKMXQXOnCA(rRJ`fnC@Lveic*CL`tqfN zJnvTN92-egd}hr5Ph$up;G!#|#i3v`=Ks$A%l*>)fBkBIXEXorj~QZ*&q&8%Cj5boCJV=SGzmvqgQ+SPckufLDcawVn74^x2d4rKMom3 zV+bdij*l8@XEGU*c88@lMHSJK*gE^D;}S5=JXW9buBN4234o?9qt!S+e@4k%tafO( zHg}4q)n%G~K1h+hHk<09t{89Y;VUGyP4cogNzUK3S4D~B&YwG|^Qoh0RR==p$f;Vd zh9gzN8;2swbnk44$uMP)vVxAje5oq!Iuplq1daJns@JP#q8vZD|Mb3mdFZ*ij%SAa z_j%yuooowXf*a-k&i<>ty%PR+cW3YQtBw4>kEb-l(s8y1G(8JF&)dq!3E+spodl{a zH{I*+jm+8Ex+XN}qeJc7xv--52(%@MFuFAXi32Qgzhu2KzUB;RI0CBW*;P!!0C+*5 z-SoQOTemTeh=-$yvl|GC^3Pi8M1OmGMC3TW>iTR__D`!8aEimcn_OE6wqLz^*-1c) zgwabf0U_}u>LVJ5Vd`yjC=wl_>q7Tv$rOeN$` zj*st%FbSeC<~Xd>PJa_)#tmpAF;d>x4}^~55c6`jErf*6BIu)37Z0`&vZJA?csVcT zIVV&CKU6d_Lues<E0i{$eJL4j$qG{`dQ0*EQ!NdGhM-IWl4C5DJR`%@COXt96&qq-#yAY8DN#Gn!k9c% zk}D?1r7CD_i@W}kA)q4WnO8&S#~hG$G3i1j0_=|wlVjjr^cP!~_a6qAO8l6*LVzMp z7&pNOcvKQQMA-J%bJ`V)Y2d77{aDU5b<$-u zf;7N`6aeYmuM|)%zS-qN(*5ibLa3G;p;Eo+1uf zs>C!$&jw4P_exD6bjUIf)riPMJ@(mT5>q0l25?WVV#&DJ4&VmDZ9zsJ=Kh#S@MX+l zTj{pC>Qt-9-AV8ywPidl)U`4V&7&2_h7nLYq+u$P)wH6zBwrj4E;9_A8jN!9m)3HT z4T0(~LWjW3AZqnTFZ0%+ZoO6{lPM{$##a*}Q%)CJY#-`9gVqhBK&waSgrY+{f$$Iu zSo;8|o)(_!*mgsZ=>2s=puQK_KLDY%2!D(@_9bvN_k3X{Y&w0@MZ45zS5qq?oE_ot zmHLeO5J|CZW$U&P1nGWAJaO$Ivgg8TJ>6n&xaETG5Y0qY?|h+KET<(XO`%o~t^QZQ znrVa{XOnJ)C_$@^R@UatHN2!; zJBcE6?xIwyVOxbY+lkar&2_gGq*;e|P0y+wjS?V2#1o_XUV-&a*AUe{>(tegxUEYI zT_VSGqi1SRL-Y!?;kvw=Ok;nNjf;}tj%}QaaZo+;xRciifaIy&rnF#`+PpQ4f@|7S zSj^k+$}p|&>0FJ=^n>ca)eVu|TGr4tBN56DxXMX3`898fNp^~#^gEm9*K6PvnHK&p4M&FUt(V4UMmo758 zM5Q@gxx`2aLy0H})g&g?lw|gBW&t&xrQ$9(2S&485%8Q(ylYG>CApUhEHkfN(*hUEeNiG|>>SzhsJ5s^FdHzGtCF!q zw@L3|A(&6}l3G9k7}=Tc-*%&)qi4ZKSmr4w71g7n`b1;F5v@MHiF`;)t*bZW@ z1g*6fi0V&9%2$|$|Inl4LwRoDn+r2biA2^rq!`6 zgiD8}*`ozyDzHjw6lxMhsaPnXCXMpsP);in%WRh$)Kilnr`H>8J?31k6-v3}lhj~> z9s5J`95Sl(1GO87g|)Oy(|zU@$XhiSZ4D^Sy@yc!Dq`OUA%<~?o?T7VZiWQdsy$fF zXQnBYV)iNpv&?gJ1w+MHu`oqc3@$cntpeF>ewihyn{&4i*v^J#U7EMB5#d(RoTjyt zp@U{A>Wauzbc;-OyUQ43J!Kq3^(4+lJ)D{@HKvP31!oGfi%!ojk6mK>k|BJmj zS=q0lA&Kx7h)As}R7Hw0HW{(vAe_pXbmX)RnpK^UF})Q2 zde_h%lWNwqt1s-5A11t(20XI8w@K2saSs z7*jkWUFf>V=F#I>`sa#N06qyo%}#BSmSdRatgw>M7*NG{t9c0%&51@I%8f?xRG}*@ zKp*0vrNK1Pqo+H@x%JS&JK9*`oO_1FuK^;(tX#_iEm)K`S3{Kfe#}KO48=*Env*_6 zEM1uFoHC?O z>n#@fZgU$IX3LJ5wQevyWXOjZ5++NSQ^8sQFEi1s>UZXP(uE~Z1K^T0uIW+i9N0=EKGr$FlS9}QO+ zpLy*-x>#P1g5{T-PelVXPR}$*Lrkz97;SelGoy^(DOHu|S&~y})0vvfZ{%odg-T|q zOEAsaZtDg#&C3W&37q!P|NrdcpMUqB|JSo;zx2HS{PoYzK6dpV|MC34p8uZw`1AAU z&z}AA)BCrV=f}U2=fD3#Fii?(WW8NEA4-|iFhZ{n-UF+kR=W&)`<&`38*@DB-z{KG>bHxS5sf}tA#dRfy4&i_{3P5@@fVo2@+6W8Z4-zLo!I2K3**1;AhhP2|74G z$z#9Fa3_Q~_&{#dvUiI))qXX5CW6MDDbf+6!Y+py@!ZmFE6i-9p(uDa6RN2Ss#JcB zQWI!`^%O|jmak{AIKt>(4V^yf)P#I&CuFKv&#cz}k3L+yo z5jy!Gc*SMWiL1aOE{{B18fUmHs&IuE!ZjcUm&FGzj|TiBVgFW)_FEUe?;A$+Esx(@ z0a|Y**u15YcwZ~KJtj=ust|N5!pkj>j$0lJw-V&rig0eJVn4w?ljxN+GW}IJWYisz*af+dzmXiL0=A#Xh z9QJ&}!}Rim`3^VC;VO(&EMO>(@~>v0Nsd4QpJ?}9vLmUpmLyvaIp!=L6=Ah5D`;kR z);9qr_iGR-tYyZ9K+p*taFpU@g2nc_J~`U`cn{jL{gpa$vg;Ae>VO@VkGyGB+d!1o zD@+&Xa1s?4&OuU+KO@*(twh53DXi6ATa=|R20=orX8yzv=O7Gu(wGCHjAkeB2af=G zQCj0R2Yfm7d+1ohH)`>JVMgxJO@l+5WhjoF!jMkeyb=|HZlHIgYtqLy{QCpSSg_i_& z^0>hbK;uc-ft0%xHhXD0vK2$77n0U7VtTDe1rTmqV^ioJ8)F)TT5ME~oO5tp9f)Id zI^JW2J5}!;HcwvRsxwB`nhuH(n{4UULwOBT&y3>)M`l}GV!UKIE)|y}q^~kamh|lC zZ*(~Z0eLaSBK*%-Uv!p3Q!KU>bLw0ALteXFK@3aVsFg>f^ZrqF-3{`3J;-arK+C|d zHHB4Suou~jta1mk@_onS+-+=d-btUXdq;5}GJKw0!>aZPYuOpBVlVJbX#bB|-`|8V zd?h;lSFgpl_qA-iD-Z8oF*5uf+$%XVQmuoZLMk?^VuM^==~-eX=Zd`}n zuV71F8*+a*I7!xxgo`YEL_=d8idZJM=MC!CZCTQM(r{dW)}xCs@U+@j5HdOv%N%Y{ z@330D&TYW!WwUvLWw&hAu1Oa#)K{oBv}lgTm~gmdTeMtDbR8O+b6QICb@^m%50$WA z=7zHfg9s^Za}SR*16WVB_=LxNRQc7H>wBdLc+Xn@k2z+GrChb=K@K z6So1N9>LyZ-m0`?wu!67+LS$wrkpm4l!N9qw@9`S&4)k{5b8ULZTAkV{iM5t0KpFKCo z@S*dlXgwVR8;xE+J`Mf4@Btx7L|4H~@Qm?nXZqYx;hJfT7_S`rr)0@LVj;5=(s0g7 zSj(p+wQv2WlqBu{QJd6T#4Qywln%Af@c~JSPbBE%FP<$vHL(h_mpnHwsV6zdBEG2N`hmQxZ$9wSP4t_Dr>Z|LcGMKteFH z;NSoHKT7KS`(OY2FCp`<|NXE3)A~T}A{xXBM^m|{!qhky+fp217sYhUOU!^N!eKPV z_6&=8#QI_{yS89dUM10T(B}lIt6}(ksF*aK;D)g9v~g7(^pgYu&KN}aJSc?$e@aDGyT zx!Iv~?iOdR+`6UO3Oc*&rzb;G7|+hKBw&UjwcQ~?g#;Wls7Vw7m4rh&x<+;x3s&wp z0<7^?nu*Z=H#j@pe#>e|n(@N=7yun|2NR(3g_a-YL?eB2;6Q!pPB0}y5VC8_04{#n z{k2XVP|OQ=coK#1B5}l}Dp)dyh%nueQq%&^v7xd(fFhP08h)#rtCmNlCt_>C3&}O~ zQAZoVvub`;-2cUO;fH#jnNtEgDpAK&E;Wzl7m}=!#(2QVXaw%NACTQ9>GPeQE0Ipr ziku@s?O{FX5?!hEFT20i*0|VTY8{6=v}?BLM5tbRZfB&JQi<Uvfm^rmO? zjZy@ZaspxKC42u{JXO7r44ggA6?56ht?3beXGdp!Q!~X-BbuCXH6%**nFGI?RSRUy zqKS{hA7eU7&l?=ZGUl+@5e-#Kaq>7U#%00rU^ds5jic?(DSVpuv^6%a>FiH-1N?@- z?e;C>*MyEd#hRWyDrsAhfRpDxscF=;h@Kb#!h4}-^K zp}AVS<*hr!uLdQCTu3ogckG{6Rm&Z&od>!SxL*1DgWnH&I5^20@?F)fnD#e!gwAz# zT51@nF@G0NQ7hU=z@EaCy6-bH2>L+DopWuYOn}eyA&ZJ4P@e_nP*F?~q4L#!7oAa^ z|3!irn<&NU?}7Uo(?9<&@xM<0Zo95H|4f}}p;SSXI==ItuX|o^$LsAlDE4}N{r~90 z3U8$8@O^;9TbN z<n2O;KgdTlNY-9*I99TBs_NSLoZ0%jBWa<7pun~0ak9PzR_nPp8U zvsji{>TDK6V`Zna%o&yR6~!WLPDC-!=Gcg@JErJsjv{&>m2-1^PRq!irQ>*35Vf2RCngKHjnD9!2uXTIGqnWX|^mI;0NI)hx63}<=FH`gv2$FSe_6zroCJF!PV^{_oi)vOnw{;6XG3v`A(!Wyt z`8S6)-`u|aZ6e6mdiVC6=Gy} z+m_Mm^?I-N_w~QMUa$1;-tOM3z3+DRU+?ek@Avk0_P^`x?(OXFe}{VOZMu14Au<21 zw{%(M#(gD^nQBK6g={(jDoaUxLP5!e8N_mz(U`UrZl`HkK!R!G5QW6YqOQl1@1`UHA^0-cw@$G1$M1C05&?>% zXm;Nxv)58d$F6mMzcO^@DAGKt{bZP?yk-14WH>lcM2Vbs4QTP?s6bv-Bu&~SHtlvS zppQCI>CFZDEe0@R!Mi*|*s;nr@cTK~A!5NnnIm+?OI$I#6jZ`Gj+v0BAXVGzdN`LP zD_JeS#D@c4Z(L8y^Rf6jM=hg3Spb6qujy5{VDV+5k3vG@yT;zhQ)=DaNW;x}OwZ_{ zA$1;N3UAbCYY>9^@*WEb+`gk0+#wJQhuUE}M0lw0lA0!NF#$$9v0P|P4+1@tQHVP3 z{!M9o`O-n%=cto!&n57Q=w!XtC^Rxc34ho({WN!7&s3N@{TT|aq%-am9p(P3O=P;V zwq}MO4k~Xm)$m9ghX(!_f;c2}bTXnWeSLffek?2AnMzNV6>-l9xZ^vu-4xl~U-_pb zQJPwxlPOsV*D&qtns}UrP`npxJ8`~5D!ap|!y@2V%@A~~p=-|C0Sz1_&!~54Kw8&$ zf`$8Nm^rIj;x&XKP8cV0njx6%M#l5a-Cdr~iOk&vCBTn$21X^^$!z2V_&%FN=bQ~m zar0%i5f?F)WCBMfu%uD8NEQMwi{0GIImE6Vk?QIf#bG!ApM$Jj0yAVleure#Af+B> za7Vsn$9;^&Ifo&+L!IqT+B7o3Bk1~qoM$A{3j89R4A9Uh=L2jA+S6ILWL=1iT zQu)?IyFV+n#3LmJw^GT|u0E?PGe2BN-$XGIWoKW<^M-(B%)uL}4a%EK7O{|xrh1`x z@gt**pZ|OTeu&A$cm&@Rm57v%-r59#52a}LI0}LUz+4@l5i(E_6!Qp zOO(gDJ`|D@UwSe>2##b*ig`F9-ajMp=4G!b#Z}COe6!PYCDNW1PlpxV;Lw}kyEl8i zNj@Ran=;4P$UQT>CAp}rcYUOGx$1vi!Tjr7k{f&6cT8o45hv=ci5^s0ON33KiX2EU zAiS`qX7_Y{_EP!f+8Wq|rAdQ+N7PEGo!#P$sg=s=@o|K&NJyMvEu2Nw_4(l4JEz3M zQeuDHTHGDjcz!k5+TPb4=)rr2=ZHN1>wS^Ub%kYr0ZO; zlaz~V2TPW<+WG99Y4+O~`y4s%(At z2B6r~G2l>+&l#7g^{&#zwiKPxix`(RTZ@^L%Ux**-@MsJj2f8FtlfHpp)S#ljjDjmP=NQJ@(YcI zc@=k!sdZT;uX6)B2^XpsaVDA1!alk@JYPRsl%`NJB~rV38!4X|;a4i*Ysgk*ZI*CB z$-Zn!E$!Vmbz+W<-oXuoHD=sI4*%)d;o#)c@#)d|*~#gp%f3AU$%!x0b)(nS|5qco zZE6R1TXF#rN;G)*Mu7Av3!u&hWK$m8U=kWeoDM*qsvK_8Hxo}zBd8&FGr62bHHLBn zY*JjB&uq`rus8;nk04~Rj?5a8ktejD$SV`c)j%gd)TxbA>2z+&nZDhUe1mtuoGa(W z0=S1qK&7MYCd~%{{6M8}6Ur!fA|4LOor6%EkQnF`ZbCQ=*{uhYNKOkqP-i4m$&Xd) z!>s9btRaNwV}A^ul%Z$iO=>wsh(ne3^77pY9oX2Ent7y|*-BtDr1Y)0*4mZM4ZoPJ zHn*y3lSb>Rw@LBa%z9UPvrtg6SBGW~emUkK#w-l_=w;!%(*ECqEb9!B(Sws3Ew#xo zkf}aOw-)8H7VN^h?M6Z|UwOyoflwj|4v!$jQ!7jQXs?J_xBIO0^G@+|1e~zIow?pR z@jo9fjz1k<93LH@UY;Dh`}D)fyJMHF;s?$g$8Q!PI%KiUaGZHJL*W8l{KB zA4mv?37Kl|sYl~k6caeUvB;cdk~@X8+{V1_;x@y?l-%{Vx9c~%)d^}>EFI~5uJ#G2 z)2Yr(Q-L2ZFV6>`&M(gX`)}^@t1DrSZW{?UqlRrNIDh?CQa#FMRqpg`zN#e@+f}SM z5#FAC8XW!f>D}4ePw$R@K7QA>OwH48+2H7>cbP`*>VUk^QtAlm9H^`ViT!J>pVW4P zso?SH&nFjWr|*wXFZEPCKe+s{#naLWjxMTs?I%kF6SRN5>@6#yeaI(MB zBC98PMYAWBL9-s|1KAj#o^ca#x|Q$!_01|bo6c-Zm1iAHvcSw)S#|1X$V_50rc17& z4;^y#sGhmv|E$I|Pwd}!Gvohyy_fsDrTD+y-Thaa_`myj^5K4!8x*!obl~CO#9q$Q z7zkLjrj`Te)Fku;F@&1U>4}vb<$}5A0azvZlVB@@HB640Oqa@t1t)aK&ZySSve@O4 z)@%U^R!#n4@RqYUGK!vVf4b#dKTqH8tHFoO_Os1Z6Yi6Vpf}=adP>$j~@qr8(bd0PyB|3@b?@Y z)tQG4F_-H5*N8946sPF^peEHq*J0wU0atY*b_-mLAq=~4=fLaxl~<>5>zzoLApKvB z=SXcV$UDb!j1K!BKi**e@ncA?K7Ld(Cj|NNW2CQ55g$L+?npj(;=u zirD;Fm@CV+X(<|SA7MFu^QUJ=7bia-Uwpbae*0-~cKFk$^MlJDT{H~GJ4u|s`|$SU zRFgP5xo8p8TLs(Yesb0TmF?ZIjxKT6W(n!gSc77ZE>iXYZ$EKfXS#u*QL(-Bh7fOFdh1H`=0B^4~SZ>Q;hg|3bnTnRCHG z`(dLMzG?{TBULf#L~csS%#fCXwt$D#8`+g1VHGtJy!q3!;#_nkT@X-epB$<6>E!*NgDdJM4eF{j#`gxhuYX;ld~G#*#gadvWFO zEj`ClpJXp^xtZY63-1yJAPycFx|J>Uz;Xij? z_crJM+{;tiubQL&><)Dm7*2b3;Qb;vO`*%!$SpLhVFe7aTOJ`eOux*7U|o0l|+GYTD*Z?G4cMtGSO* zuX`)HiEySvx9(DqhC2w`(QI@3V6%zK%-;=`bb}?Ga|UL223L~JjTW83!K=MfcM-s7 zMH9;G9oyF4v0ZELxVMXa7ePdBFNB9ION|X0a)XAfre6;l(!#bP;6sl^l1#{Nnt9(; zCaFnz4t#i)OSjTX9XA-u4aV|OV=T=~c$^4JQ@1*NWfe};8>Hw4DY`+5Rw}usdm5Y8SZBTGhm2N>xCg+fyU@pZc2mU34GCeC zyDunvmfP>%&y|o(<`1W7fwKsY^lqz<{z3u`xX=revkE$o9PC=0E%a4 z)IvZ8AGvuux>1ygk( zNm~NG<~M&9we}fkuLh~Kcoi3_L5)yax}#Er;9}LPwd^)mY^nQ48$|1jQp<9-4vN?y ze`l01Qy9-GvQ9|1DAyse+mu$6ZgIy5J}u@`0H0^KtDRH7?D6U?t6Kv-yHI*q=$ z*+GXFM<$#n&QPtICZXub%iey0wwI?(!Vtk7kq8eZaD+LFX@FjLU#cBGqk&MR5UGjz zSXE?5Xiz9uFeJxB7@GwWV-|;js_sZDRUFANrs_Y6$b`@fRrkz_{Ze&lD@5-g<|F8% zUiPMd@ii7UH->k;0NgeMJQusK05>~>{G&K_wOX}B@vumTr16-ZQA_MR#1!<+9EfrA zxP3>%DU$da1cKoZe5qB^1b<2dqD&$I#xZ2Yy!EOH^h`!!0hEwi+jB744(dKf zoqR(sfloxI2>dLJnwwBEJSm7a$z3->P7OA7QIVnQ5=W7h{;N%7y0W%rWzcV?mU4TK z_)*LW9S!_31hJZ_CnL(z*T;9@$J&-wP-!bYS+x{uX?%PaaS)<>^=8&7xh1=)^$us0 zXPi;m3C&pu-6BI;YF?zWI}H9T0*)0!qvJawDh8SS#piR@yEGuJYdq2Umal4Mw^WbT z_QP0}d2fL2TvvSssO<%om0GY@{YC#p%cZ=1I)3>uhgnH@A0CLEzk3|>h^CxYin^@K_$W*dpbv| z!sagPPRY1x^!4{z=CKDBwkXw2Ak z7yXsUF^i>15E2SH*58u)2fI>~d`1NcfJ1;H%w-bE&n=(n#GNsOldc$VE3%zFikOfd zp+e#?+%iTHr=#AsB!Cc9E1HRFZ#j#j6zfoUyHFL2bkj~%`SHaVU@9YTj3&rgMb*XXSRDOzpGhdcOCng z#1i>sPgjZh&9u1S6207pM~wq5r*A+cNcs=^XV}l)Tbn95jIi zO7=rcCasG%@#C(tic7SsWSc_!vRXE{Wt-pzs9c~6ZEMobT&P*TAZl;8(grO>utsZg zm1CLDW@s#Nl?5poK5N7r<@t>9fYAI*ca^0Tt2){#7bM+iXHS6}%9HF@qwH42(O(D+ z2pz3MD%rD%Qh{`3i<(a+iTLUt;7co(O#KH18=~%|ss>%OGx`<#VjE|PlA#vaSrz1q zOJ$UDMMG!Tjo4Zj5EIk$h*yt#@x5{>q+#G~g(smywz#}&DSgc7Oy*fCRZMapwzlv4QpT3k z$5*ZdX8ku?AZ8+@UNkOSzZz-XVsQUxQZqjn|FD9yB9P{go%bs`ISBIG<5yPa6`xBO zIF>45aXE2ci_HVdqjvqug8SG6%+`P%1v;nan&s&d6Z9Jpq=nW$ln_pFbyFwTJeXd~47A{=fMTfo}Hy^>+4N zmCt|PeYMlu`2X(Xnc@GtS9zWy{8lHzmo~Gm$uIRli;M2z^(-s-vw-hqLCLsfvxY4G zw3YwM1cA+v|NDEpuS@cO?{)9hM*iQ&lM7|7jRCtCa7Yc4&A%QjX71R4H&$xt*cij_ z*BHL~0vEOtW~{Q(>a@1*tyQsdNvIVoQuQHaD^;s%W$i;+dR&z<;R0#2K;wGw&;X_T zWV=$od^=p|8t{#Zzout~{%^Sg8?IOo2|mmI(|cJy|KZin{zm`5m!}**RI(Lk%6{o6 zNT*cGw*T+H-r3p6|ND3zO#Wx~;*I3rNdC?9K+pX0e|}HE4Ef*N z+j~{k|9cz%@BKXU*#GZuaj3ICv|B1Rl56v9p3Sp)WDc zVQyr3R8em|NM&qo0PMZ{avM34H`;&eDG>C0VS7hKQnD=f@*Ky8MpC6fkmn@2MAI6$vovjlOt2u zLHA9o!mbdOQyj6?%qLjfrNVKM2V3r zG{#&oI7cgGW+Q|g7H7{_p|Q<79I+{O(UI%YhzMD@%McW300fH=cn1DDK}7w%3rt!7 zbz%ZXTs0)Tj071bB`Wyi~k}ttMBFq^UY>A!?k!kWZ*MF4Q-EzhrfH z*e!I6{VyAlR|Ix;GX0f&uIe{Q&Zm)gOvwn3hsb3}oTmgG^-+rguR1jkp^FAUvY^9f zTp%Une4pN*2BDZ8r+Ef?$aerh1m61Sn!(WsyB{EdW7%KvSCM;vNtqacH*dcGen)Y> zk6p+IV1EaI011X&u2by)=VAZAK20YG`eKqMlX+Q0F31PSMYd%1(hT9H4+%;?d6>&O zA59_l;Vt&Dm<^FQryk;IqG@nF3(){{Iy(SlWawWhyF=`H!VvWM0POYU#EWHK`D0&^ z;`~^CzrKEdMuy0xM1FOo$oJ{^J(?na0A9<^d=LyCu`wTjUw+*IfC}VaGw5P6*3H+w z?WNV!X$((FPLLP* zsMCtRX-_DJbnT@$D=OxgVS!!fA9)@n{DSziMQO^xIY;82vb#ibiwWj{BOx#u1D8g= zC*_Xea!-oolnH=G5eI|{;Gqx^4^RR=4A0{1k|W_Q^7#OK{vsKh5Gu^@>o+0w-e*&U z)H^CAlHEE)K5|vdG^No96D(%tCqtY@%teN)Y|4$C{{a>}{w0M(pccy4{r(4R-ZJ#h z2=QzxH;m-e3rgAc<6I@ZX01i#w3@Y+G&C!eXfADk$IA zaUp#snI5qz@_+{g)b;}IQvpa6+#&`-#MI2$1zOqbPN^RSNVDpD*<=tzT*%4&|AM}r zM2g-C6z~M|yP;3Tc@zxPM;?Vz%>NH1sg6;xmYc6*y$GJ2{J>~%_TglhE;9jq_(-5$ zFnu%t<)y2|TK#HgC)S|`JC?O9RdFn;)(!y4uB?jL+bGjK&1Q0GCHnhhLsYBC=ZZeg zX=rU~U~kymwXmqDDpOMr7PYQ|w71Fovc#{D`6ZcNJxyONB@cd9vmzM-A97x)9NDzy zDRG1RK=)3kewp;2?(}zzMxj(! zt(7|c@3Z0c+4(zgbvnHGcy)XV-d$aMyaX@KMoJmrA#(8uBX2k1tz^^31!Yo=AV5qI z;BvDQ7YfF*Q~)_Jzf()-%apIVsg{6a*_Hr`0eF6gW_xd^(BIp=L$iJP*ZyT<|!AFkR z(HJSMTq=A~{CgOUM)+X>Iv2yCGeLgPi7im?=^Hu))SB0 zHYBQxo&gV{fD(>`8mb+j7E2$A0q9L3>-qS$XWr-?n_zSRJamg8u{KYC+65!zQ3jLR zTp~8Q2n7!CZ%`ZSP383G*czkcfLgiY?J7ZeEfGp z3Hp0x`6nYP6@Ym5Y1_^-`8j6q5d|Yg1N~F4Ad2Y`^yFlcs>8-M5;Db6{Awp&Q7}W^ zNyIQ2o6Qp@cKKnsJX~jbw#dQ3aNs2lm)?n2=snHDfl}(&z^xRG(rq1U6KMy5TFbMlp(;C zt$~{}hKM5%+)ofun?||vtGzOpBp4bEv_?1R_42dIqb~0W$nSX1Ri=Q5At$7s+B7P8 z*OT-dMa&5qoa3``7pj?~SzaF54(toRRsg3yNo@!t8x_35xH9>g+bG~vHq9qtwI zABS%aUv2Rpn|Q7#u_@z3fx3ogKrcN~q>Rnx%0r<~XULN>SenxPT(!yCC!tRgo>EsaHBQ6 z?Z7ZBXit(-i3s@er2`!2UMdw^S(ASn=KrS&@g0!5ZfO-ofjG!u)@8c-Y_0 z|4lrfKllCvOmQ$!3V~dWrCR+qklo@=&;a~L@5`5+9hL0#A%w(JdIB*(5T#luw6IF| z`LkoJg`ksgR#ztO04M#fY`tBLGFB6``?E$I%9IyV#2EGv_+4(_hzky1sXuX`?Si1= zq{I;M)Ze;-W`j7Q3`~$8q)I%fsh!TGNt!K`-1U@1OKj^LfR0VTSo0W-$+?{sa>W3e zs*Fab{QMcjbFti^-OAhvoK}^o`}rtA_L^+6hq`>yQ^S`_YMSJvZ{nQ4t5X#zk~@Fy zfX=6mqE#LUsRbvByBv;0&8{7aFx9TpA;zPGJ&Gzg`0}N!ma9w*k};~y2NKO)HWOs{ z$^NJF<;!Ew)pa}#^512ilRacx2oqc@|Mw0KU%h&hm;d{F2Yau#@_!RgVTL8+Y%FAI z7CMfzll2pTAw~}Z5oMa`-hHoS&fd-)Cf)!XtHYfuBYIDeG8JJ;b^;`z2L&7y%v1WT zIYk1H+KfDf062&zR!)pw}B?F^O)wE)9z3)3ODO zKtFp-u519k!^78|7_^8fxyAwF0tVp#kjVFw6E|~uW^!k`j%&9E(=j_dL<$5s*2k7r z$uwEh8@ea+$G^r7#l=sSkMA+p2|_<&&@a_aed80#G-xBXLQc&GOvaH9SuxuV0NkY^ z8h}I>_jUjojL!JGvZ-aN*2j<%2W}b!D0>=g5E4^=Mhvc z;es**ps8Bdn3n#*DY=AVG5}q@z38gk*YqQgje>fZu8OaP0z2MP>LW<3bsPZ*2)a+} zMiBCN9^|^KkDtuC#B^@7V4y_S7SP*&AXi9LLc=`NiE<`;I!Ed|U}~dY(E){2Ej!~XuA**hfQdR9=lD0( zW?g~A0IvCUGV_?!*W_?#SRpgubv&%NeTaW6GI8;JQ_ZgnLt}xG#P(a{f!moSQC06x z%cRPkp8eXg%IDS9%`=Xm$uugaOgh{ol>&*Fxr^oAg?7QEHbW395D*h6q&&l;#OgUx zDJ2_1S47bFX9-a=&|I55WRhDdCWR^}Y>U1Af&xT%#L{C6l^-$$)ESa0Q~(6s37}$v zSQq@o)aAp+;k6V$x~|9rA;Xku=L0w{h#kyL`>Q$amPW+0*0Opm=bAdnvZ<~0a;Q`r z9ZVd71C$qk0^T7KvtdL$#Qa%SkeJ01Xoz8Tv$BhJt`W!O54r^&G)O2XOD@(`x+N_j zNA+l2LCmNK+SQ4>6BNKfdaOr|F3)~`HO##R`R*(56y^XbYy9(M+NymO!jeslt|GZ7 z-^rPyuB5xE6!7WVVT9N&pe$j0L1hw#oJxtT90fwe1kN9*Wz@vnFz?j#6&| zwRkmp1@cUfXB3R5c;2z&b zf->Io&=mPSj>isU?gR_uiin|})NNJOiBgfff%h!2WjxQ-wKNU&qZG)R5s*5hW-6Uk zx1zixU!4xGQw*FOjAHK>)^eT>f$T6$Mu_P_RO*jf=FN$@IhVqzOi6e(x(%>MIGro8 zeXRBjN;eEWr5=GZ0*+yT{A0+`+6O@PGO+1k^BAlVP`XSO{=`dk^UrjmS9Y(%lbQ}bcP%t_;5{bm5q?@** zM5DSX>T8wyZA)BeWo6z>!wbr_l_&t0HcFKmwozEqok#`MOm`bWns#_s_pIE}NCCom z6lm4=7Mb(s3Zm*%Iyvfz52gzXT`b2lqo-?7LG%_W!*y{tnfU(18y6|TE!#L7m3b=|1y-~tx0tuzl|fS8)7cuA>Idb4s~RG+wXC44$4w0zCH~Be z9W1B;$3ZGDagG=T9d5)-M+leR3T#Dv-jK{JS%5|q}SBdSLA79j!x$nHuyl&*H%&RxA}Ovgyocm%Pp zD31|A%FrW)q*N5UK>3?lXc`^cfV7lrnh7l+5`k4vqd=V~O2k3|7O9mdi*j0$SbDo$ zqn_#n8NFU>>k(set&qwk3lf6~wCoS{b4-cU59Dqj;>OZ4OZJ(!NZiZ8Xlp>R?mf8d zS01@8;(QeO;Kl7s?q;wDjoJgnd}f+LDSEGxGt0aLw`e38E8@C{lEKAftyCcE%`Z)o zx;}Rcfo*MQ+ND_w8|HQu&1zaZ8(C-;ysofFL^n@mx4n!BR8z)6R88V^)cu+6Qf<1Z zRd8lVbiw(>^{Gv4UsC|56nh|~oMX9N;K+@bhFJ0l@m=87v9z_O^D()dtu2IC&FElm zW}ic3<;`KUs-kRuhuLrH^Ks76n9jCJdwymOSX!aDafi{Bv>N@itB z7AV0YwYdtS)O91q<6+28>cpJ%F{H`DWag9}y{c_#qOki2E?|ZV5a&s-fZ~%^8%)xi z-Pc0`Vm~>7B`Tg1VlmHEY@@3d=s3HmAG$hNAqT|4Vn${GcuP6Mc@rmmD#aY>cowUed5 z^$D5cezpP7Vds0jASG-c4^$T5Q9BcC`s6Zdq+&6v&VxWlw(QgGOd#G~hs?|a3)#hV z$YdT^C^lBIaTeGWpehAY#edXXq0h`K2hzs!Y7`8=WX@C+K;!&Efi!pk)xapblb#tx z{7#{&Sk01*N}J5oOnxm#6Dw3aLv4boX}hf&P&Y3_C#Vg+#%f{`LEdU(o5VEs4B* z`Cor3Rpr6SKsV)%k1|Kk`^3RJGdi|qvTQGNR2S`3=F)n1hQ8S+X5U1&r7%FotfoDs zx6nvCO7IT}iTuMuA-5374M8AR3VmE1hnX+mIiW9`3 zzQkEjd55HsG8JAdWXMgW`!jHKd6va~>EVtEG2|jVmCN2eWJH~-nWzT}cP2@PlyI{g zro=N#x2Z5So`yVkx*1bVR8Xn%E0h`s0aQ~UZd7FD=H4B;9OgUjLr zmq!Esk+6R&M*FP`-}en8`j*Go zZACb@ZyeRO5)9k&h_&VMX)8dZtpa=Yw2@}ZV9K`Wv8Rk4TLD&VCCISHStXjQu*4#< zETZch$8W6yt+g^F{|a)Jb6fjZuc zcO+HTl6cD@CX7boJgnAc1x?M)>L$SW1`RB@vCP;I2r8ikj*`DjFyCI=Cri7ZZlEpG zU&%pEdOf0E9iYYXku|L<8;I0;x$fc&PNH;#a}<~3HaNS>m5A$e3S+fb7G=S;K@gL& znLj>aoZtl)LbjQpRR#%*&jGWKDr= zwd4UqtzRZ1pqRCDh2(y|qi+z^7nyd73R;pV-rHEs*0D6zMgtDQ$&6zc`c;mqOvN@g%<>N{Mf+_h(tm004Z}RZ2D4nWGjYDE+nmD#N=9$5+K~P z#-va^Hi5+RmDnhSoU?FU6^LUS9q*~aoyzwP>nE#lRT(2IO$T|1O}ccep}a#gM~`Cw zL%l67FkZYI7mCXeQdb$oOL`jm8(dEiM_DmNL-@}~U1gR*Q!KU>v+7&wLsq+7fe%Yt zuazgG^ZrqF-7WHZJ;-a#K+C|d6@^t{uou~jta1mk@_onC+-+=e-f^FY$;8B6+C!_i7orzHI19A>)ZysUNoD>Sa!o!?V5CjM(PUHnikE`80`+X zY>Sp_iK;_QbIuECzOFM_(?bR9mkv<@I+Qpb=64<2u}$LYP(MGPfEA*6aIih|+#cIJ z!7W~cmwL`gJ)KM%Pg-jeDs)z}n~B{3P>o=(GjEmJ(QM*su{NbottqFCB4weu662Vy zt}8N^&D#wv3}_aTD>A8BD7QDV{Xkg^A66lg!l*H}-QJK_R_$}o#6oOhP|A08fC+u~y z7tiLO3SWihCC|=F@`>Y^r2TB~)g*jm?O=lx)wYi4BCR_-o7~pj`n&1u3W1Oo+ZgdB z%j4Rox9SE(u+oe0mcKhK&zUVROshz&Wrkj3K2Wbo#0(3`V<8^Mzw>S^_Y<0d3|RUp z_N7+ZzZ?-0Q|;gX`rkibAL&`}?|=OtDRut+umAlQpSpMd{@4F$9gsVZ1~I}>SME92 zHO~09F&Xm$Ge82MA5Nf&VKI+bUo7HFQ$&}lXtI_@RmPVE=Sgf#ErF9|0F&`< zRne9bjAv@Bqbo1q`21TbXC5Ankcz0mkqVcmRdT(uKpROOxs%Po0US?%nP)moq8ZqEdy$y9d&!w|LC zPArrc)mN&FZSj-izoW~uBFxPUrFFO1xN@tODl2Gn+0V~Lx-gc;vcyOaMPj=Hm~erh zSED8ofQY~hC8Milm$qPK!Vy4)w^B?5{=ebHdG8&qAgRX-sxSb`jlBcZ4So@GO2dH{qp z4jO*1nk$z_sV72X!SnGQ8i0;6fTz{`EV=)S?ZOZFywFhsJ2Fv6S1vJ+W*3sQlG=E{ z@OX^ucRv8LO;YilUP_UU<%*mkK}@ioWQi_S`j`D*D{GwZFS(AR2e7ZV=$Ol1dTC}P zpAi8cWJ#{nHmZ771$tAnc`6kFshl9+cjCSOJ)Fs2hzHJubA?RQa%&Re@8aZQplc=> zYE0r7S0gNCpAPs{uUY_Y7LCtH+zBM(B;MdC5)ng-g=i>SisQ#(F)j*@N3*%MY#eD9 zr|^09q^-7bb+JF`6tO8r_q}_{?l2iUk~JL@DygT|pWZX|&%$j{3s~C*rkcc zY@r^EaI5M2@$6(X3?AWy=4$1Zw6~f9Ip9RKV*vaqxCd9({pvoX-jHdTdG``Y56Rjlyan>W9y z*lF---@92@lq^fo_U_F;;N6>T!?V=_plvNOkmv;?vRMs!b8~blOj;wOJOV$@U&)nn z^HTBNDo;$8iU4ObmoFa^&Z;T4jS^R{J(<{r1JIvKv1&TcuRF`f)ra^QnPKb6Ms&$y z-B>-xCvtJu=c00)^a+|7bAjzQz7nahjTz#6jzh2Qg`r!In7KV-R_F=ywR^y9JzqBJ z`LgwRdCDFy+sG_yip*kIW~taLn#Rhav&`w0^cDFcZ6l)SXB#%+>-H)7n!Sh~N#)#z z&uQt|v$P-23cPk!;-fQ%M^3FC_YFJXEbVTyymQSHccodK07X@C&8-x2DV-TMK6J+`~g;i{9g{^ zzbu-6Y25xw5c%oBi+l`>*y6 z_r3%D^)_8U5f_ks*I&A*<;%|J&j1tGk30lA36FJsc#C}A0bTIBvbqxi_H}AU zufdjbbsj@gW)$>qFz{0f2QdXH7aE9VE~C+H$=y!VvVa)V#!%>E7xJnei@)oVIP#Gz z;(coXg*$n#nidOC7>3P#AJ1MxB^kTc{e7tE%u%F%Wc%?bNqJA%oll{6CW&G(>uS*A z*-4JPtVoiyi%r^I#L)nBgw&gJ^ji#INWJ%2hA?B5Y2f#ButP|_qasJBiWj(|xfD>q zIu^PM2XKroBi|n)mm!fUs`w>WURCaVHA)?*UrZ<$=SaxzuNve`k~E*x0I-XWT(x&T zFN%cx=M1%!0-+un=Ga{={5hjDCHy+9>Qbe2qKw=e8i|GxAgK`n}m&kjPFzP99$Val+WrT7%1raG>^naOb(7MYuV zIC3MEff9ipL^?hkxpF^v$><2@RcoyzUPVOU0G(*Jf!bjc)JLp1sWLBHPO4f-K2o=h z%`%hLyqROhnqeyo&M=*9Rnjv(RL&~bdIgo5Rf?2jJBB$XkY6%1!VjR+>*Qy5*X8&! z%^}wg%CVqqmgQ(8E(V~JnUFgFE#&A5g%o`GQu189I*v0!P(%zlW2xJ|y`~}c>3H^5t}?qnQbO6~&sWIxArACm(%by{lh9FG zvFFL%*V{k6I667GIvoyQS`tp*?pxl})q}S=bt*RKl=s_^(XaJcL>m5~nD7UAsa71waB|+lX=TcCVjHgvhkW2*#I7k6ICKCc9t&mq{`;0iYuyO8gbb zx7wdfW-Sobg-UWrI3CX0EV4H@es+ordrnz22@7)p{0@i_K70H5iBKuY<>SH--eMnH z9UT}Ai|-t8^!~k7kU=4!J83P&j!g2Ei!eK3t1L;9E-t*5F0Gx|vI>#5A}E$Md;5Kx zwAqZXX(el79%>deIhnBEw+MxTOgMN9nNTkgRxS@>4tsoIkd0zjD-RO1Lo!Wk7GaikS8?IDH7AxN1jNtsAYXr(STrKprnNSUbE2sBbIcBLjfeY^hzXK}7E zo1MtD41ox|_0cthqY-vLKmx~zl{mwRr$ykhZh&1zIUR|vOM@P~<2~06<^LQQ2`V>t z5f=k(2=DIi@9ph<-`y|Hu*=BzP3#14Hae%`Qe%xW>GbG?j6P(++y-@89Li$(%{IUq z#uK^TFf5l{XcSB*zsE~VyfS&!8H$x~u4*Bpg1Xcnfa~MS^|M7`3dK_*F>be!@~I_! zr4qh^Y+2T(2^W;?%a+vA=sc|wb9DS3O_5(=OO565pI#gf&pw@=pIly?onPCG%mES% zyF6Jp`d#&Z6>{68ws5y0=V2~Ig9E1=35QS*RatCI%A+a7zGlSP5Q%e{!%lh{IARu} z3UbrndKOk#t2Ho1a%ncRiHBg$p>2kGpGL~FW`xHMSBEuDkw~TnD*3TWtxtB&=cb&h z(Jjf>nCNv}Fel=OIdF`Ku(VyL`N$DFk}2$jQVI@_MkD-SAr!?VhAM@f5cGX|@1P(Q zvs@2Une=4xQ96utCOMPD*8CVWm zq(o!NY4lGT(>i!-?V$(3;1L`1vIh3~bDZ^e@Xv^flJ;j6nx!SR^`e>=WY*&rlcex1 zzt)h}*As^Lg!+W$KwiaJB6 z_29ThOKmbV-edrhtwph{1-r0nyAe~&R^GCCzyu2n{S)NFnUN&}@G6fvHv6pP^IraQ zh#01xJ#)2n;(tC~oqjsLIz2f(zdk#9|LKRb_op^n#Se^H!Y66T`vHbOp_w%&}3 zilsbNFXcV~bUNjksVnf~_4VcO)8*C0fB(&1et9L#&}}2Z8fw_4g7epJCDkLesdDER z^HnXT*sfyviSX{?)9~b{Pwy|@eR_ZT^XdDxWh$P2M~5dry-zi2TL)x?mQ+VT=SXH9 z3h3S`{iL!RbOle(e?GgqIR9{ZeyyhJ<8TtPgRl2a#X?He{f3X7`fIe zfVJ`$*Qf744NtFrK07}Bbbj=~Dq^a{Znhlx_fRAI&I`!TQhBHUeR*+peR}oj;`;q% zg9K<-^67($OUO>+Fqmz4tYmYj+1rIlvOJBoU_OeO3k+i=q^jz;#k)xjlR)Bu7tJjG z61>O=0)?)W`#8ZU=!}p@8SK2Q8d=VZVfTwo;N0)IsC;V#L(sb*{>-vc)U$r3LDsr% zw5l26PIy-w?P3Ap9qzf%5iH`Or}So5l&^D@>t-H)>)x8mM55* z`w;Rutn4qf$Z{m6uz6Bxyy}Sxs72ZAf@zPzoow%~Z&umaw6QT|o~?#7&ogsYR-Nh@ z(nzdfx?~#q*e)~Q)H9d=m(jT9@%{R)(f_O8e|@lD@c-K1KYYFQ|JuZpb@wVo(BIMC zVaLNWb2&$?BUs)VTXdX~li1~06RJ1I$5wWbaps)|P8H{moozI-Fb*}CEVUu^&d7*f z5T)CtzN-bT+u#d>y{&qTFTklO%cy+CoaNf-N@>R{dj050YZlSVTM>bzUOZDS)Db>9`XyJRQ z7Sn>`<>Ib}t8&?lKbjU^gctHizunvn z|2Din{Sco!=6sJcbYy29*Emkf?_VQ6B~_fl%|TVlg|5RyS^>`Lg!CRUK0&_UMGqG5 zKDYGh9Njx-0tG<*SK&bt8x3$Sp_qW>Fk6OglTs86KZIiP_D?TPuFifwz4~-@`tH;4;`paemq*t> z+GuEwx01Mg|MA_~xgv3LcGbc&x$=;@^#QI$6ElsJQ!k#K)swRV=xpu=wRDNSHcLo{ z+8X40bdj<@nSq+!+*nKa>EmBcKb>EkR3FmWaR4e>T?GIjy{SN{mTI4Jb%<1VEwl8%o9Yy)-bRNABWy-Z^##*mK0=g4iehWT-y3Wr2NsgL5cCs4o>%2c}%VWfyd;8n--%UL2&VMtD)%N^%d;YsU|J|PdZqI+$aQ?g6Q{43g zt}VoaNo&&5QQ~-TQ{^gQPBc8+>M(2@W@f=KGjpF-6=Ka;qq0@RbJmokmxlao7SQuKkF)!jho(0aqD1nrqv-o}-6U zt4Ubbb|wT&OrN@=cuR%_+G?c|P!GMelPWBA6;9)a^-klj`gSH*uY`L_r|93r8FzDN zv6zQyV~cgHom`yACB>+co<*;Uv*&oZiAXl_5)0h+Wd9Er+-iFmzdelK9>%vjjE_&& z9ZW`4AFgYIm+eeEK4B*#D%Z!vcJ;NK*v}c{scFw>wH>sHnUua?d!VGk$6Oqu?3V@g z$QvQZ>H( z{&;v+3L0KNc#_HzBUsK}Ka4W{{vu;p&e$}d^B0wjYBB4)W}l}SZK`4J)&(bOJ&{{a z;yFtz&geO2^PDA>r}oOG^@^tSJkxoZLCw>eZ(c7pym>0~PVhws+Fojnxwx*NRvv(< z7hHaen-9lUs*+uoSiClK6>il#mhOp~LzKGOl_J$Os5f=>Ea^H`Wo;Idx_vhH%#Ht@ zJNjEQ{`XbC82@SS&Hgt2(?*`c7FvgjG@IsCV0caJ$;~2ob)n1ScQu_qAbPhvYU{=B zmdn#m(ZEC5oll{6rcB6U)^&Z1h&VgR(U!GHl6J94+lx3FfKJ}gv3c-U02NLMtqCYx z=%mEBV=$g+QN=GdWNRsRz8a-&OO=cymQQJ1v-d(ISvr)=Jx)|@&wXTsBj_v*S;fqTnXz7|`fr-B2viq%KBJGIqr za_(DG7v5KH?@Qg@m%4>1Z(+(?m~yF-Yr4_3ZjH6pdw#rfxrhy*mFQ^jU7dyP3;l>&zck(*mO*9IM^d0Q?1e3hkp7CTkT`9yMO;yTdk5$U{?WW)Df8 zZKwsG@!oC3dt5G%I!DoMh{VTUj``k#r0YXo(I!bqeYVZ??X|pXuj-S(mbYk+Yr;rd zV9YJihVz?0^ICfY)UZY>EndZiYEU7RmhPwop1N4IDlNP96jl#I8$SNV-qFjr_Zc|!blCM{aZ?Aza5o>=9^cIu6il+tsH@52+CuHM4j#E}5n?wfJRb+X* za2@rPqKFv^ee6Qsx|8D!y6Cy_!0pCQd5a}Cc7s%0fO|@w3vi1-0NEY#0OU%=P8`Cf zd*Jx$M0=P;DXLk~!~{Hh-9O0DcCxgw?*sIJ1%M-g7=VmM!~<`-ujRg<5|7JLuu#NY zC@V6;#LJb-DG(FPwIu`a35|SDR(GsaEe6B{68RrVB*5fK);$Z10D!kbbPppoMg!1K z-{dgf+U{n@aIY7D-DZI2V)qr`rW?pViLlG%sx1meHkwc+JlFLjE)d%oLN~M6uL!1F zS40*UZAQ`tc77ZT@B;Is64R0p(6&pLs(j3b^Vc=pp8) zIgBZ(x+SZStN^sIsWF|_wxjw*-Q=u6bJdy8TlMA!Z$8;^9H)riOzQZvGKwV?l=9J{ zq*_wtwAHjb1!c0)ci$^H+**OPRU_4aa?1};e(%>(ufQDKPoMxE8exLCRyN|{liCmj z6H4#8;ICLrXe4w39}}ef=?$rW&|68#rG#S-G30>|G7)>rGs9;pac6@3pvxycNwzZp zA?3osgbV2VJ9?LAJ&!ak@sN)cO16e+Y(0_BCn<%H!2k&(S21xJl3NJqwq#~O(DSf9+)353;=76^ zcHgpo#|D?J@#PzN8tgyp7P?N}34DGlP`&+U?_mG1U$Fli^bZfV_Mc5Wh2>U`ch^|;|Z@G)#7{QQb>V=+X_!iMs#s`*HZfE(Fx{R zDps;UluGY$0Y&skm0gGk+(-pa~N+H%Sb?sW_a_Xg3 zPc}ydn^MM>)5lk?1g8DhED%!>QY{*ntzU(-ZZWujG^v@Li+@-_9u(+Jq)ME39@~BnTeSkIs4yjeF0lua(JSbeH?BwDF5RViT~)4pS?l=i7eTq4poiv8N32L0dg2h{wrAQHUE{?mWGU(o*#_YPlg_5V#gMR%)$ ztvFTo3jqSHBBtJjs@@E}9_RmgE{|$=aa760t16o&?_e)~A7ouEnrbW%fo*E6(=`^I zC1>&T*}D1s0iI>#f7_FQM)`kGwErKxdDY*_|4lrPCjV1=@mBJ0CI9w$q-TElKmSQU zgZ%HmdR4st_prY`|J}?pkNtmhi$j$iqTN!lm0a6r`)r@>)BOD300030|D^M*q5uQ} E06MPSO#lD@ diff --git a/charts/v1.31.1/azuredisk-csi-driver-1.31.1.tgz b/charts/v1.31.1/azuredisk-csi-driver-1.31.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..2fe25324f03630c025c7e6422e47edf505e8e400 GIT binary patch literal 14813 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 D$12!F literal 0 HcmV?d00001 diff --git a/charts/v1.31.1/azuredisk-csi-driver/Chart.yaml b/charts/v1.31.1/azuredisk-csi-driver/Chart.yaml index 8c56bfa20c..98632ecc69 100644 --- a/charts/v1.31.1/azuredisk-csi-driver/Chart.yaml +++ b/charts/v1.31.1/azuredisk-csi-driver/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: 1.31.0 +appVersion: 1.31.1 description: Azure disk Container Storage Interface (CSI) Storage Plugin name: azuredisk-csi-driver -version: 1.31.0 +version: 1.31.1 diff --git a/charts/v1.31.2/azuredisk-csi-driver-1.31.2.tgz b/charts/v1.31.2/azuredisk-csi-driver-1.31.2.tgz new file mode 100644 index 0000000000000000000000000000000000000000..4dd0c7d122c27961376efcba7a3f12ebe5dfa064 GIT binary patch literal 15068 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 - please use helm install method for more customization, e.g. Azure Stack, RedHat OpenShift support. > - [install CSI driver master version](./install-csi-driver-master.md)(only for testing purpose) - - [install v1.31.1 CSI driver](./install-csi-driver-v1.31.1.md) - - [install v1.30.6 CSI driver](./install-csi-driver-v1.30.6.md) - - [install v1.29.11 CSI driver](./install-csi-driver-v1.29.11.md) + - [install v1.31.2 CSI driver](./install-csi-driver-v1.31.2.md) + - [install v1.30.7 CSI driver](./install-csi-driver-v1.30.7.md) + - [install v1.29.12 CSI driver](./install-csi-driver-v1.29.12.md) - [install v1.28.11 CSI driver](./install-csi-driver-v1.28.11.md) diff --git a/docs/install-csi-driver-v1.29.12.md b/docs/install-csi-driver-v1.29.12.md new file mode 100644 index 0000000000..9e37f08bc9 --- /dev/null +++ b/docs/install-csi-driver-v1.29.12.md @@ -0,0 +1,48 @@ +## Install CSI driver development version on a Kubernetes cluster +If you have already installed Helm, you can also use it to install this driver. Please check [Installation with Helm](../charts/README.md). + +### Install by kubectl + - Option#1. remote install +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.29.12/deploy/install-driver.sh | bash -s v1.29.12 snapshot -- +``` + + - Option#2. local install +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.29.12 +./deploy/install-driver.sh v1.29.12 local +``` + +### Check pods status: + +```console +kubectl -n kube-system get pod -o wide --watch -l app=csi-azuredisk-controller +kubectl -n kube-system get pod -o wide --watch -l app=csi-azuredisk-node +``` + +example output: + +```console +NAME READY STATUS RESTARTS AGE IP NODE +csi-azuredisk-controller-56bfddd689-dh5tk 6/6 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 +csi-azuredisk-controller-56bfddd689-7s8yg 6/6 Running 0 35s 10.240.0.29 k8s-agentpool-22533604-1 +csi-snapshot-controller-84db6dbbb-stzwr 6/6 Running 0 41s 10.240.0.17 k8s-agentpool-22533604-0 +csi-azuredisk-node-cvgbs 3/3 Running 0 7m4s 10.240.0.35 k8s-agentpool-22533604-1 +csi-azuredisk-node-dr4s4 3/3 Running 0 7m4s 10.240.0.4 k8s-agentpool-22533604-0 +``` + +### clean up CSI driver + - Option#1. remote uninstall +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.29.12/deploy/uninstall-driver.sh | bash -s v1.29.12 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.29.12 +./deploy/install-driver.sh v1.29.12 local +``` diff --git a/docs/install-csi-driver-v1.30.7.md b/docs/install-csi-driver-v1.30.7.md new file mode 100644 index 0000000000..7e749b699f --- /dev/null +++ b/docs/install-csi-driver-v1.30.7.md @@ -0,0 +1,48 @@ +## Install CSI driver development version on a Kubernetes cluster +If you have already installed Helm, you can also use it to install this driver. Please check [Installation with Helm](../charts/README.md). + +### Install by kubectl + - Option#1. remote install +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.30.7/deploy/install-driver.sh | bash -s v1.30.7 snapshot -- +``` + + - Option#2. local install +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.30.7 +./deploy/install-driver.sh v1.30.7 local +``` + +### Check pods status: + +```console +kubectl -n kube-system get pod -o wide --watch -l app=csi-azuredisk-controller +kubectl -n kube-system get pod -o wide --watch -l app=csi-azuredisk-node +``` + +example output: + +```console +NAME READY STATUS RESTARTS AGE IP NODE +csi-azuredisk-controller-56bfddd689-dh5tk 6/6 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 +csi-azuredisk-controller-56bfddd689-7s8yg 6/6 Running 0 35s 10.240.0.29 k8s-agentpool-22533604-1 +csi-snapshot-controller-84db6dbbb-stzwr 6/6 Running 0 41s 10.240.0.17 k8s-agentpool-22533604-0 +csi-azuredisk-node-cvgbs 3/3 Running 0 7m4s 10.240.0.35 k8s-agentpool-22533604-1 +csi-azuredisk-node-dr4s4 3/3 Running 0 7m4s 10.240.0.4 k8s-agentpool-22533604-0 +``` + +### clean up CSI driver + - Option#1. remote uninstall +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.30.7/deploy/uninstall-driver.sh | bash -s v1.30.7 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.30.7 +./deploy/install-driver.sh v1.30.7 local +``` diff --git a/docs/install-csi-driver-v1.31.2.md b/docs/install-csi-driver-v1.31.2.md new file mode 100644 index 0000000000..caa797ce0f --- /dev/null +++ b/docs/install-csi-driver-v1.31.2.md @@ -0,0 +1,48 @@ +## Install CSI driver development version on a Kubernetes cluster +If you have already installed Helm, you can also use it to install this driver. Please check [Installation with Helm](../charts/README.md). + +### Install by kubectl + - Option#1. remote install +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.31.2/deploy/install-driver.sh | bash -s v1.31.2 snapshot -- +``` + + - Option#2. local install +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.31.2 +./deploy/install-driver.sh v1.31.2 local +``` + +### Check pods status: + +```console +kubectl -n kube-system get pod -o wide --watch -l app=csi-azuredisk-controller +kubectl -n kube-system get pod -o wide --watch -l app=csi-azuredisk-node +``` + +example output: + +```console +NAME READY STATUS RESTARTS AGE IP NODE +csi-azuredisk-controller-56bfddd689-dh5tk 6/6 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 +csi-azuredisk-controller-56bfddd689-7s8yg 6/6 Running 0 35s 10.240.0.29 k8s-agentpool-22533604-1 +csi-snapshot-controller-84db6dbbb-stzwr 6/6 Running 0 41s 10.240.0.17 k8s-agentpool-22533604-0 +csi-azuredisk-node-cvgbs 3/3 Running 0 7m4s 10.240.0.35 k8s-agentpool-22533604-1 +csi-azuredisk-node-dr4s4 3/3 Running 0 7m4s 10.240.0.4 k8s-agentpool-22533604-0 +``` + +### clean up CSI driver + - Option#1. remote uninstall +```console +curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.31.2/deploy/uninstall-driver.sh | bash -s v1.31.2 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.31.2 +./deploy/install-driver.sh v1.31.2 local +```