From b689ad0f281ee417da553f60f00451c618fea368 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Fri, 12 Apr 2024 09:08:53 +0000 Subject: [PATCH 1/3] doc: add new version charts --- charts/index.yaml | 129 +-- .../v1.28.7/azuredisk-csi-driver-v1.28.7.tgz | Bin 0 -> 14112 bytes .../v1.28.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 | 279 ++++++ .../templates/csi-azuredisk-driver.yaml | 13 + ...si-azuredisk-node-windows-hostprocess.yaml | 154 ++++ .../templates/csi-azuredisk-node-windows.yaml | 238 +++++ .../templates/csi-azuredisk-node.yaml | 247 +++++ .../templates/csi-snapshot-controller.yaml | 94 ++ .../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.28.7/azuredisk-csi-driver/values.yaml | 275 ++++++ .../v1.29.5/azuredisk-csi-driver-v1.29.5.tgz | Bin 0 -> 14401 bytes .../v1.29.5/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 | 287 ++++++ .../templates/csi-azuredisk-driver.yaml | 13 + ...si-azuredisk-node-windows-hostprocess.yaml | 161 ++++ .../templates/csi-azuredisk-node-windows.yaml | 245 +++++ .../templates/csi-azuredisk-node.yaml | 254 ++++++ .../templates/csi-snapshot-controller.yaml | 94 ++ .../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.5/azuredisk-csi-driver/values.yaml | 289 ++++++ .../v1.30.1/azuredisk-csi-driver-v1.30.1.tgz | Bin 0 -> 14445 bytes .../v1.30.1/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 | 290 ++++++ .../templates/csi-azuredisk-driver.yaml | 13 + ...si-azuredisk-node-windows-hostprocess.yaml | 161 ++++ .../templates/csi-azuredisk-node-windows.yaml | 245 +++++ .../templates/csi-azuredisk-node.yaml | 254 ++++++ .../templates/csi-snapshot-controller.yaml | 94 ++ .../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.30.1/azuredisk-csi-driver/values.yaml | 290 ++++++ deploy/v1.28.7/crd-csi-snapshot.yaml | 838 +++++++++++++++++ deploy/v1.28.7/csi-azuredisk-controller.yaml | 192 ++++ deploy/v1.28.7/csi-azuredisk-driver.yaml | 12 + ...si-azuredisk-node-windows-hostprocess.yaml | 108 +++ .../v1.28.7/csi-azuredisk-node-windows.yaml | 194 ++++ deploy/v1.28.7/csi-azuredisk-node.yaml | 171 ++++ deploy/v1.28.7/csi-snapshot-controller.yaml | 58 ++ .../rbac-csi-azuredisk-controller.yaml | 196 ++++ deploy/v1.28.7/rbac-csi-azuredisk-node.yaml | 33 + .../v1.28.7/rbac-csi-snapshot-controller.yaml | 78 ++ deploy/v1.29.5/crd-csi-snapshot.yaml | 838 +++++++++++++++++ deploy/v1.29.5/csi-azuredisk-controller.yaml | 192 ++++ deploy/v1.29.5/csi-azuredisk-driver.yaml | 12 + ...si-azuredisk-node-windows-hostprocess.yaml | 108 +++ .../v1.29.5/csi-azuredisk-node-windows.yaml | 194 ++++ deploy/v1.29.5/csi-azuredisk-node.yaml | 171 ++++ deploy/v1.29.5/csi-snapshot-controller.yaml | 58 ++ .../rbac-csi-azuredisk-controller.yaml | 196 ++++ deploy/v1.29.5/rbac-csi-azuredisk-node.yaml | 33 + .../v1.29.5/rbac-csi-snapshot-controller.yaml | 78 ++ deploy/v1.30.1/crd-csi-snapshot.yaml | 838 +++++++++++++++++ deploy/v1.30.1/csi-azuredisk-controller.yaml | 192 ++++ deploy/v1.30.1/csi-azuredisk-driver.yaml | 12 + ...si-azuredisk-node-windows-hostprocess.yaml | 108 +++ .../v1.30.1/csi-azuredisk-node-windows.yaml | 194 ++++ deploy/v1.30.1/csi-azuredisk-node.yaml | 171 ++++ deploy/v1.30.1/csi-snapshot-controller.yaml | 58 ++ .../rbac-csi-azuredisk-controller.yaml | 196 ++++ deploy/v1.30.1/rbac-csi-azuredisk-node.yaml | 33 + .../v1.30.1/rbac-csi-snapshot-controller.yaml | 78 ++ docs/install-csi-driver-v1.28.7.md | 48 + docs/install-csi-driver-v1.29.5.md | 48 + docs/install-csi-driver-v1.30.1.md | 48 + 88 files changed, 13494 insertions(+), 51 deletions(-) create mode 100644 charts/v1.28.7/azuredisk-csi-driver-v1.28.7.tgz create mode 100644 charts/v1.28.7/azuredisk-csi-driver/Chart.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml create mode 100644 charts/v1.28.7/azuredisk-csi-driver/values.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver-v1.29.5.tgz create mode 100644 charts/v1.29.5/azuredisk-csi-driver/Chart.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml create mode 100644 charts/v1.29.5/azuredisk-csi-driver/values.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver-v1.30.1.tgz create mode 100644 charts/v1.30.1/azuredisk-csi-driver/Chart.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/NOTES.txt create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/_helpers.tpl create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml create mode 100644 charts/v1.30.1/azuredisk-csi-driver/values.yaml create mode 100644 deploy/v1.28.7/crd-csi-snapshot.yaml create mode 100644 deploy/v1.28.7/csi-azuredisk-controller.yaml create mode 100644 deploy/v1.28.7/csi-azuredisk-driver.yaml create mode 100644 deploy/v1.28.7/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 deploy/v1.28.7/csi-azuredisk-node-windows.yaml create mode 100644 deploy/v1.28.7/csi-azuredisk-node.yaml create mode 100644 deploy/v1.28.7/csi-snapshot-controller.yaml create mode 100644 deploy/v1.28.7/rbac-csi-azuredisk-controller.yaml create mode 100644 deploy/v1.28.7/rbac-csi-azuredisk-node.yaml create mode 100644 deploy/v1.28.7/rbac-csi-snapshot-controller.yaml create mode 100644 deploy/v1.29.5/crd-csi-snapshot.yaml create mode 100644 deploy/v1.29.5/csi-azuredisk-controller.yaml create mode 100644 deploy/v1.29.5/csi-azuredisk-driver.yaml create mode 100644 deploy/v1.29.5/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 deploy/v1.29.5/csi-azuredisk-node-windows.yaml create mode 100644 deploy/v1.29.5/csi-azuredisk-node.yaml create mode 100644 deploy/v1.29.5/csi-snapshot-controller.yaml create mode 100644 deploy/v1.29.5/rbac-csi-azuredisk-controller.yaml create mode 100644 deploy/v1.29.5/rbac-csi-azuredisk-node.yaml create mode 100644 deploy/v1.29.5/rbac-csi-snapshot-controller.yaml create mode 100644 deploy/v1.30.1/crd-csi-snapshot.yaml create mode 100644 deploy/v1.30.1/csi-azuredisk-controller.yaml create mode 100644 deploy/v1.30.1/csi-azuredisk-driver.yaml create mode 100644 deploy/v1.30.1/csi-azuredisk-node-windows-hostprocess.yaml create mode 100644 deploy/v1.30.1/csi-azuredisk-node-windows.yaml create mode 100644 deploy/v1.30.1/csi-azuredisk-node.yaml create mode 100644 deploy/v1.30.1/csi-snapshot-controller.yaml create mode 100644 deploy/v1.30.1/rbac-csi-azuredisk-controller.yaml create mode 100644 deploy/v1.30.1/rbac-csi-azuredisk-node.yaml create mode 100644 deploy/v1.30.1/rbac-csi-snapshot-controller.yaml create mode 100644 docs/install-csi-driver-v1.28.7.md create mode 100644 docs/install-csi-driver-v1.29.5.md create mode 100644 docs/install-csi-driver-v1.30.1.md diff --git a/charts/index.yaml b/charts/index.yaml index e3f9f5eccf..1e5a06fc38 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -3,7 +3,7 @@ entries: azuredisk-csi-driver: - apiVersion: v1 appVersion: latest-v2 - created: "2024-02-22T13:31:53.995667468Z" + created: "2024-04-12T09:08:22.685875364Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: b261d370dfb8bde4d15d6285d57c87369d9c66d12b92c8c6ad2b85495365759a name: azuredisk-csi-driver @@ -12,7 +12,7 @@ entries: version: v2.0.0-beta.7 - apiVersion: v1 appVersion: v2.0.0-beta.6 - created: "2024-02-22T13:31:54.050248293Z" + created: "2024-04-12T09:08:22.74512206Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 0e7280d2bcd752668c4439078ffdfc4567ac97af97d8baa07c322b99c34fb741 name: azuredisk-csi-driver @@ -21,7 +21,7 @@ entries: version: v2.0.0-beta.6 - apiVersion: v1 appVersion: v2.0.0-beta.5 - created: "2024-02-22T13:31:54.048605687Z" + created: "2024-04-12T09:08:22.743490749Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 10189dd78863d24c9572c468e0d81b8781f83625118e6b205ee65e157aab0602 name: azuredisk-csi-driver @@ -30,7 +30,7 @@ entries: version: v2.0.0-beta.5 - apiVersion: v1 appVersion: v2.0.0-beta.4 - created: "2024-02-22T13:31:54.046410328Z" + created: "2024-04-12T09:08:22.74202479Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: b38901738bb600ff55cc91e1efb45c84a3a601bb815908a348df793960cd7122 name: azuredisk-csi-driver @@ -39,7 +39,7 @@ entries: version: v2.0.0-beta.4 - apiVersion: v1 appVersion: v2.0.0-beta.3 - created: "2024-02-22T13:31:54.045061127Z" + created: "2024-04-12T09:08:22.739769724Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: ddfe774c7b2326ff61c71a7e6fbfe687e97f06b6a8cc5e87c0b50ac0f320c7fe name: azuredisk-csi-driver @@ -48,7 +48,7 @@ entries: version: v2.0.0-beta.3 - apiVersion: v1 appVersion: v2.0.0-beta.2 - created: "2024-02-22T13:31:54.043801365Z" + created: "2024-04-12T09:08:22.738460996Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 7c1b8159465e7642b7460ec8e4e2a2965be11e8abb8310d86d9487676adb6adc name: azuredisk-csi-driver @@ -57,7 +57,7 @@ entries: version: v2.0.0-beta.2 - apiVersion: v1 appVersion: v2.0.0-beta.1 - created: "2024-02-22T13:31:54.042510666Z" + created: "2024-04-12T09:08:22.737206335Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f327e1205e7197cf87693012848e2fd76a213c7852ac57a50753ba9e41207612 name: azuredisk-csi-driver @@ -66,25 +66,43 @@ entries: version: v2.0.0-beta.1 - apiVersion: v1 appVersion: v2.0.0-alpha.1 - created: "2024-02-22T13:31:54.040530555Z" + created: "2024-04-12T09:08:22.735881624Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: a00216ca8bdd4550f01071c0a57e7cf49f20b4915164ec6c785d2b5e51893870 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-alpha.1/azuredisk-csi-driver-v2.0.0-alpha.1.tgz version: v2.0.0-alpha.1 + - apiVersion: v1 + appVersion: v1.30.1 + created: "2024-04-12T09:08:22.727493884Z" + description: Azure disk Container Storage Interface (CSI) Storage Plugin + digest: e4464d1307aa8ad436b52f8647bb0ef74de214c2481515d1bcd3f2b6618de19f + name: azuredisk-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.30.1/azuredisk-csi-driver-v1.30.1.tgz + version: v1.30.1 - apiVersion: v1 appVersion: v1.30.0 - created: "2024-02-22T13:31:54.03290781Z" + created: "2024-04-12T09:08:22.726317721Z" 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.5 + created: "2024-04-12T09:08:22.724560052Z" + description: Azure disk Container Storage Interface (CSI) Storage Plugin + digest: c5317e28237707ec9d04fcd6c074edf7abfa625ba82dd34ecca8d1edd8030713 + name: azuredisk-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.29.5/azuredisk-csi-driver-v1.29.5.tgz + version: v1.29.5 - apiVersion: v1 appVersion: v1.29.2 - created: "2024-02-22T13:31:54.031188173Z" + created: "2024-04-12T09:08:22.722627194Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: ae0c15b875bb0bd2a4c1135437f0abfee6bf3591abcc502604317b3fe46015ff name: azuredisk-csi-driver @@ -93,7 +111,7 @@ entries: version: v1.29.2 - apiVersion: v1 appVersion: v1.29.1 - created: "2024-02-22T13:31:54.030003813Z" + created: "2024-04-12T09:08:22.72148918Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 441c64c6487a89efda91f22aa40358b6f9d31c73e2f131cfc10dcddd628af54f name: azuredisk-csi-driver @@ -102,16 +120,25 @@ entries: version: v1.29.1 - apiVersion: v1 appVersion: v1.29.0 - created: "2024-02-22T13:31:54.027873407Z" + created: "2024-04-12T09:08:22.720311155Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 611857811af7ac3304f7cae847be4f35bad6735482700d5b2c970dfbb53f9a3b name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.29.0/azuredisk-csi-driver-v1.29.0.tgz version: v1.29.0 + - apiVersion: v1 + appVersion: v1.28.7 + created: "2024-04-12T09:08:22.719141092Z" + description: Azure disk Container Storage Interface (CSI) Storage Plugin + digest: eadfc2ab5a34ea8c3211e61aedccd81a3d10f3def68e2659328139bf12b083c6 + name: azuredisk-csi-driver + urls: + - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.28.7/azuredisk-csi-driver-v1.28.7.tgz + version: v1.28.7 - apiVersion: v1 appVersion: v1.28.5 - created: "2024-02-22T13:31:54.026703453Z" + created: "2024-04-12T09:08:22.717911819Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 1c8d6bb8882ddc62b699f877734f637291f755436474b4daeb80b395a9d5cdf1 name: azuredisk-csi-driver @@ -120,7 +147,7 @@ entries: version: v1.28.5 - apiVersion: v1 appVersion: v1.28.4 - created: "2024-02-22T13:31:54.025587693Z" + created: "2024-04-12T09:08:22.715857769Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f1b8fa60b0769577c563e33d475544577b37bb2430d027bfe92b91ad8588744d name: azuredisk-csi-driver @@ -129,7 +156,7 @@ entries: version: v1.28.4 - apiVersion: v1 appVersion: v1.28.3 - created: "2024-02-22T13:31:54.024481879Z" + created: "2024-04-12T09:08:22.714720239Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12fe80d19091cc4bc0025585da35d12bcab9cbc2f3e4cfd90eb4368e6967931a name: azuredisk-csi-driver @@ -138,7 +165,7 @@ entries: version: v1.28.3 - apiVersion: v1 appVersion: v1.28.2 - created: "2024-02-22T13:31:54.023358606Z" + created: "2024-04-12T09:08:22.713599262Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 044dc6ffb662914020a3a835f994455a3301a4b2b665c9d4b9496b422a93c8b1 name: azuredisk-csi-driver @@ -147,7 +174,7 @@ entries: version: v1.28.2 - apiVersion: v1 appVersion: v1.27.1 - created: "2024-02-22T13:31:54.022202622Z" + created: "2024-04-12T09:08:22.712441632Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 805d2f7437e7442739c18791e3eaf839d75bc9f3c1a10710e6cc6cb7ee06cbc4 name: azuredisk-csi-driver @@ -156,7 +183,7 @@ entries: version: v1.27.1 - apiVersion: v1 appVersion: v1.26.8 - created: "2024-02-22T13:31:54.020140822Z" + created: "2024-04-12T09:08:22.71107193Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3920ea0e2c358bc659b4bc243ad35420959d59c7532ebcf775de6c819ff0aca6 name: azuredisk-csi-driver @@ -165,7 +192,7 @@ entries: version: v1.26.8 - apiVersion: v1 appVersion: v1.26.7 - created: "2024-02-22T13:31:54.019103934Z" + created: "2024-04-12T09:08:22.709065871Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8796e69d622aaef119bf87047d1d7ed699e88119d48655590813ec5a38a3ccab name: azuredisk-csi-driver @@ -174,7 +201,7 @@ entries: version: v1.26.7 - apiVersion: v1 appVersion: v1.26.6 - created: "2024-02-22T13:31:54.018090041Z" + created: "2024-04-12T09:08:22.708010952Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 277051eba7872783d34d9b8ba7bd606f3161afe571523eaabfa8b400491010c9 name: azuredisk-csi-driver @@ -183,7 +210,7 @@ entries: version: v1.26.6 - apiVersion: v1 appVersion: v1.25.0 - created: "2024-02-22T13:31:54.017090219Z" + created: "2024-04-12T09:08:22.70697019Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: cc1a78eb68d741382945252fdc86dc38fc903bcc7448eef5753a1e663e4e6e3c name: azuredisk-csi-driver @@ -192,7 +219,7 @@ entries: version: v1.25.0 - apiVersion: v1 appVersion: v1.24.0 - created: "2024-02-22T13:31:54.016069404Z" + created: "2024-04-12T09:08:22.705958121Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8f4a2048cd3d8ef128e533c43c5b68464989e28949658010599d466b2ccb1b58 name: azuredisk-csi-driver @@ -201,7 +228,7 @@ entries: version: v1.24.0 - apiVersion: v1 appVersion: v1.23.0 - created: "2024-02-22T13:31:54.014950724Z" + created: "2024-04-12T09:08:22.704844506Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 4347271a297c6c95e10c4a880a08453c22839c95ad7db232d2d8fc38e926b385 name: azuredisk-csi-driver @@ -210,7 +237,7 @@ entries: version: v1.23.0 - apiVersion: v1 appVersion: v1.22.0 - created: "2024-02-22T13:31:54.012802311Z" + created: "2024-04-12T09:08:22.702802968Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: fc7adc9ddb406356bee117d3ba5c360408b4ee9a7decc30d34fe310d0cdd6aef name: azuredisk-csi-driver @@ -219,7 +246,7 @@ entries: version: v1.22.0 - apiVersion: v1 appVersion: v1.21.0 - created: "2024-02-22T13:31:54.01181784Z" + created: "2024-04-12T09:08:22.701821905Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 50a5c0860aa631c7e83affbaeac1a84c43c96b19175e1dd1c21cba472564798d name: azuredisk-csi-driver @@ -228,7 +255,7 @@ entries: version: v1.21.0 - apiVersion: v1 appVersion: v1.20.0 - created: "2024-02-22T13:31:54.010795176Z" + created: "2024-04-12T09:08:22.700839728Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 9f2a936be5efc45002c12d5bbbd8cb453e51a0c1668f6ceae51df656ac190c95 name: azuredisk-csi-driver @@ -237,7 +264,7 @@ entries: version: v1.20.0 - apiVersion: v1 appVersion: v1.19.0 - created: "2024-02-22T13:31:54.009290769Z" + created: "2024-04-12T09:08:22.699362895Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 6c044a33b4adf598b9810e8839f04a16b1214470eceeb61bbe48076552955296 name: azuredisk-csi-driver @@ -246,7 +273,7 @@ entries: version: v1.19.0 - apiVersion: v1 appVersion: v1.18.0 - created: "2024-02-22T13:31:54.008237942Z" + created: "2024-04-12T09:08:22.698347235Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 79474616c7373ed65bbf75050748fda16ae2f6b290d240813006abd74e733628 name: azuredisk-csi-driver @@ -255,7 +282,7 @@ entries: version: v1.18.0 - apiVersion: v1 appVersion: v1.17.0 - created: "2024-02-22T13:31:54.006835309Z" + created: "2024-04-12T09:08:22.697148802Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dcaad8438f57941c19f2269d9d4510591529f4de00353d12506fd277dc06378e name: azuredisk-csi-driver @@ -264,7 +291,7 @@ entries: version: v1.17.0 - apiVersion: v1 appVersion: v1.16.0 - created: "2024-02-22T13:31:54.005243361Z" + created: "2024-04-12T09:08:22.695184555Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 95108dce3a4da8aad2729ff8bc1587906b917925e6fe2e5935b5d25805080fb4 name: azuredisk-csi-driver @@ -273,7 +300,7 @@ entries: version: v1.16.0 - apiVersion: v1 appVersion: v1.15.0 - created: "2024-02-22T13:31:54.004273421Z" + created: "2024-04-12T09:08:22.694179814Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3da85b9206af81dc4217a3304bf14839158112300de7dbb95841e30daaf5e4e5 name: azuredisk-csi-driver @@ -282,7 +309,7 @@ entries: version: v1.15.0 - apiVersion: v1 appVersion: v1.14.0 - created: "2024-02-22T13:31:54.003303814Z" + created: "2024-04-12T09:08:22.693211156Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 89e87dead7767f8abd56096e436956b23a666802040f7aad91d5b6c36af8b098 name: azuredisk-csi-driver @@ -291,7 +318,7 @@ entries: version: v1.14.0 - apiVersion: v1 appVersion: v1.13.0 - created: "2024-02-22T13:31:54.00232506Z" + created: "2024-04-12T09:08:22.69222936Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: c109533218e0625e9ca33c2db5e73c4b550b88943f7950b33e02a344a8ff9f8c name: azuredisk-csi-driver @@ -300,7 +327,7 @@ entries: version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2024-02-22T13:31:54.001332113Z" + created: "2024-04-12T09:08:22.69128967Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e41f089e5216fc9263039310990d1e41bcb468a85879289af1834dea0c457aaa name: azuredisk-csi-driver @@ -309,7 +336,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2024-02-22T13:31:54.00026821Z" + created: "2024-04-12T09:08:22.690312557Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f35447c256488b1942342e9fcf8b6bed5f47b4ae5fb0fdae037110c5926803fe name: azuredisk-csi-driver @@ -318,7 +345,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2024-02-22T13:31:53.998292028Z" + created: "2024-04-12T09:08:22.688882963Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12bd0e1f20a2e2adcb04b6954423438d9ece7a2ad0fb4b4fe2969844d14cfb86 name: azuredisk-csi-driver @@ -327,7 +354,7 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: v1.9.0 - created: "2024-02-22T13:31:54.039066136Z" + created: "2024-04-12T09:08:22.733836024Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: d917427661ca4ec13add77efcfe31d2c7c989e20b1427dd566a05ad1bdd98fa9 name: azuredisk-csi-driver @@ -336,7 +363,7 @@ entries: version: v1.9.0 - apiVersion: v1 appVersion: v1.8.0 - created: "2024-02-22T13:31:54.03805426Z" + created: "2024-04-12T09:08:22.732823034Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: a37491e845671e81b9567f2d1a746dbf4f182fde0c8f9e689dfa632c5651c6c9 name: azuredisk-csi-driver @@ -345,7 +372,7 @@ entries: version: v1.8.0 - apiVersion: v1 appVersion: v1.7.0 - created: "2024-02-22T13:31:54.037300042Z" + created: "2024-04-12T09:08:22.732037228Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 4df7a10466206c60deab00efbca57f67f042afd1ecd5daca738df28526f3ffcc name: azuredisk-csi-driver @@ -354,7 +381,7 @@ entries: version: v1.7.0 - apiVersion: v1 appVersion: v1.6.0 - created: "2024-02-22T13:31:54.036586223Z" + created: "2024-04-12T09:08:22.7313183Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: b1a4c384fdfdb6577dd6dfd3709fb746b5c79247846e5c582b93c3a1187f6d88 name: azuredisk-csi-driver @@ -363,7 +390,7 @@ entries: version: v1.6.0 - apiVersion: v1 appVersion: v1.5.1 - created: "2024-02-22T13:31:54.035839329Z" + created: "2024-04-12T09:08:22.730430947Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: efb42e1d56cc5596eb4e695b658c2748bc05cc6c47862e3f20ea6b5b199d01d6 name: azuredisk-csi-driver @@ -372,7 +399,7 @@ entries: version: v1.5.1 - apiVersion: v1 appVersion: v1.5.0 - created: "2024-02-22T13:31:54.034628443Z" + created: "2024-04-12T09:08:22.728894678Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: c8490efde8d4a43bd25f5c619887498dfb4b41edf3929ac8dbf0a9d3f691e6ae name: azuredisk-csi-driver @@ -381,7 +408,7 @@ entries: version: v1.5.0 - apiVersion: v1 appVersion: v1.4.0 - created: "2024-02-22T13:31:54.033562317Z" + created: "2024-04-12T09:08:22.728174681Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 55e5e17aac7c144b21a198867654ef70ad272987b0bb165782905adf91ca3c03 name: azuredisk-csi-driver @@ -390,7 +417,7 @@ entries: version: v1.4.0 - apiVersion: v1 appVersion: v1.3.0 - created: "2024-02-22T13:31:54.031739684Z" + created: "2024-04-12T09:08:22.725133483Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 2665483e922a577feb8539ca7f774bc70c945ce490294fd3378f098c2d244dde name: azuredisk-csi-driver @@ -399,7 +426,7 @@ entries: version: v1.3.0 - apiVersion: v1 appVersion: v1.2.0 - created: "2024-02-22T13:31:54.009801919Z" + created: "2024-04-12T09:08:22.69986739Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 2bbfe2f9d080f1b3ff10590c7168d05ce026c5a73332b4d48014610a52337808 name: azuredisk-csi-driver @@ -408,7 +435,7 @@ entries: version: v1.2.0 - apiVersion: v1 appVersion: v1.1.1 - created: "2024-02-22T13:31:53.997250747Z" + created: "2024-04-12T09:08:22.687491356Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dd7066be8f499f6c1a396ab27c0013c09f5a8d8319cc04fbdd480d31107bb851 name: azuredisk-csi-driver @@ -417,7 +444,7 @@ entries: version: v1.1.1 - apiVersion: v1 appVersion: v1.1.0 - created: "2024-02-22T13:31:53.996732928Z" + created: "2024-04-12T09:08:22.686948131Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3d2a5189416dd6a43bd3e2097bbe23a8db347b6e1a36c6a43fd59cc9c9633ff3 name: azuredisk-csi-driver @@ -426,7 +453,7 @@ entries: version: v1.1.0 - apiVersion: v1 appVersion: v1.0.0 - created: "2024-02-22T13:31:53.996213933Z" + created: "2024-04-12T09:08:22.686418217Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: d179bc6f338518859b6efdc3b3bed8d06513313e8047563eb4b654b2d417c81e name: azuredisk-csi-driver @@ -435,11 +462,11 @@ entries: version: v1.0.0 - apiVersion: v1 appVersion: latest - created: "2024-02-22T13:31:53.993936503Z" + created: "2024-04-12T09:08:22.684120295Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 1ecdff9445d2e59d5f020cc45c633a0e025e12ee131bc2d4a8346e89cfe95393 + digest: 8afb7830b99968736e7734c312207f265a7deb5829f4189d5f343d63fe00bd6d 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-02-22T13:31:53.99260529Z" +generated: "2024-04-12T09:08:22.68269916Z" diff --git a/charts/v1.28.7/azuredisk-csi-driver-v1.28.7.tgz b/charts/v1.28.7/azuredisk-csi-driver-v1.28.7.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a5d1dbdd6586de78e13f83d5bc6140bd6aa9cfa5 GIT binary patch literal 14112 zcmV+*H{Zw~iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ{avM34H`;&eDG>C0VS7hKQL=2$@`PhUBdI+)ZA%JK?)hfh zeLPTAlEkP8)Bq?-Y_}ukL3Uqmp5z2Bbw?G87hP<#cBd^?0f}28k;wcZfq#oR1VmhW zz93$}$rSj`;TUt-o#9FN!#bW`uh)CEzpwx8^?K!hdwVZ>KkV+m>b-pZYPYwy`$KQ{ z<=%_^A5d>CrO$a{Au<1ylz1!1(0rn_4>igG`@dw=S_-U>kYoJ3N; zJW%|C6vLoHMkOW`I2uUC@d(ffmB5GC2lVW4aPmBTe;&poLboWMKp(j{ZfjaD^r8FZ zdwHDme~QBx#M%Tv^Zeg^)$8q-=l{!IZ!`bz;~^6~g8mjlS6ILWM68b{KJQM5&zWFD z+4b3E3uTj5B}Irs!~~Iy&-!SG39)k>Uje5eK`1`jDR7m}A@L}i-0DRXhv7L3i9hS3 zli?|o=Ntr3xrLA~$T??Iq9g+Fb|otAjj~L+GGBCGc6%*~JdhIm<3-BDHb<_o{qBoa zg}l?;QK75QkCs@bc!c{*bohDJ#3{F(Oe}MS49N2bIUY!pDjgAP#lRdlZU1HChu3Q?iRnoe!2fu zBZ^wU)>f{+($97MrpSdX4h|U|lFiJaM=90ZHG50(R5i@ur}6Cy?OOHH4N zUO`^=dhdyS%i*6fhGkyvmlzR85##c|8O@f%nq|j+9T|Cja`Yo-lau#HgG_Kw@a+eRjcgC0 zkE&9(#j^5ZYb#mq`{^PVWQAm_u|q4^LMYun)Nx-MwNGT(Y%Zhjz3T3D_w1Vnm9tRv zVL_Q_Qv-Ly7OsUuo6?!)^qo(Z<8&;98W+3Ppd_!&tU>o;;@gNcGQgNJVj4XIwz2^WAu^v zwv9Tv79I4=yg*ko6u=P2q12kbv2C5lS0V9{o{ifG(;&^}Og@m8$j^ewtL9-Mu+I6OvgFU~%kqh}{Wy*i5sd@>{uY^S`H?oWhdT&?RA z$uS_I^zx)oG*YD^ERg-3S?r!?d@XFXBp#`@Ot9>ur`IsseKW=3?)Ejz_S9c{PYnwO z0a3$(!yMOb4FSuTLnb$V9OxD&gQrE*B7L#N8g$ko+xQXCh-K(cya|? z?J|t6X}V0amp~D4typZkvJjz0hfoOgevSu97m`e8K!gg3sSilbBFGKoGjCV*iYdTo z1n<-gv0AGi3&|!Q1n`3qP-(T~IQcz@heLAPN1e05z#Bt2=_IC-w`_3q)4Nm}*RVjR z^Ncbjw8isnbaedZ4{x{8$?1=0+vu+c7pEtuZ@1C$#l_i$()y%~lpw#I*-EGv`QMaf zzqUd`sT!Sd! z2&T^FnNQnj2m#|bt<5>`;aMcfg#3n$QQ20`d`|2JS`O%yEBWr&H8_>$74<;eCF~bIRliEq%4@Q+liDO$nDV4!w*EOY7Uc>ZG-%u1BB-ucF*<-4GhE8{v{4 zv4FoYA)MkuRExylXL_3)<5ATI=yOO0m{*x3-=>IVFzq3=ERRQzGj>O_x?D%>=toGdz z3-r!O3!EKA&(p-bh?6Onka!GcJ6lhlZ0S$uaTuB{x#*)`e%*S4JgbFvY*t0ZRJpUY zr4)vc;ou|yD(!^vLjqKu99b>v3HpUaMiu@QoeZ`5eQWejia}NtaMoJx> zXsd95h^4F43#H-b)prRLQ>oN;^~w)pVRpkxa{;O}7n|hd2;C4l*2xwt)fRDbq-30> zrJME8KFH1UaF5gfFJTgeSc2F&J-a*}bmgsFrHpy_pBMXkCIA1c*ZX@L|NnhFm*d1j zaHKIkgA-&HGbN-(cE1!r6tWovN~&v5ruwjXt#Vr#?ctUNwzIO z4Yf0w3`x5wQ~RhWDsA-=6Jj5AT=K@5$Le6-)vS~&fl$Y=X72_Q}e1)X8NnZ9Q$@#l>Rw$9&`C|ulK6Ny$>Od&HI^7DW;Ybzt z#-WHZeLWjuGECW{tkk0~U#g0}&crbtL1R9Y?gdmcQI4P7e|lfOJoH?>i)W7f_j%yu zeOF6iLL24(?*6M6FJ2er|K9G4*Dp8n|30453`@t^8vgVw^gM4Xj}ylcfm;bw8+*Ff ze=;&>ck7zappOo<&*Z|2-XqY)C&K8~1SAfy#Ql=N%eZhetl0>tmS z5I`Ie4@VJaQwWOkua7#3U13DzIKJxoY*KdnsupmH!@T!dTNQR*y?WV6U~7cYOELi= z@g(Xa8i!%($g)l;n>*Ka!l2%5$83oRGz@NJyn%Je3|ZS7rYDPDRcqN2@+Zf~cSM*3 zQ5bU^R%)lei812_oRHWxr}hJ(qd3I8oNWss;j;+(DAmP-Erjf7XewULIe5+qmB0@b zjm&mhI6iPf1L7;mqL@w_KN8m_5r_j0W_inzWNHbQj03{9YF%rr`iEfj9LsSZbN)H$?8S{0#SrHZX1u1UDrfjDN4<0x_!n8 zd;asGF-_l$i9fd9sMM>A1$xGK;@y3ol;LV?1b)}h>?*yS2nkdgUN{UfnVcG%de;7d zPJI6JVWIg#a)b49w?3^J4$Yu|Hfc9BTK}z6C3MwO!UZs@YKz#_Kfsqtl`!ZD?WoOV z&*n&T2TWbmYdWBms%2+fBvmwRoe-)$&Vu}=+iWV3n$!)yj%NW^`kET<94q7oyorZ3 zw-3l~WhO4apI7tC($F{%8i_?10(3QVB&zHEX_Zv9)AL_jR{6BPx<$s3ES*N>lxc_C zq)H%BJ9mlNyRa@gH)aURBp^A)QpqziOzo&col>zO_GOI2aF!Ca11*fnLnXOla$Kr{ zhK#uDFBt+VVxBodbbibMMU0qRQgqSf)Wm}0uF$rps`++DX*PjIyjr~i0^4Io7-+@7ieWtzWiR3oVVdx} zKAWI+nPRLl9zLT};A*Y$*@%+gQrcQ1s6zEVN0w-6J%-}YI3W!RY=UQqgO(~W&C#=m z<WTGDXY%+-{kuw7VCs(m#TXlZk%zfICK7xZbJ$V3t*$!N zDsp!cJV|XCPYZReOhfZ%1+rlTln!Z_%49XIs4mGD$AilZTBZi0-20`qTx3I_I*iaE za5IQn{n5)j4K$NlPZ!B#O3JJ8)r82D(}fn>hkDPTb;Bso>Jd7j=nzjJJj4R-d;nBW z3r}@yyCF#Q{<P?ztAm~(-QEbP^*Vl|0@{C^o$l~ zlWv75LYJE92!xu^$z&2sjZVWunMzDXyIDIbH0qn8zt*YWuEeEQ*5=JMyrf(^i6V6F zqExG4TZJ{-iPTWdb+;9yS%-H`&#E1b5+Fjv6QlZGf%RzD5Y>L})YX%?x=RaPBFA&1 zXKGMG^a`}$y1biA&$uKT7bU?R+c+2FpnB$UC$A9z$y2*cX~8J9d21L2*R-dwn77}R zVOrhOxf+-02i1YA8zQ^4tf6bhO%EHR;mnR5E~x^F;eN_QTdwdLvMUaz`Dl8o@{v(E z8@ljH$^Nj9e(BWC{LZg)a@Mj!C1=eBZI0x9>ewP`P9xQgz9XrlGw1CuU1W5LN^`h! ziIEV75>XPWNldIM$?W0G0%|-<#a(X3g|To?_yaT|Q=o}gTNgjZQ$UkAlq3o>%BI4_ z0^F+uqgk#9c+Mx@H71sl+)D+Pnb)pqfs5sCmq-{pN47kwEvgaB20-PiWGvB5(tB74 z<`cc77El02cINxH-RS4&S-=vOdCEye^{A*m(fBbrR?0kW%VJtg=$#O@gP1EpYwZQ1 zdQ`6fD4Jk?UD2UTwUc&kn@wXjM!LpBOhQe01QfKPM+r%#D0Y!P#^s=Cb!-d!(kH&` z;c}S@tdbgqnnY157D_-%qdYm3(~870+vNuJ)FjC1^+sEdIah0iQZD%{?I&! zj4J&=?FM3DEiJQjpLqrHMh!+=1B!F+AymJL*!Mw*VH~1oS2MMnApy2(50;CWX-cJ- zy-L9>^Bi5lP%&04Oc51>i_KcAKsK9S=1J=2+${vQv!Pj+<}GYQxK%W#Y3*d_pjkT1 zL}V(uMJBu5WsI?&G7h485@(|x&P%AnpETiSIme#p61zF;S&f0Q zY*<7m6a_PiC&WjhY*Vhb1^HOOc20_?tJ;u+p*f*v%SD5bJr?^IS95hE4=ZDD0Vc11K>V?v2*=uOUs`XUqbY0&OA(NVl#;PW}1p`P( z4o(Y1q*fKGBE=Y+j976HPUTEGa@q#Xs!qt5UQ-*$rT8SrBm*qL&2bIP51cbThwF8k zgxy0dlq3+qrx4grfj*m&<0RXbZAXL25MeqiY{$}5Z(|4}wNgrk;z%i{Axt66F{XG% zy3loz%_GjU^v@Nk0DKaFnw{DtEypm+Sz#riF`$a^R`U`jniGvalpBp=T$w8@KnJVP z(qIB3~^ zlo`FcZE32ohk%zbLrp-4^bCIaDXI-NX~FIrfW#zBJ+M?q^Z}mmT+KGRjuREzrSsCR zvPli=cXjFs*=PjzyfsO!PSlPWCKL&vf=Dujy!Po>g3x@6jC3wRl@625%a0k>8!YnO z<~AzKmmPC!-C%mikPmYtOqMXGg0%o*xVq2*&2TNA^-E>LRA{q!=9VB`-A|HziUqh< zm9}eV^GeyEU^Hm}HPtkga!RfiOXu8$(zPPUZKKfLkQ$vum>_4JOCCeVvCcY)q6uIN z1yKzo6hzr&(X^^o(Kz|8NKp?}#%`P}C9Y4&l=ri903B|=Hw#kA_Q^oy0UnJr!KF{G zqDE>KbLu>RI;v%#u4WQMdmS=24;*Bd(;?G&;Gj6Sl5=N)TLG$5Aaw*l!xhG7UOSL3 zme-?T`6cI5(EyFpGY!%Z6RZbD+nvnJDC2iZRV8|s9v)3DFq#GspT|y$idnn`v0(nmm$hATr*9UoA zC)DvV*e^5O z2_X(Xkf~bsZZN0XuV&*YXxy119Wg5Ga+nd%E#0=l%$_t91@C4;HB~{C%CAvs0!^@< z0!iEQ^(+=g82ziE(?^|}BOf~nnJU&ZtM&h*!%NpwC}lR=--iR7enT+R^#DsZP||uR z>6*Z!8@Om2xad6qL?0I<^jiaft_t;B5!AUNd~;=>=GP0!Tm$%Wb(rPKfXX|BPCf`; zaaDBUIt&W9T3-WDEIJa*c)wUK4+vG9R%|WEu!mVC=2u~bMPgM%*Ef#eS_fKdZM?W55^Hr%Tp4AxCQQ|; z2&z@_QX6#Cy3kSCrCupKD)*`xAC*}lu!&iih#KwgyAxJ`gB zhn`%zDYJeoiV4*&yrqP&A$i;^VOH;4h=~W=~zWYlvhwtyHVROGVUHWq#o$ft@^Va0AeI zQg$Ha?pn=WnvQJ6km)_2b&Qx^D^dZ3+t%0=y2r+t2B8)km5_4|uB!uaY@*{mR=893 zI$!hT6|OpCWUc9-2(ihQZatLOF!RhfPH<$l#U;i|mg7=!IYRm>gJen1LVu&nF$l>#`bgv^}-*XmsB1RoC4hukQwVZ5U`3__e06E)4cE zdy#eSK-RwRc$~Y94bD61)4SeL+=mQbWY@5+eZrmW4A!w1_$IXfN3HK~jxc;BI{jC# z#kcphY`iNE?_Du6{2tsZIWtnNgTK6<}~EqU#c z`@_LWvTh_?WZ@$k8tYKRGP%9zp>Exl70o9N;R3WCU4((B)xLs|(UDjsxIw+cYWX_1 z0k4!t))mozK(9oRIQkt*JCu@7Cg#9uhDo}?} zFCgN&<8s@iM;)5y=OeH}lpO~fpXbJH^9Z+ib55xj4yk98$>2#FZ9=8ant#m1Z2+i8 zus4~vD(#qW;%c!rWly6ir;Q@zpt%;~n5(X9GM6pd4J{044w7p!sW~XOH?sZ6cmf~R zA(PZ5lo*-spqttos-RsQOE$sMl5ru74+kd=BqeYpNB}<0eS0#&NeHe$Ty%W{hJW-w96E#ED zUG`7Z-UiyZ@o=WRzv54{C>9>ya=l~Vcaxj}{xouQ)j zbPVii^!o8>=+~tKgd``r3TA?5jAuL3=Z*^3Ok>1&CG4M)CI5(p%p#=WoRzSaPfKdw z-A5@&+W!}AQg3l?shFV@)Iy&RNK$+vK_`FlZ1Jf%t1y4bbMumVk~k(=Kf8N14IkM! z*eFA_-9>bf)*YTt?&@yy-F9}3K*)-n8}TL2}&Yf*3jv zT*Q}o5nbw{$vPTU8($Wkrm-=N1WuO$LPy(mMLSBcCsPw0U7rF@{NGwR3&?N?I--UE z9WKwPAQ(#T4`8B=poGU+hV6*RG5NgoAIq8u>tnS74$@IM4Ad zrs{5+O6WjY?d*^BTA$|bzy_qrRdlbdBsX7OY%20<7^?nu*Z= zJ2*StdCO`@n(@Lq41hjz2NR%jTgwj<(MU%Q9H=kd38rKSLUwH#z{M|nzt*V(ih1D{ zPofaE6GvRCf+cf^2-6)YMJ@0g8!FoaC}K&_@EhG+wLB_45nBshNUoueI@$o9Rr9mr z{x7ZzKh*QgL<#JuL>*JP)I6GBNU};A;{hk55xDPuKz5s?<2yZ9BAuueIY)xpU_I#) zU8(dhd%xD!xY%E69fw=AXSV1>s9t(*XQY@>iEmX&zS1`8dR7N|)3bT16al52Kp1+- z-v0*AR4*h0XT!N-E*rTu4e@t&bk;XDQw%ktNsOx@QL@hj{AyM$kTHuUJ`#V7=_rji zIE-b?VYv_uRZDU5I4s6x!SP@=*OrZ=?cx+Z&3oD!8`l*3lTCq73Eb@5Fn&$w$WyH8 z*-%M4di~jXqW@XCEqVcK+n~Z~cbBbF<%pf78kM*f+OK0z2MJ86l((cAr82f=G7*6$ zIDjm4&KQEgP&YyV}v*TeJsJ~69Qh&Bo55}a`^!;#hbUzFplcnZr?UuJLh+hp# z47reEs4ncES5?a$uAK+E61ZOZ`_AtNJsh0m4f(F>R!sYwJ3<$Vot7F#YRuooC~8F; z3D_u1srx=NgP;$T+&b4b$^`gK2U%1Uf%+^kK}9h|gvwX@U35lu{_O-YHc^Vx-vjqG zrhoiD;{Tlf-F97Z{+T+{LaBl%b$s_fU-!J;uGiajQ0(>k`v1{~%ftHUaJsHF;w=w5 z%bo|j@H8I-&2Ce5NVTsm9$L)`zqxtyn~I%=ANReRrA5iH1a0o#{0{HlY#W}f5diIK zk%dGr8IjFt&|8?JD`C>+GRgz+^Wv3UD>ttc@2%Ejx>5u{i*od$DOwreTis*q<&Q187mM42wKF70$Q#)%pqqD$?oJKwF8$N)u z@^PEh57#{MqcrO~IP>iulUeCN%qmA;zRp7~D;{Tg%s1CAdyZk)gQRltB5Ez)I%<)`I+B4dcHmntx^7{#p?Ft6=e0LEW!{uiqf) z7jE1JNxwnTZ!q&4%=`v3|M>3zo^K-iZtnmuIu%zzt*?wxUlo!5mEzC8Ikfra_U&&I zL4K!qZ!d@r-`v0bnC{-JO8@S?eEI7254-!XdM{tU+U@P_{?OZdvHSAH52$yyO*c<0B<4T#RxYdDxUb|f zQ|$<%kj*AQW$9{{NbF2^3wN~`sO#s?sQa_Q?B$q38`r;l*~(iZbMY zwmyGGg!*9|0P3VX)(!C$grbAG=yz>(rxNX%)Sg*`9p#!lmZr)m+28Oa%qZ+96qH<; zLo9b0jcH5acAAz2B$zf1QAm6&>Uu2sZb}jmf-jSO>jX=G{7yG55uiAV=J$Ovdo7i8 z>{|EtD??|2BF&@PPljpA8^*6ghJzDDl*n1vfEG`V3glHq(xhEt)9%Cq`lut7-dv#H zVgMr+yvs9$9jjae|Fi%*L@YQcbA+yVi7V!pf=XD&Qg@LF9>IAWh6C_9$Xrq7FNN~z zau=&n=|J;h%!E7zsk*;zkaJ10d`bf#J{5%n zMJB$3NTqKqIpTzIB4-&s#j2^EZ*FGtd`@KUrXK-*tTQkw;Z|njBfwYt!E?@rq^MdO zCGjGrl1$*p92;mHHpxQZX}fO7fw;ZETjCwD!#cGu94URd7bxWUG^&nNvBh zT$>eCX;v9hj&E7!7-MnHVMuOKXQxw~-CbXh^DKv2JD4Dn@mZdut+?o;PHsY){8w1O z1w;&e`BM4TM7uvPwZtRz<$ z&QFnDn){|sqjC^YVjH+8#~g4V-nd14jt&2+(_fn8Zjx{-Ira=p%uBS3x;|8!P+xj- zPFE|*=HZBV|BS?&m%XMGS1}jz&2F!d2 z!#u}SR=8-Q-kMWmDr;TjnaJPI_}MEj-vyP>CM zSW4`VTZ@wen|$rE#7)>asnev(OOcgJYbQUP^SrH;NW{VJUe6^E?nfT95(fzn&6fp* zX}i~R%-hnm-G7K_+dOI4K4lXQYc*f<5#Ji8Y>Es>IeCy}UDxzoppbs+Yzt58yRSvN z>E3o`-_O)-Rx&D5<^ER0h6$ve`nk8<^vVrts~N^Ykl$J_h!-aH+SfxTUFQOoq+EVA zT(PY6P7WvA-p7o2>X}RAJ;S>mp|Jo@`~BZ&FU8YJhT`_%0(>?FZgB9&w-MGiT>pqk z7<15yY?(r~$nWicC$rIV(A=3Ak||ISLT!1kpv`1Va-6FS>z$7cq^r}Un0U!qxvmo1 z%+2D)wT_2ONtK&9PYXG2l>+&l#7+N*l`4H+zqe zr3)>naJ6My_@|2qP<$1_CC9@d@!w;LN5FM>jpBT;JTmclcS3y51RF|yBR#$rJH8*O z|9Lo;Olj${kbPrX?C$OD?(Y7nyH{qn^EeFcX>@clJZ19Spf_^qOb14s-R9x37ROia z?Q;3^ttt`YvSuqG3%y}kAukv;@S&)zr$#fCyv{1^BwVOk#F=D13;XEu@Z2?f62?j` zdTpdqX8v2NM5-ZMl?_?KB_+|SCAGA)O=}n;WTSU5g|No7ln9zXJUbkmd^$coIzKx( zy>!{!CLlTSMJnfdUHyMGg2|?KFrXzD5TRzTho=IhM_B-MyJMU3V2VkIuSiJbYyk39 z<#3apPCPk_poZLZayg4?jCaNxueday*&YJ7&Nr9cGGwtnPB0`RPiPCZS0<9Hflhv? zQyX*k>B5vV&8#K)28*Q$hUCQpxQ9nTrK9a8%?APeK&5aK$|!gu9uCQ^gHW8180Zvk zLO2ZBjR%uR&I&zHXFgHMk5%f!tm$>EA%y2+e+-_Kp=UwTwVWcvp-Ovs`R;@cETFn( z9%*K_LeiTUDOp3;xo$bhmgucl@V6HI#kuS>z}h6GZ^acMdtX@di&YvLZU1u2L5x`# z^wG=0ccmV^1zEE+46yH7u!ygPPnZGPm;5f8-7s`ohh31-fN z-YCCfdp?K28RjxzazpZqk9%ttQ*zti*{RpAtu8^KEOPYu zs&l1_p-!i&7@G?GG?En7FU4B)R<>;1(I@j$vHEdJC#p}10>QOeYa;ImD zRV|^|u3|-Qe|z?6aP-rscV}-uy*vK-_+8sFH4ndKgQK6`Wh#-Y1M-^!q3Lc;Sd~$Ji`u_OzQqRZpgUi3vm>WR)xnqAjx{5-TqYLi-LohnOgDRVn z2F)@`lND*)i36^jxzt)Gp-j@OcW8tt2QV(zOo(vDhid$74mdcY;mjeunkQ1OvKmvP z6j{j`>I@-Z9N%wMbHu&qx;%*G0-|fO<6}>%?dXnnKl`$BIl`hHvxIRVW!xHbmtk86 z*2BqvomgvM{L!zNDF>;GsxUJR=K4f zmbD1auB|%tyg8TH97fGG^r2zD>9Y|2+pb-UV84Hui~sKRUheOe@ZWoT`!6^6@B4W2 zaPLY4-7SL-KOCIc;M|Qs@SKA~etc-Tl4Y-O~Jj`TE7{&HTTQ$1*#n0eY4K_ss}fjt`!r zXSszq`4|iMi&_s22OOqIS3SF)D*<4SmSC7LI)EikmLx?5;`BZbmL$cleySv)wALdf zCaCj3ax7tFLl7%fmC(@#{V7pTCiwOP#l}t@7JF7ruR6`orv847h?#+F5EhB|9<7wDcpD`5++FhSGz`2vjy_h<{KUMKYpBI{_$f-u0DQL zGA9K2@nfXJW{Zy>Yj-3cKO*l(#{IM+O~-Te>@@j34kIEY$E`qwDx=xtTqN1n%YbtW zsB(oX%aZtkyC}WPl6CB)HY3h)DRWm1D4~d1oQE*5oRyZMaflI?<2QeJc64#_^YO)} zi{rPS24{yqeL6q5{ELf*VM-^7^LHQKo}6kDM<*98juq9q-CBFA9Lkbyq?#Sc1gf7u zH83)JeV3z4+_hO@0yoy6*rUso{mBm0?Bhpg2|s=K^YN$Cv!mlrrw8vB@NDXUGBqyE zESRv?{`73gT{?zZiD=gps}t7EhVO(iGOM?P_FTB z9b6kUOHm`in?F1&P8V0wB@s>*(rxT|UPvayg%UEU%yFD|D$Vk6DcwPL0hFpI{LMk6 zbW;}qN7=Ag-fxUnyUc$4Z$@kS$U>m<#!AmxE9(xSjx6$z1m2LdiAN?yES4^KWUziG zM@rJ4ygwS0ivOCxF-h+@(yS9Cv+nhN1FiYip*44*XXUNW)7|A1v2PgsbJ+iQ{qepL zKbuHx5B@Ce|62eBFem=o-u{dIa{RX!uQ&1E?&WFc|H~~E8~@+N|F`k~ZTx>5|KA<> z|JLipyPLperK8+AO|l(o`>_A94!3R1yx{a~i2~B+OVA z>(4FShuh<@uMG)KYr_1!OR@6nGO9P9GcPxF+Ule-VFA2xlPWDnHK!n7HJ^ff(Q`Aw-3p<{ zb}bqV6&ETJwb8|0`!t25ay6x_ouD+0U9!{ zZ{)<1nAmgr7RcFCZmxSR5o0u*C6`TV2hkWO7YM3XS0FK(+UxP{9g>HGlS-t>=D|}` zRv5u*_U2(!>Gzfy%WB4X1G;!o>8O^oF1j~gI@HLV>D3g%qV-&BJ_tvu-#m~ac0 zRGocmn|W)Rb&JfnRR*<4Yq6=f-0&8uEIJ359cXu{4Q98df?6G<$qthgH%!G?Je4ZB zm;2>wvryqq)nMhGXfQ@M)vgkzXpRQbRL_b!QdidZ21#5P|F>}TpSk$I-Pe2N_&>X^ zdwU!F-+eqKhoT9yWr2U|!0_3)UH6ONGli~>-!pW+L-byC)b19$S1r#xWq0>|-Y9G8 zv<9ePO6dE$N7gjmd4+61MPfE7qSltfJ(|2L-YRRVdpDRwD@*PQk(gEeG2#(xdSk7a z)W?Z-Y!jn)gLV9NZo^r~KUlp7r`b+qX3Yjg_-&vF>uwmXBwGzTmoQm_rvC_lgO0?H z1~fR&<^6I&(BM*+zAXb1tY~7HZDz;XW_D_AGxv7$+%hP*oux2vW%;>5z|E`0cZGnn zF(V@2Lytw0OvrDVzur{lkx6+De0Y{ix7J&nHn_SCu5KN;I>WH{jjDUxcPcHUq;F7g zo7Tr*hhaR zf%Y(K5$UXg&ZBkNySuKcNGO1*Gjjk_;=`O;h?&^Aip7plqT1vrW1?wdRQBxm79{-; zi<&kmLi+Q1C(Gsru19_YS9!0#1R|~_aAk4RNKyBjgIZ}2Hp^FWsT$PCnw2{$MLI24 zty-&3bH!G=@vK2&&MCDlKIPT(;%qE=61j1UBdXw^y(CUzOv(^?IB8pYG);d4}w^gfYcO%+)kFV;kTttc`MQAm6&T6c1i!4$nP9<1H?X$*aOV;{=I1-fDM zsYF+RCYWDCfUwZoVhWR=?xMqsBZIq-GgO9jV3G%xBlXDw)<**x2-H;XpgEzk4HNTQU? z&)Ni&(oiDIp+`DW6%@*>#g*%b+v%9DYS8*iiJzcLwe%B#ZpK)m0EUEuF#15!!%AVn zXw2Ak7yXsUF^i>15E2UdAfP4n4|b&}`HTt@0EYlYn9JmtAGfTa6L-cCPP$^eqsVsp zC}Ki-gbInna4WFaB-fju0ti9lwHn6N)f2^hic*9*o`AHXk5He3((-ZGo@hp*o6B!H zyy|*tODgGoeZO+*p(?yxs)|LrX(dxxA@Qh2vz|j(Wo%YuTm*0s5aS`pG^X;qnpJSm zvBV~JfOa;4Is1Qpg?+Dh2yAgHz?}P^U%cKc@BjCEFE{7E?&T@Tay8yvU+;QyBKy$j zo);{Hf~eN1aV*D-TL@HJVXbpoQRcy|1Ws}2MVw8EA`RT*s<6d&`#cVf1HeN#B6@a< zKKiB8`E{$b(EieiR2zf@Dy`$dCYl1j(g{W&JKLxe5~2USQJZA-hv^*kmzJcU^DR-J zA7V0TU8*@Y<|?bWO1et6DYT8YWjkB838p~h5IvyD1YU2*f9CZ;xM@TvU9nV1QVugyrSL zeJwT*D399pD+}6=lXJG*v3OfyzI+36tKbvhfBK`ftHQw-N~@cv;5Om{;zTfV2=FXf3f?rjQ`)n zf4!$CcmI3s8Gw5M2h=dx;_Jb3`|6Dsf2~{Ujn(yjt*+}YaIL<&r7O|ecyy_5GiW&6*o-Tjvv{r^6m@>!0O6*N=!OTm zN9wW}@*W9_x8yX{VqT3UP~4`*Cf(ek^W+?d2v&+Kuz9|YXBGM1))O#S{_pRX&wsq$ z?QP`$eLN2)|1(SUM)GeY|K@q1XL0$zxF=wa{O`SZQ9l3oY7_tGo}NYQ|M#~z)Y&20 eEfpKdwRtwr=Gi>+pZ`Aq0RR6X)TO@w>Hz>@$EiF3 literal 0 HcmV?d00001 diff --git a/charts/v1.28.7/azuredisk-csi-driver/Chart.yaml b/charts/v1.28.7/azuredisk-csi-driver/Chart.yaml new file mode 100644 index 0000000000..f5868ed876 --- /dev/null +++ b/charts/v1.28.7/azuredisk-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.28.7 +description: Azure disk Container Storage Interface (CSI) Storage Plugin +name: azuredisk-csi-driver +version: v1.28.7 diff --git a/charts/v1.28.7/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.28.7/azuredisk-csi-driver/templates/NOTES.txt new file mode 100644 index 0000000000..6a9695dad2 --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.28.7/azuredisk-csi-driver/templates/_helpers.tpl new file mode 100644 index 0000000000..51fcc8a092 --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml new file mode 100644 index 0000000000..76df8af7e9 --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..cf78971ed8 --- /dev/null +++ b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml @@ -0,0 +1,279 @@ +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: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + 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" + - "--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 }} + - 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 }} + - 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 }} + - 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 }} + - 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 + - --http-endpoint=localhost:{{ .Values.controller.livenessProbe.healthPort }} + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} +{{- 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 +{{- 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 }}" + ports: + - containerPort: {{ .Values.controller.metricsPort }} + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: {{ .Values.controller.livenessProbe.healthPort }} + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + {{- if ne .Values.driver.httpsProxy "" }} + - name: HTTPS_PROXY + value: {{ .Values.driver.httpsProxy }} + {{- end }} + {{- if ne .Values.driver.httpProxy "" }} + - name: HTTP_PROXY + value: {{ .Values.driver.httpProxy }} + {{- end }} + {{- 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 }} + imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.controller.resources.azuredisk | nindent 12 }} + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} diff --git a/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml new file mode 100644 index 0000000000..21f941748e --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml new file mode 100644 index 0000000000..24de36157b --- /dev/null +++ b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml @@ -0,0 +1,154 @@ +{{- 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" + 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 }} + - 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 }}" + - "--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 }}" + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + 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 }} + imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} +{{- end -}} diff --git a/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml new file mode 100644 index 0000000000..260a68c95b --- /dev/null +++ b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml @@ -0,0 +1,238 @@ +{{- 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=3s" + - "--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 }} + - 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)" +{{- if .Values.windows.enableRegistrationProbe }} + livenessProbe: + exec: + command: + - /csi-node-driver-registrar.exe + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 60 + timeoutSeconds: 30 +{{- end }} + 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 }} + - 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 }}" + - "--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 }}" + ports: + - containerPort: {{ .Values.node.livenessProbe.healthPort }} + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path-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 }} + 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 }} + 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.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml new file mode 100644 index 0000000000..a1de301118 --- /dev/null +++ b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml @@ -0,0 +1,247 @@ +{{- 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: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + 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 + - --http-endpoint=localhost:{{ .Values.node.livenessProbe.healthPort }} + - --v=2 + resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }} + - name: node-driver-registrar +{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- else }} + image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- end }} + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 +{{- if .Values.linux.enableRegistrationProbe }} + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 +{{- end }} + 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 }} + - 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 }}" + - "--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 }}" + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: {{ .Values.node.livenessProbe.healthPort }} + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + {{- if ne .Values.driver.httpsProxy "" }} + - name: HTTPS_PROXY + value: {{ .Values.driver.httpsProxy }} + {{- end }} + {{- if ne .Values.driver.httpProxy "" }} + - name: HTTP_PROXY + value: {{ .Values.driver.httpProxy }} + {{- end }} + {{- 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 }} + imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} + securityContext: + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: {{ .Values.linux.kubelet }}/ + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /dev + name: device-dir + - mountPath: /sys/bus/scsi/devices + name: sys-devices-dir + - mountPath: /sys/class/ + name: sys-class + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.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 eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} +{{- end -}} diff --git a/charts/v1.28.7/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml new file mode 100644 index 0000000000..431a01b15d --- /dev/null +++ b/charts/v1.28.7/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml @@ -0,0 +1,94 @@ +{{- 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 }} + +--- +{{- 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.28.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..b78940fc66 --- /dev/null +++ b/charts/v1.28.7/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", "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.28.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..ae7e080af9 --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..8e4278b6f5 --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..1806e9c586 --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..dcc2ff60b3 --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.28.7/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..7cdaad0b4f --- /dev/null +++ b/charts/v1.28.7/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.28.7/azuredisk-csi-driver/values.yaml b/charts/v1.28.7/azuredisk-csi-driver/values.yaml new file mode 100644 index 0000000000..2496d6a164 --- /dev/null +++ b/charts/v1.28.7/azuredisk-csi-driver/values.yaml @@ -0,0 +1,275 @@ +image: + baseRepo: mcr.microsoft.com + azuredisk: + repository: /oss/kubernetes-csi/azuredisk-csi + tag: v1.28.7 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v3.5.0 + pullPolicy: IfNotPresent + csiAttacher: + repository: /oss/kubernetes-csi/csi-attacher + tag: v4.3.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.8.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.10.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.8.0 + pullPolicy: IfNotPresent + +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 + 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" + 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: 200Mi + 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 + 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: v6.2.2 + pullPolicy: IfNotPresent + csiSnapshotController: + repository: /oss/kubernetes-csi/snapshot-controller + tag: v6.2.2 + pullPolicy: IfNotPresent + snapshotController: + name: csi-snapshot-controller + replicas: 2 + labels: {} + annotations: {} + podLabels: {} + podAnnotations: {} + resources: + limits: + memory: 300Mi + 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 + enableRegistrationProbe: true + 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: 200Mi + 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 + 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: 200Mi + 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: "" diff --git a/charts/v1.29.5/azuredisk-csi-driver-v1.29.5.tgz b/charts/v1.29.5/azuredisk-csi-driver-v1.29.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a1306425e16eb7c551a3da86224047592bde7aa4 GIT binary patch literal 14401 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 H0P+C<&9y>8 literal 0 HcmV?d00001 diff --git a/charts/v1.29.5/azuredisk-csi-driver/Chart.yaml b/charts/v1.29.5/azuredisk-csi-driver/Chart.yaml new file mode 100644 index 0000000000..a4ba07d6b0 --- /dev/null +++ b/charts/v1.29.5/azuredisk-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.29.5 +description: Azure disk Container Storage Interface (CSI) Storage Plugin +name: azuredisk-csi-driver +version: v1.29.5 diff --git a/charts/v1.29.5/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.29.5/azuredisk-csi-driver/templates/NOTES.txt new file mode 100644 index 0000000000..6a9695dad2 --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.29.5/azuredisk-csi-driver/templates/_helpers.tpl new file mode 100644 index 0000000000..51fcc8a092 --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml new file mode 100644 index 0000000000..76df8af7e9 --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..7e4255aaa8 --- /dev/null +++ b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml @@ -0,0 +1,287 @@ +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: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + 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 }} + - 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 }} + - 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 }} + - 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 }} + - 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 + - --http-endpoint=localhost:{{ .Values.controller.livenessProbe.healthPort }} + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} +{{- 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 +{{- 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 + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: {{ .Values.controller.livenessProbe.healthPort }} + 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 eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.controller.resources.azuredisk | nindent 12 }} + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} diff --git a/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml new file mode 100644 index 0000000000..21f941748e --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml new file mode 100644 index 0000000000..73513e0d5a --- /dev/null +++ b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml @@ -0,0 +1,161 @@ +{{- 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" + 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 }} + - 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 }}" + - "--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 }} +{{- end -}} diff --git a/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml new file mode 100644 index 0000000000..cb0e2c7cf0 --- /dev/null +++ b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml @@ -0,0 +1,245 @@ +{{- 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=3s" + - "--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 }} + - 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)" +{{- if .Values.windows.enableRegistrationProbe }} + livenessProbe: + exec: + command: + - /csi-node-driver-registrar.exe + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 60 + timeoutSeconds: 30 +{{- end }} + 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 }} + - 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 }}" + - "--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: 30 + timeoutSeconds: 10 + 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 }} + 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.5/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml new file mode 100644 index 0000000000..dea8d3e55a --- /dev/null +++ b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml @@ -0,0 +1,254 @@ +{{- 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: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + 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 + - --http-endpoint=localhost:{{ .Values.node.livenessProbe.healthPort }} + - --v=2 + resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }} + - name: node-driver-registrar +{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- else }} + image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- end }} + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 +{{- if .Values.linux.enableRegistrationProbe }} + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 +{{- end }} + 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 }} + - 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 }}" + - "--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 }}" + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: {{ .Values.node.livenessProbe.healthPort }} + 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 + 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 eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.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 eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} +{{- end -}} diff --git a/charts/v1.29.5/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml new file mode 100644 index 0000000000..431a01b15d --- /dev/null +++ b/charts/v1.29.5/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml @@ -0,0 +1,94 @@ +{{- 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 }} + +--- +{{- 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.5/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..b78940fc66 --- /dev/null +++ b/charts/v1.29.5/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", "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.5/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..ae7e080af9 --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..8e4278b6f5 --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..1806e9c586 --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..dcc2ff60b3 --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.29.5/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..7cdaad0b4f --- /dev/null +++ b/charts/v1.29.5/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.5/azuredisk-csi-driver/values.yaml b/charts/v1.29.5/azuredisk-csi-driver/values.yaml new file mode 100644 index 0000000000..4cf8359fd1 --- /dev/null +++ b/charts/v1.29.5/azuredisk-csi-driver/values.yaml @@ -0,0 +1,289 @@ +image: + baseRepo: mcr.microsoft.com + azuredisk: + repository: /oss/kubernetes-csi/azuredisk-csi + tag: v1.29.5 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v3.5.0 + pullPolicy: IfNotPresent + csiAttacher: + repository: /oss/kubernetes-csi/csi-attacher + tag: v4.3.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.8.0 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.10.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.8.0 + pullPolicy: IfNotPresent + +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" + 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: 200Mi + 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 + 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: v6.3.1 + pullPolicy: IfNotPresent + csiSnapshotController: + repository: /oss/kubernetes-csi/snapshot-controller + tag: v6.3.1 + pullPolicy: IfNotPresent + snapshotController: + name: csi-snapshot-controller + replicas: 2 + labels: {} + annotations: {} + podLabels: {} + podAnnotations: {} + resources: + limits: + memory: 300Mi + 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 + enableRegistrationProbe: 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: 200Mi + 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: 200Mi + 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.1/azuredisk-csi-driver-v1.30.1.tgz b/charts/v1.30.1/azuredisk-csi-driver-v1.30.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b4f17073692268fdcb6de609ab72b75389264207 GIT binary patch literal 14445 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

I`VL3oZ+gd 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 literal 0 HcmV?d00001 diff --git a/charts/v1.30.1/azuredisk-csi-driver/Chart.yaml b/charts/v1.30.1/azuredisk-csi-driver/Chart.yaml new file mode 100644 index 0000000000..d25a27c522 --- /dev/null +++ b/charts/v1.30.1/azuredisk-csi-driver/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +appVersion: v1.30.1 +description: Azure disk Container Storage Interface (CSI) Storage Plugin +name: azuredisk-csi-driver +version: v1.30.1 diff --git a/charts/v1.30.1/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.30.1/azuredisk-csi-driver/templates/NOTES.txt new file mode 100644 index 0000000000..c198152ef1 --- /dev/null +++ b/charts/v1.30.1/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="app.kubernetes.io/name={{ .Release.Name }}" --watch diff --git a/charts/v1.30.1/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.30.1/azuredisk-csi-driver/templates/_helpers.tpl new file mode 100644 index 0000000000..51fcc8a092 --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml new file mode 100644 index 0000000000..76df8af7e9 --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..45e5f2f537 --- /dev/null +++ b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml @@ -0,0 +1,290 @@ +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: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + 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 }} + - 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 }} + - 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 }} + - 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 }} + - 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 + - --http-endpoint=localhost:{{ .Values.controller.livenessProbe.healthPort }} + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} +{{- 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 +{{- 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" + {{- range $value := .Values.controller.extraArgs }} + - {{ $value | quote }} + {{- end }} + ports: + - containerPort: {{ .Values.controller.metricsPort }} + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: {{ .Values.controller.livenessProbe.healthPort }} + 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 eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.controller.resources.azuredisk | nindent 12 }} + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + {{- if eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} diff --git a/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml new file mode 100644 index 0000000000..21f941748e --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml new file mode 100644 index 0000000000..73513e0d5a --- /dev/null +++ b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml @@ -0,0 +1,161 @@ +{{- 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" + 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 }} + - 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 }}" + - "--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 }} +{{- end -}} diff --git a/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml new file mode 100644 index 0000000000..cb0e2c7cf0 --- /dev/null +++ b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml @@ -0,0 +1,245 @@ +{{- 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=3s" + - "--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 }} + - 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)" +{{- if .Values.windows.enableRegistrationProbe }} + livenessProbe: + exec: + command: + - /csi-node-driver-registrar.exe + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 60 + timeoutSeconds: 30 +{{- end }} + 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 }} + - 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 }}" + - "--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: 30 + timeoutSeconds: 10 + 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 }} + 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.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml new file mode 100644 index 0000000000..dea8d3e55a --- /dev/null +++ b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml @@ -0,0 +1,254 @@ +{{- 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: + {{- if .Values.imagePullSecrets }} + imagePullSecrets: +{{ toYaml .Values.imagePullSecrets | indent 8 }} + {{- end }} + 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 + - --http-endpoint=localhost:{{ .Values.node.livenessProbe.healthPort }} + - --v=2 + resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }} + - name: node-driver-registrar +{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }} + image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- else }} + image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" +{{- end }} + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 +{{- if .Values.linux.enableRegistrationProbe }} + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 +{{- end }} + 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 }} + - 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 }}" + - "--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 }}" + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: {{ .Values.node.livenessProbe.healthPort }} + 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 + 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 eq .Values.cloud "AzureStackCloud" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + mountPath: /etc/ssl/certs + readOnly: true + - name: ssl-pki + mountPath: /etc/pki/ca-trust/extracted + readOnly: true + {{- end }} + resources: {{- toYaml .Values.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 eq .Values.cloud "AzureStackCloud" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + {{- end }} + {{- if eq .Values.linux.distro "fedora" }} + - name: ssl + hostPath: + path: /etc/ssl/certs + - name: ssl-pki + hostPath: + path: /etc/pki/ca-trust/extracted + {{- end }} +{{- end -}} diff --git a/charts/v1.30.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml new file mode 100644 index 0000000000..431a01b15d --- /dev/null +++ b/charts/v1.30.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml @@ -0,0 +1,94 @@ +{{- 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 }} + +--- +{{- 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.30.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..b78940fc66 --- /dev/null +++ b/charts/v1.30.1/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", "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.30.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..ae7e080af9 --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..8e4278b6f5 --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..1806e9c586 --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..dcc2ff60b3 --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.30.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..7cdaad0b4f --- /dev/null +++ b/charts/v1.30.1/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.30.1/azuredisk-csi-driver/values.yaml b/charts/v1.30.1/azuredisk-csi-driver/values.yaml new file mode 100644 index 0000000000..62c02a7545 --- /dev/null +++ b/charts/v1.30.1/azuredisk-csi-driver/values.yaml @@ -0,0 +1,290 @@ +image: + baseRepo: mcr.microsoft.com + azuredisk: + repository: /oss/kubernetes-csi/azuredisk-csi + tag: v1.30.1 + pullPolicy: IfNotPresent + csiProvisioner: + repository: /oss/kubernetes-csi/csi-provisioner + tag: v4.0.0 + pullPolicy: IfNotPresent + csiAttacher: + repository: /oss/kubernetes-csi/csi-attacher + tag: v4.5.0 + pullPolicy: IfNotPresent + csiResizer: + repository: /oss/kubernetes-csi/csi-resizer + tag: v1.9.3 + pullPolicy: IfNotPresent + livenessProbe: + repository: /oss/kubernetes-csi/livenessprobe + tag: v2.12.0 + pullPolicy: IfNotPresent + nodeDriverRegistrar: + repository: /oss/kubernetes-csi/csi-node-driver-registrar + tag: v2.10.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 + extraArgs: [] + 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" + 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: 200Mi + 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 + 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: v6.3.3 + pullPolicy: IfNotPresent + csiSnapshotController: + repository: /oss/kubernetes-csi/snapshot-controller + tag: v6.3.3 + pullPolicy: IfNotPresent + snapshotController: + name: csi-snapshot-controller + replicas: 2 + labels: {} + annotations: {} + podLabels: {} + podAnnotations: {} + resources: + limits: + memory: 300Mi + 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 + enableRegistrationProbe: 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: 200Mi + 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: 200Mi + 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/deploy/v1.28.7/crd-csi-snapshot.yaml b/deploy/v1.28.7/crd-csi-snapshot.yaml new file mode 100644 index 0000000000..d4b90b266d --- /dev/null +++ b/deploy/v1.28.7/crd-csi-snapshot.yaml @@ -0,0 +1,838 @@ +--- +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: [] diff --git a/deploy/v1.28.7/csi-azuredisk-controller.yaml b/deploy/v1.28.7/csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..6c38125a6e --- /dev/null +++ b/deploy/v1.28.7/csi-azuredisk-controller.yaml @@ -0,0 +1,192 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-azuredisk-controller + template: + metadata: + labels: + app: csi-azuredisk-controller + spec: + hostNetwork: true + serviceAccountName: csi-azuredisk-controller-sa + nodeSelector: + kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Exists" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v3.5.0 + args: + - "--feature-gates=Topology=true" + - "--csi-address=$(ADDRESS)" + - "--v=2" + - "--timeout=30s" + - "--leader-election" + - "--leader-election-namespace=kube-system" + - "--worker-threads=100" + - "--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: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-attacher + image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v4.3.0 + args: + - "-v=2" + - "-csi-address=$(ADDRESS)" + - "-timeout=1200s" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - "-worker-threads=1000" + - "-kube-api-qps=200" + - "-kube-api-burst=400" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-snapshotter + image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v6.2.2 + args: + - "-csi-address=$(ADDRESS)" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - "--v=2" + - "--timeout=1200s" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-resizer + image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.8.0 + args: + - "-csi-address=$(ADDRESS)" + - "-v=2" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - '-handle-volume-inuse-error=false' + - '-feature-gates=RecoverVolumeExpansionFailure=true' + - "-timeout=240s" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: liveness-probe + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.10.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --http-endpoint=localhost:29602 + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.28.7 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:29604" + - "--user-agent-suffix=OSS-kubectl" + - "--disable-avset-nodes=false" + - "--allow-empty-cloud-config=false" + ports: + - containerPort: 29604 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29602 + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate diff --git a/deploy/v1.28.7/csi-azuredisk-driver.yaml b/deploy/v1.28.7/csi-azuredisk-driver.yaml new file mode 100644 index 0000000000..16d5930975 --- /dev/null +++ b/deploy/v1.28.7/csi-azuredisk-driver.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: disk.csi.azure.com + annotations: + csiDriver: v1.28.0 + snapshot: v6.2.1 +spec: + attachRequired: true + podInfoOnMount: false + fsGroupPolicy: File diff --git a/deploy/v1.28.7/csi-azuredisk-node-windows-hostprocess.yaml b/deploy/v1.28.7/csi-azuredisk-node-windows-hostprocess.yaml new file mode 100644 index 0000000000..5d869db10e --- /dev/null +++ b/deploy/v1.28.7/csi-azuredisk-node-windows-hostprocess.yaml @@ -0,0 +1,108 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node-win + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node-win + template: + metadata: + labels: + app: csi-azuredisk-node-win + spec: + serviceAccountName: csi-azuredisk-node-sa + tolerations: + - key: "node.kubernetes.io/os" + operator: "Exists" + effect: "NoSchedule" + nodeSelector: + kubernetes.io/os: windows + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + windowsOptions: + hostProcess: true + runAsUserName: "NT AUTHORITY\\SYSTEM" + hostNetwork: true + initContainers: + - name: init + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.28.7-windows-hp + imagePullPolicy: IfNotPresent + command: + - "powershell.exe" + - "-c" + - "New-Item -ItemType Directory -Path C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\ -Force" + containers: + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.8.0 + imagePullPolicy: IfNotPresent + command: + - "csi-node-driver-registrar.exe" + args: + - "--v=2" + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + - "--plugin-registration-path=$(PLUGIN_REG_DIR)" + env: + - name: CSI_ENDPOINT + value: unix://C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: PLUGIN_REG_DIR + value: C:\\var\\lib\\kubelet\\plugins_registry\\ + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + resources: + limits: + memory: 150Mi + requests: + cpu: 30m + memory: 40Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.28.7-windows-hp + imagePullPolicy: IfNotPresent + command: + - "azurediskplugin.exe" + args: + - --v=5 + - --endpoint=$(CSI_ENDPOINT) + - --nodeid=$(KUBE_NODE_NAME) + - --allow-empty-cloud-config=true + - --enable-windows-host-process=true + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 40Mi diff --git a/deploy/v1.28.7/csi-azuredisk-node-windows.yaml b/deploy/v1.28.7/csi-azuredisk-node-windows.yaml new file mode 100644 index 0000000000..906e59869c --- /dev/null +++ b/deploy/v1.28.7/csi-azuredisk-node-windows.yaml @@ -0,0 +1,194 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node-win + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node-win + template: + metadata: + labels: + app: csi-azuredisk-node-win + spec: + serviceAccountName: csi-azuredisk-node-sa + tolerations: + - key: "node.kubernetes.io/os" + operator: "Exists" + effect: "NoSchedule" + nodeSelector: + kubernetes.io/os: windows + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: liveness-probe + volumeMounts: + - mountPath: C:\csi + name: plugin-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.10.0 + args: + - "--csi-address=$(CSI_ENDPOINT)" + - "--probe-timeout=3s" + - "--health-port=29603" + - "--v=2" + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + resources: + limits: + memory: 150Mi + requests: + cpu: 10m + memory: 40Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.8.0 + args: + - "--v=2" + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + livenessProbe: + exec: + command: + - /csi-node-driver-registrar.exe + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 60 + timeoutSeconds: 30 + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: kubelet-dir + mountPath: "C:\\var\\lib\\kubelet" + - name: plugin-dir + mountPath: C:\csi + - name: registration-dir + mountPath: C:\registration + resources: + limits: + memory: 150Mi + requests: + cpu: 30m + memory: 40Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.28.7 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--allow-empty-cloud-config=true" + - "--get-node-info-from-labels=false" + ports: + - containerPort: 29603 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + 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: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 40Mi + 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: C:\var\lib\kubelet\plugins_registry\ + type: Directory + - name: kubelet-dir + hostPath: + path: C:\var\lib\kubelet\ + type: Directory + - name: plugin-dir + hostPath: + path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ + type: DirectoryOrCreate + - name: azure-config + hostPath: + path: C:\k + type: DirectoryOrCreate diff --git a/deploy/v1.28.7/csi-azuredisk-node.yaml b/deploy/v1.28.7/csi-azuredisk-node.yaml new file mode 100644 index 0000000000..bf4e189d0c --- /dev/null +++ b/deploy/v1.28.7/csi-azuredisk-node.yaml @@ -0,0 +1,171 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node + template: + metadata: + labels: + app: csi-azuredisk-node + spec: + hostNetwork: true + dnsPolicy: Default + serviceAccountName: csi-azuredisk-node-sa + nodeSelector: + kubernetes.io/os: linux + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - operator: "Exists" + containers: + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.10.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --http-endpoint=localhost:29603 + - --v=2 + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.8.0 + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 + env: + - name: ADDRESS + value: /csi/csi.sock + - name: DRIVER_REG_SOCK_PATH + value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.28.7 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--enable-perf-optimization=true" + - "--allow-empty-cloud-config=true" + - "--get-node-info-from-labels=false" + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29603 + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + securityContext: + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /var/lib/kubelet/ + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /dev + name: device-dir + - mountPath: /sys/bus/scsi/devices + name: sys-devices-dir + - mountPath: /sys/class/ + name: sys-class + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/disk.csi.azure.com + type: DirectoryOrCreate + name: socket-dir + - hostPath: + path: /var/lib/kubelet/ + type: DirectoryOrCreate + name: mountpoint-dir + - hostPath: + path: /var/lib/kubelet/plugins_registry/ + type: DirectoryOrCreate + name: registration-dir + - hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + name: azure-cred + - hostPath: + path: /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 +--- diff --git a/deploy/v1.28.7/csi-snapshot-controller.yaml b/deploy/v1.28.7/csi-snapshot-controller.yaml new file mode 100644 index 0000000000..8303b1a73e --- /dev/null +++ b/deploy/v1.28.7/csi-snapshot-controller.yaml @@ -0,0 +1,58 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-snapshot-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-snapshot-controller + # 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: + labels: + app: csi-snapshot-controller + spec: + serviceAccountName: csi-snapshot-controller-sa + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Equal" + value: "true" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Equal" + value: "true" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Equal" + value: "true" + effect: "NoSchedule" + containers: + - name: csi-snapshot-controller + image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v6.2.2 + args: + - "--v=2" + - "--leader-election=true" + - "--leader-election-namespace=kube-system" + resources: + limits: + memory: 300Mi + requests: + cpu: 10m + memory: 20Mi diff --git a/deploy/v1.28.7/rbac-csi-azuredisk-controller.yaml b/deploy/v1.28.7/rbac-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..0e59ad15b4 --- /dev/null +++ b/deploy/v1.28.7/rbac-csi-azuredisk-controller.yaml @@ -0,0 +1,196 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-azuredisk-controller-sa + namespace: kube-system +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-provisioner-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["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: azuredisk-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-provisioner-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-attacher-role +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: azuredisk-csi-attacher-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-attacher-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-snapshotter-role +rules: + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - 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: azuredisk-csi-snapshotter-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-snapshotter-role + apiGroup: rbac.authorization.k8s.io +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-resizer-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create", "patch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-csi-resizer-role +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-resizer-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-controller-secret-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-controller-secret-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-azuredisk-controller-secret-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.28.7/rbac-csi-azuredisk-node.yaml b/deploy/v1.28.7/rbac-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..c77181ee14 --- /dev/null +++ b/deploy/v1.28.7/rbac-csi-azuredisk-node.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-azuredisk-node-sa + namespace: kube-system + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-node-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-node-secret-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-node-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-azuredisk-node-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.28.7/rbac-csi-snapshot-controller.yaml b/deploy/v1.28.7/rbac-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..03af765424 --- /dev/null +++ b/deploy/v1.28.7/rbac-csi-snapshot-controller.yaml @@ -0,0 +1,78 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-snapshot-controller-sa + namespace: kube-system + +--- +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: csi-snapshot-controller-sa + namespace: kube-system +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: csi-snapshot-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-snapshot-controller-leaderelection-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.29.5/crd-csi-snapshot.yaml b/deploy/v1.29.5/crd-csi-snapshot.yaml new file mode 100644 index 0000000000..d4b90b266d --- /dev/null +++ b/deploy/v1.29.5/crd-csi-snapshot.yaml @@ -0,0 +1,838 @@ +--- +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: [] diff --git a/deploy/v1.29.5/csi-azuredisk-controller.yaml b/deploy/v1.29.5/csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..73aea7d1d1 --- /dev/null +++ b/deploy/v1.29.5/csi-azuredisk-controller.yaml @@ -0,0 +1,192 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-azuredisk-controller + template: + metadata: + labels: + app: csi-azuredisk-controller + spec: + hostNetwork: true + serviceAccountName: csi-azuredisk-controller-sa + nodeSelector: + kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Exists" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v3.5.0 + args: + - "--feature-gates=Topology=true,HonorPVReclaimPolicy=true" + - "--csi-address=$(ADDRESS)" + - "--v=2" + - "--timeout=30s" + - "--leader-election" + - "--leader-election-namespace=kube-system" + - "--worker-threads=100" + - "--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: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-attacher + image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v4.3.0 + args: + - "-v=2" + - "-csi-address=$(ADDRESS)" + - "-timeout=1200s" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - "-worker-threads=1000" + - "-kube-api-qps=200" + - "-kube-api-burst=400" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-snapshotter + image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v6.3.1 + args: + - "-csi-address=$(ADDRESS)" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - "--v=2" + - "--timeout=1200s" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-resizer + image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.8.0 + args: + - "-csi-address=$(ADDRESS)" + - "-v=2" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - '-handle-volume-inuse-error=false' + - '-feature-gates=RecoverVolumeExpansionFailure=true' + - "-timeout=240s" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: liveness-probe + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.10.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --http-endpoint=localhost:29602 + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.29.5 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:29604" + - "--user-agent-suffix=OSS-kubectl" + - "--disable-avset-nodes=false" + - "--allow-empty-cloud-config=false" + ports: + - containerPort: 29604 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29602 + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate diff --git a/deploy/v1.29.5/csi-azuredisk-driver.yaml b/deploy/v1.29.5/csi-azuredisk-driver.yaml new file mode 100644 index 0000000000..0ff59b2f28 --- /dev/null +++ b/deploy/v1.29.5/csi-azuredisk-driver.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: disk.csi.azure.com + annotations: + csiDriver: v1.29.0 + snapshot: v6.2.1 +spec: + attachRequired: true + podInfoOnMount: false + fsGroupPolicy: File diff --git a/deploy/v1.29.5/csi-azuredisk-node-windows-hostprocess.yaml b/deploy/v1.29.5/csi-azuredisk-node-windows-hostprocess.yaml new file mode 100644 index 0000000000..e33c9665fe --- /dev/null +++ b/deploy/v1.29.5/csi-azuredisk-node-windows-hostprocess.yaml @@ -0,0 +1,108 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node-win + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node-win + template: + metadata: + labels: + app: csi-azuredisk-node-win + spec: + serviceAccountName: csi-azuredisk-node-sa + tolerations: + - key: "node.kubernetes.io/os" + operator: "Exists" + effect: "NoSchedule" + nodeSelector: + kubernetes.io/os: windows + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + windowsOptions: + hostProcess: true + runAsUserName: "NT AUTHORITY\\SYSTEM" + hostNetwork: true + initContainers: + - name: init + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.29.5-windows-hp + imagePullPolicy: IfNotPresent + command: + - "powershell.exe" + - "-c" + - "New-Item -ItemType Directory -Path C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\ -Force" + containers: + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.8.0 + imagePullPolicy: IfNotPresent + command: + - "csi-node-driver-registrar.exe" + args: + - "--v=2" + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + - "--plugin-registration-path=$(PLUGIN_REG_DIR)" + env: + - name: CSI_ENDPOINT + value: unix://C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: PLUGIN_REG_DIR + value: C:\\var\\lib\\kubelet\\plugins_registry\\ + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + resources: + limits: + memory: 150Mi + requests: + cpu: 30m + memory: 40Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.29.5-windows-hp + imagePullPolicy: IfNotPresent + command: + - "azurediskplugin.exe" + args: + - --v=5 + - --endpoint=$(CSI_ENDPOINT) + - --nodeid=$(KUBE_NODE_NAME) + - --allow-empty-cloud-config=true + - --enable-windows-host-process=true + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 40Mi diff --git a/deploy/v1.29.5/csi-azuredisk-node-windows.yaml b/deploy/v1.29.5/csi-azuredisk-node-windows.yaml new file mode 100644 index 0000000000..20a8a63789 --- /dev/null +++ b/deploy/v1.29.5/csi-azuredisk-node-windows.yaml @@ -0,0 +1,194 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node-win + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node-win + template: + metadata: + labels: + app: csi-azuredisk-node-win + spec: + serviceAccountName: csi-azuredisk-node-sa + tolerations: + - key: "node.kubernetes.io/os" + operator: "Exists" + effect: "NoSchedule" + nodeSelector: + kubernetes.io/os: windows + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: liveness-probe + volumeMounts: + - mountPath: C:\csi + name: plugin-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.10.0 + args: + - "--csi-address=$(CSI_ENDPOINT)" + - "--probe-timeout=3s" + - "--health-port=29603" + - "--v=2" + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + resources: + limits: + memory: 150Mi + requests: + cpu: 10m + memory: 40Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.8.0 + args: + - "--v=2" + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + livenessProbe: + exec: + command: + - /csi-node-driver-registrar.exe + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 60 + timeoutSeconds: 30 + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: kubelet-dir + mountPath: "C:\\var\\lib\\kubelet" + - name: plugin-dir + mountPath: C:\csi + - name: registration-dir + mountPath: C:\registration + resources: + limits: + memory: 150Mi + requests: + cpu: 30m + memory: 40Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.29.5 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--allow-empty-cloud-config=true" + - "--get-node-info-from-labels=false" + ports: + - containerPort: 29603 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + 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: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 40Mi + 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: C:\var\lib\kubelet\plugins_registry\ + type: Directory + - name: kubelet-dir + hostPath: + path: C:\var\lib\kubelet\ + type: Directory + - name: plugin-dir + hostPath: + path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ + type: DirectoryOrCreate + - name: azure-config + hostPath: + path: C:\k + type: DirectoryOrCreate diff --git a/deploy/v1.29.5/csi-azuredisk-node.yaml b/deploy/v1.29.5/csi-azuredisk-node.yaml new file mode 100644 index 0000000000..16516a6dea --- /dev/null +++ b/deploy/v1.29.5/csi-azuredisk-node.yaml @@ -0,0 +1,171 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node + template: + metadata: + labels: + app: csi-azuredisk-node + spec: + hostNetwork: true + dnsPolicy: Default + serviceAccountName: csi-azuredisk-node-sa + nodeSelector: + kubernetes.io/os: linux + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - operator: "Exists" + containers: + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.10.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --http-endpoint=localhost:29603 + - --v=2 + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.8.0 + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 + env: + - name: ADDRESS + value: /csi/csi.sock + - name: DRIVER_REG_SOCK_PATH + value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.29.5 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--enable-perf-optimization=true" + - "--allow-empty-cloud-config=true" + - "--get-node-info-from-labels=false" + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29603 + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + securityContext: + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /var/lib/kubelet/ + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /dev + name: device-dir + - mountPath: /sys/bus/scsi/devices + name: sys-devices-dir + - mountPath: /sys/class/ + name: sys-class + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/disk.csi.azure.com + type: DirectoryOrCreate + name: socket-dir + - hostPath: + path: /var/lib/kubelet/ + type: DirectoryOrCreate + name: mountpoint-dir + - hostPath: + path: /var/lib/kubelet/plugins_registry/ + type: DirectoryOrCreate + name: registration-dir + - hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + name: azure-cred + - hostPath: + path: /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 +--- diff --git a/deploy/v1.29.5/csi-snapshot-controller.yaml b/deploy/v1.29.5/csi-snapshot-controller.yaml new file mode 100644 index 0000000000..26f361fdb0 --- /dev/null +++ b/deploy/v1.29.5/csi-snapshot-controller.yaml @@ -0,0 +1,58 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-snapshot-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-snapshot-controller + # 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: + labels: + app: csi-snapshot-controller + spec: + serviceAccountName: csi-snapshot-controller-sa + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Equal" + value: "true" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Equal" + value: "true" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Equal" + value: "true" + effect: "NoSchedule" + containers: + - name: csi-snapshot-controller + image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v6.3.1 + args: + - "--v=2" + - "--leader-election=true" + - "--leader-election-namespace=kube-system" + resources: + limits: + memory: 300Mi + requests: + cpu: 10m + memory: 20Mi diff --git a/deploy/v1.29.5/rbac-csi-azuredisk-controller.yaml b/deploy/v1.29.5/rbac-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..0e59ad15b4 --- /dev/null +++ b/deploy/v1.29.5/rbac-csi-azuredisk-controller.yaml @@ -0,0 +1,196 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-azuredisk-controller-sa + namespace: kube-system +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-provisioner-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["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: azuredisk-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-provisioner-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-attacher-role +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: azuredisk-csi-attacher-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-attacher-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-snapshotter-role +rules: + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - 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: azuredisk-csi-snapshotter-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-snapshotter-role + apiGroup: rbac.authorization.k8s.io +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-resizer-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create", "patch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-csi-resizer-role +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-resizer-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-controller-secret-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-controller-secret-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-azuredisk-controller-secret-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.29.5/rbac-csi-azuredisk-node.yaml b/deploy/v1.29.5/rbac-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..c77181ee14 --- /dev/null +++ b/deploy/v1.29.5/rbac-csi-azuredisk-node.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-azuredisk-node-sa + namespace: kube-system + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-node-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-node-secret-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-node-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-azuredisk-node-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.29.5/rbac-csi-snapshot-controller.yaml b/deploy/v1.29.5/rbac-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..03af765424 --- /dev/null +++ b/deploy/v1.29.5/rbac-csi-snapshot-controller.yaml @@ -0,0 +1,78 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-snapshot-controller-sa + namespace: kube-system + +--- +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: csi-snapshot-controller-sa + namespace: kube-system +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: csi-snapshot-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-snapshot-controller-leaderelection-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.30.1/crd-csi-snapshot.yaml b/deploy/v1.30.1/crd-csi-snapshot.yaml new file mode 100644 index 0000000000..d4b90b266d --- /dev/null +++ b/deploy/v1.30.1/crd-csi-snapshot.yaml @@ -0,0 +1,838 @@ +--- +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: [] diff --git a/deploy/v1.30.1/csi-azuredisk-controller.yaml b/deploy/v1.30.1/csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..c07dc710da --- /dev/null +++ b/deploy/v1.30.1/csi-azuredisk-controller.yaml @@ -0,0 +1,192 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-azuredisk-controller + template: + metadata: + labels: + app: csi-azuredisk-controller + spec: + hostNetwork: true + serviceAccountName: csi-azuredisk-controller-sa + nodeSelector: + kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Exists" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Exists" + effect: "NoSchedule" + containers: + - name: csi-provisioner + image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v4.0.0 + args: + - "--feature-gates=Topology=true,HonorPVReclaimPolicy=true" + - "--csi-address=$(ADDRESS)" + - "--v=2" + - "--timeout=30s" + - "--leader-election" + - "--leader-election-namespace=kube-system" + - "--worker-threads=100" + - "--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: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-attacher + image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v4.5.0 + args: + - "-v=2" + - "-csi-address=$(ADDRESS)" + - "-timeout=1200s" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - "-worker-threads=1000" + - "-kube-api-qps=200" + - "-kube-api-burst=400" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-snapshotter + image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v6.3.3 + args: + - "-csi-address=$(ADDRESS)" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - "--v=2" + - "--timeout=1200s" + env: + - name: ADDRESS + value: /csi/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + - name: csi-resizer + image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.9.3 + args: + - "-csi-address=$(ADDRESS)" + - "-v=2" + - "-leader-election" + - "--leader-election-namespace=kube-system" + - '-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: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + - name: liveness-probe + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.12.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --http-endpoint=localhost:29602 + - --v=2 + volumeMounts: + - name: socket-dir + mountPath: /csi + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.30.1 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--metrics-address=0.0.0.0:29604" + - "--user-agent-suffix=OSS-kubectl" + - "--disable-avset-nodes=false" + - "--allow-empty-cloud-config=false" + ports: + - containerPort: 29604 + name: metrics + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29602 + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + resources: + limits: + memory: 500Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - name: socket-dir + emptyDir: {} + - name: azure-cred + hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate diff --git a/deploy/v1.30.1/csi-azuredisk-driver.yaml b/deploy/v1.30.1/csi-azuredisk-driver.yaml new file mode 100644 index 0000000000..f2f10fdaa9 --- /dev/null +++ b/deploy/v1.30.1/csi-azuredisk-driver.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: CSIDriver +metadata: + name: disk.csi.azure.com + annotations: + csiDriver: v1.30.0 + snapshot: v6.2.1 +spec: + attachRequired: true + podInfoOnMount: false + fsGroupPolicy: File diff --git a/deploy/v1.30.1/csi-azuredisk-node-windows-hostprocess.yaml b/deploy/v1.30.1/csi-azuredisk-node-windows-hostprocess.yaml new file mode 100644 index 0000000000..105103ef5e --- /dev/null +++ b/deploy/v1.30.1/csi-azuredisk-node-windows-hostprocess.yaml @@ -0,0 +1,108 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node-win + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node-win + template: + metadata: + labels: + app: csi-azuredisk-node-win + spec: + serviceAccountName: csi-azuredisk-node-sa + tolerations: + - key: "node.kubernetes.io/os" + operator: "Exists" + effect: "NoSchedule" + nodeSelector: + kubernetes.io/os: windows + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + windowsOptions: + hostProcess: true + runAsUserName: "NT AUTHORITY\\SYSTEM" + hostNetwork: true + initContainers: + - name: init + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.30.1-windows-hp + imagePullPolicy: IfNotPresent + command: + - "powershell.exe" + - "-c" + - "New-Item -ItemType Directory -Path C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\ -Force" + containers: + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.10.0 + imagePullPolicy: IfNotPresent + command: + - "csi-node-driver-registrar.exe" + args: + - "--v=2" + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + - "--plugin-registration-path=$(PLUGIN_REG_DIR)" + env: + - name: CSI_ENDPOINT + value: unix://C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: PLUGIN_REG_DIR + value: C:\\var\\lib\\kubelet\\plugins_registry\\ + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + resources: + limits: + memory: 150Mi + requests: + cpu: 30m + memory: 40Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.30.1-windows-hp + imagePullPolicy: IfNotPresent + command: + - "azurediskplugin.exe" + args: + - --v=5 + - --endpoint=$(CSI_ENDPOINT) + - --nodeid=$(KUBE_NODE_NAME) + - --allow-empty-cloud-config=true + - --enable-windows-host-process=true + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 40Mi diff --git a/deploy/v1.30.1/csi-azuredisk-node-windows.yaml b/deploy/v1.30.1/csi-azuredisk-node-windows.yaml new file mode 100644 index 0000000000..f63a161600 --- /dev/null +++ b/deploy/v1.30.1/csi-azuredisk-node-windows.yaml @@ -0,0 +1,194 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node-win + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node-win + template: + metadata: + labels: + app: csi-azuredisk-node-win + spec: + serviceAccountName: csi-azuredisk-node-sa + tolerations: + - key: "node.kubernetes.io/os" + operator: "Exists" + effect: "NoSchedule" + nodeSelector: + kubernetes.io/os: windows + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault + containers: + - name: liveness-probe + volumeMounts: + - mountPath: C:\csi + name: plugin-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.12.0 + args: + - "--csi-address=$(CSI_ENDPOINT)" + - "--probe-timeout=3s" + - "--health-port=29603" + - "--v=2" + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + resources: + limits: + memory: 150Mi + requests: + cpu: 10m + memory: 40Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.10.0 + args: + - "--v=2" + - "--csi-address=$(CSI_ENDPOINT)" + - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" + livenessProbe: + exec: + command: + - /csi-node-driver-registrar.exe + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 60 + timeoutSeconds: 30 + env: + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + - name: DRIVER_REG_SOCK_PATH + value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: kubelet-dir + mountPath: "C:\\var\\lib\\kubelet" + - name: plugin-dir + mountPath: C:\csi + - name: registration-dir + mountPath: C:\registration + resources: + limits: + memory: 150Mi + requests: + cpu: 30m + memory: 40Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.30.1 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--allow-empty-cloud-config=true" + - "--get-node-info-from-labels=false" + ports: + - containerPort: 29603 + name: healthz + protocol: TCP + livenessProbe: + failureThreshold: 5 + httpGet: + path: /healthz + port: healthz + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path-windows + optional: true + - name: CSI_ENDPOINT + value: unix://C:\\csi\\csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + 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: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 40Mi + 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: C:\var\lib\kubelet\plugins_registry\ + type: Directory + - name: kubelet-dir + hostPath: + path: C:\var\lib\kubelet\ + type: Directory + - name: plugin-dir + hostPath: + path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ + type: DirectoryOrCreate + - name: azure-config + hostPath: + path: C:\k + type: DirectoryOrCreate diff --git a/deploy/v1.30.1/csi-azuredisk-node.yaml b/deploy/v1.30.1/csi-azuredisk-node.yaml new file mode 100644 index 0000000000..b34f092968 --- /dev/null +++ b/deploy/v1.30.1/csi-azuredisk-node.yaml @@ -0,0 +1,171 @@ +--- +kind: DaemonSet +apiVersion: apps/v1 +metadata: + name: csi-azuredisk-node + namespace: kube-system +spec: + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + type: RollingUpdate + selector: + matchLabels: + app: csi-azuredisk-node + template: + metadata: + labels: + app: csi-azuredisk-node + spec: + hostNetwork: true + dnsPolicy: Default + serviceAccountName: csi-azuredisk-node-sa + nodeSelector: + kubernetes.io/os: linux + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: type + operator: NotIn + values: + - virtual-kubelet + priorityClassName: system-node-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - operator: "Exists" + containers: + - name: liveness-probe + volumeMounts: + - mountPath: /csi + name: socket-dir + image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.12.0 + args: + - --csi-address=/csi/csi.sock + - --probe-timeout=3s + - --http-endpoint=localhost:29603 + - --v=2 + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: node-driver-registrar + image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.10.0 + args: + - --csi-address=$(ADDRESS) + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --v=2 + livenessProbe: + exec: + command: + - /csi-node-driver-registrar + - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) + - --mode=kubelet-registration-probe + initialDelaySeconds: 30 + timeoutSeconds: 15 + env: + - name: ADDRESS + value: /csi/csi.sock + - name: DRIVER_REG_SOCK_PATH + value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock + volumeMounts: + - name: socket-dir + mountPath: /csi + - name: registration-dir + mountPath: /registration + resources: + limits: + memory: 100Mi + requests: + cpu: 10m + memory: 20Mi + - name: azuredisk + image: mcr.microsoft.com/oss/kubernetes-csi/azuredisk-csi:v1.30.1 + imagePullPolicy: IfNotPresent + args: + - "--v=5" + - "--endpoint=$(CSI_ENDPOINT)" + - "--nodeid=$(KUBE_NODE_NAME)" + - "--enable-perf-optimization=true" + - "--allow-empty-cloud-config=true" + - "--get-node-info-from-labels=false" + livenessProbe: + failureThreshold: 5 + httpGet: + host: localhost + path: /healthz + port: 29603 + initialDelaySeconds: 30 + timeoutSeconds: 10 + periodSeconds: 30 + env: + - name: AZURE_CREDENTIAL_FILE + valueFrom: + configMapKeyRef: + name: azure-cred-file + key: path + optional: true + - name: CSI_ENDPOINT + value: unix:///csi/csi.sock + - name: KUBE_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName + securityContext: + privileged: true + volumeMounts: + - mountPath: /csi + name: socket-dir + - mountPath: /var/lib/kubelet/ + mountPropagation: Bidirectional + name: mountpoint-dir + - mountPath: /etc/kubernetes/ + name: azure-cred + - mountPath: /dev + name: device-dir + - mountPath: /sys/bus/scsi/devices + name: sys-devices-dir + - mountPath: /sys/class/ + name: sys-class + resources: + limits: + memory: 200Mi + requests: + cpu: 10m + memory: 20Mi + volumes: + - hostPath: + path: /var/lib/kubelet/plugins/disk.csi.azure.com + type: DirectoryOrCreate + name: socket-dir + - hostPath: + path: /var/lib/kubelet/ + type: DirectoryOrCreate + name: mountpoint-dir + - hostPath: + path: /var/lib/kubelet/plugins_registry/ + type: DirectoryOrCreate + name: registration-dir + - hostPath: + path: /etc/kubernetes/ + type: DirectoryOrCreate + name: azure-cred + - hostPath: + path: /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 +--- diff --git a/deploy/v1.30.1/csi-snapshot-controller.yaml b/deploy/v1.30.1/csi-snapshot-controller.yaml new file mode 100644 index 0000000000..4fc5c7945b --- /dev/null +++ b/deploy/v1.30.1/csi-snapshot-controller.yaml @@ -0,0 +1,58 @@ +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: csi-snapshot-controller + namespace: kube-system +spec: + replicas: 2 + selector: + matchLabels: + app: csi-snapshot-controller + # 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: + labels: + app: csi-snapshot-controller + spec: + serviceAccountName: csi-snapshot-controller-sa + nodeSelector: + kubernetes.io/os: linux + priorityClassName: system-cluster-critical + securityContext: + seccompProfile: + type: RuntimeDefault + tolerations: + - key: "node-role.kubernetes.io/master" + operator: "Equal" + value: "true" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/controlplane" + operator: "Equal" + value: "true" + effect: "NoSchedule" + - key: "node-role.kubernetes.io/control-plane" + operator: "Equal" + value: "true" + effect: "NoSchedule" + containers: + - name: csi-snapshot-controller + image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v6.3.3 + args: + - "--v=2" + - "--leader-election=true" + - "--leader-election-namespace=kube-system" + resources: + limits: + memory: 300Mi + requests: + cpu: 10m + memory: 20Mi diff --git a/deploy/v1.30.1/rbac-csi-azuredisk-controller.yaml b/deploy/v1.30.1/rbac-csi-azuredisk-controller.yaml new file mode 100644 index 0000000000..0e59ad15b4 --- /dev/null +++ b/deploy/v1.30.1/rbac-csi-azuredisk-controller.yaml @@ -0,0 +1,196 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-azuredisk-controller-sa + namespace: kube-system +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-provisioner-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "create", "delete"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch", "update"] + - apiGroups: ["storage.k8s.io"] + resources: ["storageclasses"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["get", "list", "watch", "create", "update", "patch"] + - apiGroups: ["storage.k8s.io"] + resources: ["csinodes"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get", "list", "watch"] + - apiGroups: ["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: azuredisk-csi-provisioner-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-provisioner-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-attacher-role +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: azuredisk-csi-attacher-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-attacher-role + apiGroup: rbac.authorization.k8s.io + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-snapshotter-role +rules: + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - 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: azuredisk-csi-snapshotter-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-snapshotter-role + apiGroup: rbac.authorization.k8s.io +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-external-resizer-role +rules: + - apiGroups: [""] + resources: ["persistentvolumes"] + verbs: ["get", "list", "watch", "update", "patch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["persistentvolumeclaims/status"] + verbs: ["update", "patch"] + - apiGroups: [""] + resources: ["events"] + verbs: ["list", "watch", "create", "update", "patch"] + - apiGroups: ["coordination.k8s.io"] + resources: ["leases"] + verbs: ["get", "watch", "list", "delete", "update", "create", "patch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: azuredisk-csi-resizer-role +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: azuredisk-external-resizer-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-controller-secret-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-controller-secret-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-azuredisk-controller-secret-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.30.1/rbac-csi-azuredisk-node.yaml b/deploy/v1.30.1/rbac-csi-azuredisk-node.yaml new file mode 100644 index 0000000000..c77181ee14 --- /dev/null +++ b/deploy/v1.30.1/rbac-csi-azuredisk-node.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-azuredisk-node-sa + namespace: kube-system + +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-node-role +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get"] + - apiGroups: [""] + resources: ["nodes"] + verbs: ["get"] + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: csi-azuredisk-node-secret-binding +subjects: + - kind: ServiceAccount + name: csi-azuredisk-node-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-azuredisk-node-role + apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.30.1/rbac-csi-snapshot-controller.yaml b/deploy/v1.30.1/rbac-csi-snapshot-controller.yaml new file mode 100644 index 0000000000..03af765424 --- /dev/null +++ b/deploy/v1.30.1/rbac-csi-snapshot-controller.yaml @@ -0,0 +1,78 @@ +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: csi-snapshot-controller-sa + namespace: kube-system + +--- +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: csi-snapshot-controller-sa + namespace: kube-system +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: csi-snapshot-controller-sa + namespace: kube-system +roleRef: + kind: ClusterRole + name: csi-snapshot-controller-leaderelection-role + apiGroup: rbac.authorization.k8s.io diff --git a/docs/install-csi-driver-v1.28.7.md b/docs/install-csi-driver-v1.28.7.md new file mode 100644 index 0000000000..367c76f7e5 --- /dev/null +++ b/docs/install-csi-driver-v1.28.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.28.7/deploy/install-driver.sh | bash -s v1.28.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.28.7 +./deploy/install-driver.sh v1.28.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.28.7/deploy/uninstall-driver.sh | bash -s v1.28.7 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.28.7 +./deploy/install-driver.sh v1.28.7 local +``` diff --git a/docs/install-csi-driver-v1.29.5.md b/docs/install-csi-driver-v1.29.5.md new file mode 100644 index 0000000000..1dc75629fd --- /dev/null +++ b/docs/install-csi-driver-v1.29.5.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.5/deploy/install-driver.sh | bash -s v1.29.5 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.5 +./deploy/install-driver.sh v1.29.5 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.5/deploy/uninstall-driver.sh | bash -s v1.29.5 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.29.5 +./deploy/install-driver.sh v1.29.5 local +``` diff --git a/docs/install-csi-driver-v1.30.1.md b/docs/install-csi-driver-v1.30.1.md new file mode 100644 index 0000000000..b97e9d6f58 --- /dev/null +++ b/docs/install-csi-driver-v1.30.1.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.1/deploy/install-driver.sh | bash -s v1.30.1 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.1 +./deploy/install-driver.sh v1.30.1 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.1/deploy/uninstall-driver.sh | bash -s v1.30.1 -- +``` + + - Option#2. local uninstall +```console +git clone https://github.com/kubernetes-sigs/azuredisk-csi-driver.git +cd azuredisk-csi-driver +git checkout v1.30.1 +./deploy/install-driver.sh v1.30.1 local +``` From 8332c59342089713cf0c87bc7625204a335497a8 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Fri, 12 Apr 2024 09:11:57 +0000 Subject: [PATCH 2/3] doc: add new version charts --- charts/index.yaml | 176 ++--- charts/v1.0.0/azuredisk-csi-driver-v1.0.0.tgz | Bin 8872 -> 0 bytes charts/v1.0.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 21 - .../templates/crd-csi-snapshot.yaml | 507 -------------- .../templates/csi-azuredisk-controller.yaml | 201 ------ .../templates/csi-azuredisk-driver.yaml | 7 - .../templates/csi-azuredisk-node-windows.yaml | 173 ----- .../templates/csi-azuredisk-node.yaml | 189 ----- .../templates/csi-snapshot-controller.yaml | 42 -- .../rbac-csi-azuredisk-controller.yaml | 206 ------ .../templates/rbac-csi-azuredisk-node.yaml | 27 - .../rbac-csi-snapshot-controller.yaml | 71 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.0.0/azuredisk-csi-driver/values.yaml | 76 -- charts/v1.2.0/azuredisk-csi-driver-v1.2.0.tgz | Bin 9016 -> 0 bytes charts/v1.2.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot.yaml | 507 -------------- .../templates/csi-azuredisk-controller.yaml | 204 ------ .../templates/csi-azuredisk-driver.yaml | 7 - .../templates/csi-azuredisk-node-windows.yaml | 181 ----- .../templates/csi-azuredisk-node.yaml | 189 ----- .../templates/csi-snapshot-controller.yaml | 42 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.2.0/azuredisk-csi-driver/values.yaml | 78 --- charts/v1.3.0/azuredisk-csi-driver-v1.3.0.tgz | Bin 9304 -> 0 bytes charts/v1.3.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot.yaml | 502 -------------- .../templates/csi-azuredisk-controller.yaml | 227 ------ .../templates/csi-azuredisk-driver.yaml | 7 - .../templates/csi-azuredisk-node-windows.yaml | 181 ----- .../templates/csi-azuredisk-node.yaml | 209 ------ .../templates/csi-snapshot-controller.yaml | 42 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.3.0/azuredisk-csi-driver/values.yaml | 88 --- charts/v1.4.0/azuredisk-csi-driver-v1.4.0.tgz | Bin 12172 -> 0 bytes charts/v1.4.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 632 ----------------- .../templates/crd-csi-snapshot.yaml | 504 -------------- .../templates/csi-azuredisk-controller.yaml | 223 ------ .../templates/csi-azuredisk-driver.yaml | 10 - .../templates/csi-azuredisk-node-windows.yaml | 179 ----- .../templates/csi-azuredisk-node.yaml | 212 ------ .../templates/csi-snapshot-controller.yaml | 41 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.4.0/azuredisk-csi-driver/values.yaml | 109 --- charts/v1.5.0/azuredisk-csi-driver-v1.5.0.tgz | Bin 12522 -> 0 bytes charts/v1.5.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 632 ----------------- .../templates/crd-csi-snapshot.yaml | 504 -------------- .../templates/csi-azuredisk-controller.yaml | 228 ------ .../templates/csi-azuredisk-driver.yaml | 10 - .../templates/csi-azuredisk-node-windows.yaml | 183 ----- .../templates/csi-azuredisk-node.yaml | 216 ------ .../templates/csi-snapshot-controller.yaml | 44 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.5.0/azuredisk-csi-driver/values.yaml | 131 ---- charts/v1.5.1/azuredisk-csi-driver-v1.5.1.tgz | Bin 12518 -> 0 bytes charts/v1.5.1/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 632 ----------------- .../templates/crd-csi-snapshot.yaml | 504 -------------- .../templates/csi-azuredisk-controller.yaml | 228 ------ .../templates/csi-azuredisk-driver.yaml | 10 - .../templates/csi-azuredisk-node-windows.yaml | 183 ----- .../templates/csi-azuredisk-node.yaml | 216 ------ .../templates/csi-snapshot-controller.yaml | 44 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.5.1/azuredisk-csi-driver/values.yaml | 131 ---- charts/v1.6.0/azuredisk-csi-driver-v1.6.0.tgz | Bin 12856 -> 0 bytes charts/v1.6.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 632 ----------------- .../templates/crd-csi-snapshot.yaml | 504 -------------- .../templates/csi-azuredisk-controller.yaml | 234 ------- .../templates/csi-azuredisk-driver.yaml | 10 - .../templates/csi-azuredisk-node-windows.yaml | 220 ------ .../templates/csi-azuredisk-node.yaml | 222 ------ .../templates/csi-snapshot-controller.yaml | 48 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.6.0/azuredisk-csi-driver/values.yaml | 136 ---- charts/v1.7.0/azuredisk-csi-driver-v1.7.0.tgz | Bin 13003 -> 0 bytes charts/v1.7.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 632 ----------------- .../templates/crd-csi-snapshot.yaml | 504 -------------- .../templates/csi-azuredisk-controller.yaml | 262 ------- .../templates/csi-azuredisk-driver.yaml | 17 - .../templates/csi-azuredisk-node-windows.yaml | 232 ------- .../templates/csi-azuredisk-node.yaml | 234 ------- .../templates/csi-snapshot-controller.yaml | 56 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.7.0/azuredisk-csi-driver/values.yaml | 128 ---- charts/v1.8.0/azuredisk-csi-driver-v1.8.0.tgz | Bin 13168 -> 0 bytes charts/v1.8.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 655 ------------------ .../templates/crd-csi-snapshot.yaml | 504 -------------- .../templates/csi-azuredisk-controller.yaml | 260 ------- .../templates/csi-azuredisk-driver.yaml | 17 - .../templates/csi-azuredisk-node-windows.yaml | 221 ------ .../templates/csi-azuredisk-node.yaml | 230 ------ .../templates/csi-snapshot-controller.yaml | 60 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.8.0/azuredisk-csi-driver/values.yaml | 144 ---- charts/v1.9.0/azuredisk-csi-driver-v1.9.0.tgz | Bin 13225 -> 0 bytes charts/v1.9.0/azuredisk-csi-driver/Chart.yaml | 5 - .../azuredisk-csi-driver/templates/NOTES.txt | 5 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 655 ------------------ .../templates/crd-csi-snapshot.yaml | 504 -------------- .../templates/csi-azuredisk-controller.yaml | 226 ------ .../templates/csi-azuredisk-driver.yaml | 17 - .../templates/csi-azuredisk-node-windows.yaml | 200 ------ .../templates/csi-azuredisk-node.yaml | 209 ------ .../templates/csi-snapshot-controller.yaml | 54 -- .../rbac-csi-azuredisk-controller.yaml | 202 ------ .../templates/rbac-csi-azuredisk-node.yaml | 25 - .../rbac-csi-snapshot-controller.yaml | 69 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 7 - .../v1.9.0/azuredisk-csi-driver/values.yaml | 240 ------- deploy/v1.0.0/crd-csi-snapshot.yaml | 505 -------------- deploy/v1.0.0/csi-azuredisk-controller.yaml | 181 ----- deploy/v1.0.0/csi-azuredisk-driver.yaml | 8 - deploy/v1.0.0/csi-azuredisk-node-windows.yaml | 162 ----- deploy/v1.0.0/csi-azuredisk-node.yaml | 173 ----- deploy/v1.0.0/csi-snapshot-controller.yaml | 38 - .../v1.0.0/rbac-csi-azuredisk-controller.yaml | 198 ------ deploy/v1.0.0/rbac-csi-azuredisk-node.yaml | 32 - .../v1.0.0/rbac-csi-snapshot-controller.yaml | 77 -- deploy/v1.2.0/crd-csi-snapshot.yaml | 505 -------------- deploy/v1.2.0/csi-azuredisk-controller.yaml | 184 ----- deploy/v1.2.0/csi-azuredisk-driver.yaml | 8 - deploy/v1.2.0/csi-azuredisk-node-windows.yaml | 170 ----- deploy/v1.2.0/csi-azuredisk-node.yaml | 173 ----- deploy/v1.2.0/csi-snapshot-controller.yaml | 38 - .../v1.2.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.2.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.2.0/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.3.0/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.3.0/csi-azuredisk-controller.yaml | 186 ----- deploy/v1.3.0/csi-azuredisk-driver.yaml | 8 - deploy/v1.3.0/csi-azuredisk-node-windows.yaml | 170 ----- deploy/v1.3.0/csi-azuredisk-node.yaml | 173 ----- deploy/v1.3.0/csi-snapshot-controller.yaml | 38 - .../v1.3.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.3.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.3.0/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.4.0/crd-csi-snapshot-ga.yaml | 629 ----------------- deploy/v1.4.0/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.4.0/csi-azuredisk-controller.yaml | 187 ----- deploy/v1.4.0/csi-azuredisk-driver.yaml | 8 - deploy/v1.4.0/csi-azuredisk-node-windows.yaml | 170 ----- deploy/v1.4.0/csi-azuredisk-node.yaml | 174 ----- deploy/v1.4.0/csi-snapshot-controller.yaml | 42 -- .../v1.4.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.4.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.4.0/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.5.0/crd-csi-snapshot-ga.yaml | 629 ----------------- deploy/v1.5.0/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.5.0/csi-azuredisk-controller.yaml | 186 ----- deploy/v1.5.0/csi-azuredisk-driver.yaml | 8 - deploy/v1.5.0/csi-azuredisk-node-windows.yaml | 167 ----- deploy/v1.5.0/csi-azuredisk-node.yaml | 171 ----- deploy/v1.5.0/csi-snapshot-controller.yaml | 42 -- .../v1.5.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.5.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.5.0/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.5.1/crd-csi-snapshot-ga.yaml | 629 ----------------- deploy/v1.5.1/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.5.1/csi-azuredisk-controller.yaml | 186 ----- deploy/v1.5.1/csi-azuredisk-driver.yaml | 8 - deploy/v1.5.1/csi-azuredisk-node-windows.yaml | 167 ----- deploy/v1.5.1/csi-azuredisk-node.yaml | 171 ----- deploy/v1.5.1/csi-snapshot-controller.yaml | 42 -- .../v1.5.1/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.5.1/rbac-csi-azuredisk-node.yaml | 31 - .../v1.5.1/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.6.0/crd-csi-snapshot-ga.yaml | 629 ----------------- deploy/v1.6.0/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.6.0/csi-azuredisk-controller.yaml | 187 ----- deploy/v1.6.0/csi-azuredisk-driver.yaml | 8 - deploy/v1.6.0/csi-azuredisk-node-windows.yaml | 203 ------ deploy/v1.6.0/csi-azuredisk-node.yaml | 176 ----- deploy/v1.6.0/csi-snapshot-controller.yaml | 42 -- .../v1.6.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.6.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.6.0/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.7.0/crd-csi-snapshot-ga.yaml | 629 ----------------- deploy/v1.7.0/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.7.0/csi-azuredisk-controller.yaml | 188 ----- deploy/v1.7.0/csi-azuredisk-driver.yaml | 11 - deploy/v1.7.0/csi-azuredisk-node-windows.yaml | 203 ------ deploy/v1.7.0/csi-azuredisk-node.yaml | 176 ----- deploy/v1.7.0/csi-snapshot-controller.yaml | 42 -- .../v1.7.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.7.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.7.0/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.8.0/crd-csi-snapshot-ga.yaml | 652 ----------------- deploy/v1.8.0/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.8.0/csi-azuredisk-controller.yaml | 182 ----- deploy/v1.8.0/csi-azuredisk-driver.yaml | 11 - deploy/v1.8.0/csi-azuredisk-node-windows.yaml | 197 ------ deploy/v1.8.0/csi-azuredisk-node.yaml | 177 ----- deploy/v1.8.0/csi-snapshot-controller.yaml | 42 -- .../v1.8.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.8.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.8.0/rbac-csi-snapshot-controller.yaml | 75 -- deploy/v1.9.0/crd-csi-snapshot-ga.yaml | 652 ----------------- deploy/v1.9.0/crd-csi-snapshot.yaml | 501 -------------- deploy/v1.9.0/csi-azuredisk-controller.yaml | 184 ----- deploy/v1.9.0/csi-azuredisk-driver.yaml | 11 - deploy/v1.9.0/csi-azuredisk-node-windows.yaml | 194 ------ deploy/v1.9.0/csi-azuredisk-node.yaml | 174 ----- deploy/v1.9.0/csi-snapshot-controller.yaml | 42 -- .../v1.9.0/rbac-csi-azuredisk-controller.yaml | 200 ------ deploy/v1.9.0/rbac-csi-azuredisk-node.yaml | 31 - .../v1.9.0/rbac-csi-snapshot-controller.yaml | 75 -- docs/install-csi-driver-v1.0.0.md | 36 - docs/install-csi-driver-v1.1.0.md | 36 - docs/install-csi-driver-v1.1.1.md | 36 - docs/install-csi-driver-v1.2.0.md | 36 - docs/install-csi-driver-v1.3.0.md | 36 - docs/install-csi-driver-v1.4.0.md | 36 - docs/install-csi-driver-v1.5.0.md | 36 - docs/install-csi-driver-v1.5.1.md | 36 - docs/install-csi-driver-v1.6.0.md | 36 - docs/install-csi-driver-v1.7.0.md | 36 - docs/install-csi-driver-v1.8.0.md | 36 - docs/install-csi-driver-v1.9.0.md | 36 - 287 files changed, 43 insertions(+), 40267 deletions(-) delete mode 100644 charts/v1.0.0/azuredisk-csi-driver-v1.0.0.tgz delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/Chart.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100755 charts/v1.0.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.2.0/azuredisk-csi-driver-v1.2.0.tgz delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/Chart.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100755 charts/v1.2.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.3.0/azuredisk-csi-driver-v1.3.0.tgz delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/Chart.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100755 charts/v1.3.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.4.0/azuredisk-csi-driver-v1.4.0.tgz delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/Chart.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v1.4.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100755 charts/v1.4.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.5.0/azuredisk-csi-driver-v1.5.0.tgz delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/Chart.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v1.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100755 charts/v1.5.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.5.1/azuredisk-csi-driver-v1.5.1.tgz delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/Chart.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/NOTES.txt delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v1.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100755 charts/v1.5.1/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver-v1.6.0.tgz delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v1.6.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver-v1.7.0.tgz delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v1.7.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver-v1.8.0.tgz delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v1.8.0/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver-v1.9.0.tgz delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v1.9.0/azuredisk-csi-driver/values.yaml delete mode 100644 deploy/v1.0.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.0.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.0.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.0.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.0.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.0.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.0.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.0.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.0.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.2.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.2.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.2.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.2.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.2.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.2.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.2.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.2.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.2.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.3.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.3.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.3.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.3.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.3.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.3.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.3.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.3.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.3.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.4.0/crd-csi-snapshot-ga.yaml delete mode 100644 deploy/v1.4.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.4.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.4.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.4.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.4.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.4.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.4.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.4.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.4.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.5.0/crd-csi-snapshot-ga.yaml delete mode 100644 deploy/v1.5.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.5.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.5.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.5.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.5.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.5.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.5.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.5.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.5.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.5.1/crd-csi-snapshot-ga.yaml delete mode 100644 deploy/v1.5.1/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.5.1/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.5.1/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.5.1/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.5.1/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.5.1/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.5.1/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.5.1/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.5.1/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.6.0/crd-csi-snapshot-ga.yaml delete mode 100644 deploy/v1.6.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.6.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.6.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.6.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.6.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.6.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.6.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.6.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.6.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.7.0/crd-csi-snapshot-ga.yaml delete mode 100644 deploy/v1.7.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.7.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.7.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.7.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.7.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.7.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.7.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.7.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.7.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.8.0/crd-csi-snapshot-ga.yaml delete mode 100644 deploy/v1.8.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.8.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.8.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.8.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.8.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.8.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.8.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.8.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.8.0/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v1.9.0/crd-csi-snapshot-ga.yaml delete mode 100644 deploy/v1.9.0/crd-csi-snapshot.yaml delete mode 100644 deploy/v1.9.0/csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.9.0/csi-azuredisk-driver.yaml delete mode 100644 deploy/v1.9.0/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v1.9.0/csi-azuredisk-node.yaml delete mode 100644 deploy/v1.9.0/csi-snapshot-controller.yaml delete mode 100644 deploy/v1.9.0/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v1.9.0/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v1.9.0/rbac-csi-snapshot-controller.yaml delete mode 100644 docs/install-csi-driver-v1.0.0.md delete mode 100644 docs/install-csi-driver-v1.1.0.md delete mode 100644 docs/install-csi-driver-v1.1.1.md delete mode 100644 docs/install-csi-driver-v1.2.0.md delete mode 100644 docs/install-csi-driver-v1.3.0.md delete mode 100644 docs/install-csi-driver-v1.4.0.md delete mode 100644 docs/install-csi-driver-v1.5.0.md delete mode 100644 docs/install-csi-driver-v1.5.1.md delete mode 100644 docs/install-csi-driver-v1.6.0.md delete mode 100644 docs/install-csi-driver-v1.7.0.md delete mode 100644 docs/install-csi-driver-v1.8.0.md delete mode 100644 docs/install-csi-driver-v1.9.0.md diff --git a/charts/index.yaml b/charts/index.yaml index 1e5a06fc38..2b2d92878e 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -3,7 +3,7 @@ entries: azuredisk-csi-driver: - apiVersion: v1 appVersion: latest-v2 - created: "2024-04-12T09:08:22.685875364Z" + created: "2024-04-12T09:11:55.317130256Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: b261d370dfb8bde4d15d6285d57c87369d9c66d12b92c8c6ad2b85495365759a name: azuredisk-csi-driver @@ -12,7 +12,7 @@ entries: version: v2.0.0-beta.7 - apiVersion: v1 appVersion: v2.0.0-beta.6 - created: "2024-04-12T09:08:22.74512206Z" + created: "2024-04-12T09:11:55.367083085Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 0e7280d2bcd752668c4439078ffdfc4567ac97af97d8baa07c322b99c34fb741 name: azuredisk-csi-driver @@ -21,7 +21,7 @@ entries: version: v2.0.0-beta.6 - apiVersion: v1 appVersion: v2.0.0-beta.5 - created: "2024-04-12T09:08:22.743490749Z" + created: "2024-04-12T09:11:55.365402791Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 10189dd78863d24c9572c468e0d81b8781f83625118e6b205ee65e157aab0602 name: azuredisk-csi-driver @@ -30,7 +30,7 @@ entries: version: v2.0.0-beta.5 - apiVersion: v1 appVersion: v2.0.0-beta.4 - created: "2024-04-12T09:08:22.74202479Z" + created: "2024-04-12T09:11:55.364034504Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: b38901738bb600ff55cc91e1efb45c84a3a601bb815908a348df793960cd7122 name: azuredisk-csi-driver @@ -39,7 +39,7 @@ entries: version: v2.0.0-beta.4 - apiVersion: v1 appVersion: v2.0.0-beta.3 - created: "2024-04-12T09:08:22.739769724Z" + created: "2024-04-12T09:11:55.362620772Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: ddfe774c7b2326ff61c71a7e6fbfe687e97f06b6a8cc5e87c0b50ac0f320c7fe name: azuredisk-csi-driver @@ -48,7 +48,7 @@ entries: version: v2.0.0-beta.3 - apiVersion: v1 appVersion: v2.0.0-beta.2 - created: "2024-04-12T09:08:22.738460996Z" + created: "2024-04-12T09:11:55.360461048Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 7c1b8159465e7642b7460ec8e4e2a2965be11e8abb8310d86d9487676adb6adc name: azuredisk-csi-driver @@ -57,7 +57,7 @@ entries: version: v2.0.0-beta.2 - apiVersion: v1 appVersion: v2.0.0-beta.1 - created: "2024-04-12T09:08:22.737206335Z" + created: "2024-04-12T09:11:55.359197488Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f327e1205e7197cf87693012848e2fd76a213c7852ac57a50753ba9e41207612 name: azuredisk-csi-driver @@ -66,7 +66,7 @@ entries: version: v2.0.0-beta.1 - apiVersion: v1 appVersion: v2.0.0-alpha.1 - created: "2024-04-12T09:08:22.735881624Z" + created: "2024-04-12T09:11:55.357904063Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: a00216ca8bdd4550f01071c0a57e7cf49f20b4915164ec6c785d2b5e51893870 name: azuredisk-csi-driver @@ -75,7 +75,7 @@ entries: version: v2.0.0-alpha.1 - apiVersion: v1 appVersion: v1.30.1 - created: "2024-04-12T09:08:22.727493884Z" + created: "2024-04-12T09:11:55.356736293Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e4464d1307aa8ad436b52f8647bb0ef74de214c2481515d1bcd3f2b6618de19f name: azuredisk-csi-driver @@ -84,7 +84,7 @@ entries: version: v1.30.1 - apiVersion: v1 appVersion: v1.30.0 - created: "2024-04-12T09:08:22.726317721Z" + created: "2024-04-12T09:11:55.354961038Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e76dc3ae89d3040cf078ca3232577d29e100813670ca5138a297bc3b2e1c5514 name: azuredisk-csi-driver @@ -93,7 +93,7 @@ entries: version: v1.30.0 - apiVersion: v1 appVersion: v1.29.5 - created: "2024-04-12T09:08:22.724560052Z" + created: "2024-04-12T09:11:55.35366935Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: c5317e28237707ec9d04fcd6c074edf7abfa625ba82dd34ecca8d1edd8030713 name: azuredisk-csi-driver @@ -102,7 +102,7 @@ entries: version: v1.29.5 - apiVersion: v1 appVersion: v1.29.2 - created: "2024-04-12T09:08:22.722627194Z" + created: "2024-04-12T09:11:55.352516412Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: ae0c15b875bb0bd2a4c1135437f0abfee6bf3591abcc502604317b3fe46015ff name: azuredisk-csi-driver @@ -111,7 +111,7 @@ entries: version: v1.29.2 - apiVersion: v1 appVersion: v1.29.1 - created: "2024-04-12T09:08:22.72148918Z" + created: "2024-04-12T09:11:55.351359732Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 441c64c6487a89efda91f22aa40358b6f9d31c73e2f131cfc10dcddd628af54f name: azuredisk-csi-driver @@ -120,7 +120,7 @@ entries: version: v1.29.1 - apiVersion: v1 appVersion: v1.29.0 - created: "2024-04-12T09:08:22.720311155Z" + created: "2024-04-12T09:11:55.350143805Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 611857811af7ac3304f7cae847be4f35bad6735482700d5b2c970dfbb53f9a3b name: azuredisk-csi-driver @@ -129,7 +129,7 @@ entries: version: v1.29.0 - apiVersion: v1 appVersion: v1.28.7 - created: "2024-04-12T09:08:22.719141092Z" + created: "2024-04-12T09:11:55.348204572Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: eadfc2ab5a34ea8c3211e61aedccd81a3d10f3def68e2659328139bf12b083c6 name: azuredisk-csi-driver @@ -138,7 +138,7 @@ entries: version: v1.28.7 - apiVersion: v1 appVersion: v1.28.5 - created: "2024-04-12T09:08:22.717911819Z" + created: "2024-04-12T09:11:55.347080755Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 1c8d6bb8882ddc62b699f877734f637291f755436474b4daeb80b395a9d5cdf1 name: azuredisk-csi-driver @@ -147,7 +147,7 @@ entries: version: v1.28.5 - apiVersion: v1 appVersion: v1.28.4 - created: "2024-04-12T09:08:22.715857769Z" + created: "2024-04-12T09:11:55.345955312Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f1b8fa60b0769577c563e33d475544577b37bb2430d027bfe92b91ad8588744d name: azuredisk-csi-driver @@ -156,7 +156,7 @@ entries: version: v1.28.4 - apiVersion: v1 appVersion: v1.28.3 - created: "2024-04-12T09:08:22.714720239Z" + created: "2024-04-12T09:11:55.344818314Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12fe80d19091cc4bc0025585da35d12bcab9cbc2f3e4cfd90eb4368e6967931a name: azuredisk-csi-driver @@ -165,7 +165,7 @@ entries: version: v1.28.3 - apiVersion: v1 appVersion: v1.28.2 - created: "2024-04-12T09:08:22.713599262Z" + created: "2024-04-12T09:11:55.343690976Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 044dc6ffb662914020a3a835f994455a3301a4b2b665c9d4b9496b422a93c8b1 name: azuredisk-csi-driver @@ -174,7 +174,7 @@ entries: version: v1.28.2 - apiVersion: v1 appVersion: v1.27.1 - created: "2024-04-12T09:08:22.712441632Z" + created: "2024-04-12T09:11:55.341734507Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 805d2f7437e7442739c18791e3eaf839d75bc9f3c1a10710e6cc6cb7ee06cbc4 name: azuredisk-csi-driver @@ -183,7 +183,7 @@ entries: version: v1.27.1 - apiVersion: v1 appVersion: v1.26.8 - created: "2024-04-12T09:08:22.71107193Z" + created: "2024-04-12T09:11:55.340641911Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3920ea0e2c358bc659b4bc243ad35420959d59c7532ebcf775de6c819ff0aca6 name: azuredisk-csi-driver @@ -192,7 +192,7 @@ entries: version: v1.26.8 - apiVersion: v1 appVersion: v1.26.7 - created: "2024-04-12T09:08:22.709065871Z" + created: "2024-04-12T09:11:55.339605781Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8796e69d622aaef119bf87047d1d7ed699e88119d48655590813ec5a38a3ccab name: azuredisk-csi-driver @@ -201,7 +201,7 @@ entries: version: v1.26.7 - apiVersion: v1 appVersion: v1.26.6 - created: "2024-04-12T09:08:22.708010952Z" + created: "2024-04-12T09:11:55.338540412Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 277051eba7872783d34d9b8ba7bd606f3161afe571523eaabfa8b400491010c9 name: azuredisk-csi-driver @@ -210,7 +210,7 @@ entries: version: v1.26.6 - apiVersion: v1 appVersion: v1.25.0 - created: "2024-04-12T09:08:22.70697019Z" + created: "2024-04-12T09:11:55.337483533Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: cc1a78eb68d741382945252fdc86dc38fc903bcc7448eef5753a1e663e4e6e3c name: azuredisk-csi-driver @@ -219,7 +219,7 @@ entries: version: v1.25.0 - apiVersion: v1 appVersion: v1.24.0 - created: "2024-04-12T09:08:22.705958121Z" + created: "2024-04-12T09:11:55.336427348Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8f4a2048cd3d8ef128e533c43c5b68464989e28949658010599d466b2ccb1b58 name: azuredisk-csi-driver @@ -228,7 +228,7 @@ entries: version: v1.24.0 - apiVersion: v1 appVersion: v1.23.0 - created: "2024-04-12T09:08:22.704844506Z" + created: "2024-04-12T09:11:55.334863973Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 4347271a297c6c95e10c4a880a08453c22839c95ad7db232d2d8fc38e926b385 name: azuredisk-csi-driver @@ -237,7 +237,7 @@ entries: version: v1.23.0 - apiVersion: v1 appVersion: v1.22.0 - created: "2024-04-12T09:08:22.702802968Z" + created: "2024-04-12T09:11:55.333159507Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: fc7adc9ddb406356bee117d3ba5c360408b4ee9a7decc30d34fe310d0cdd6aef name: azuredisk-csi-driver @@ -246,7 +246,7 @@ entries: version: v1.22.0 - apiVersion: v1 appVersion: v1.21.0 - created: "2024-04-12T09:08:22.701821905Z" + created: "2024-04-12T09:11:55.33215342Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 50a5c0860aa631c7e83affbaeac1a84c43c96b19175e1dd1c21cba472564798d name: azuredisk-csi-driver @@ -255,7 +255,7 @@ entries: version: v1.21.0 - apiVersion: v1 appVersion: v1.20.0 - created: "2024-04-12T09:08:22.700839728Z" + created: "2024-04-12T09:11:55.331140767Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 9f2a936be5efc45002c12d5bbbd8cb453e51a0c1668f6ceae51df656ac190c95 name: azuredisk-csi-driver @@ -264,7 +264,7 @@ entries: version: v1.20.0 - apiVersion: v1 appVersion: v1.19.0 - created: "2024-04-12T09:08:22.699362895Z" + created: "2024-04-12T09:11:55.330116233Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 6c044a33b4adf598b9810e8839f04a16b1214470eceeb61bbe48076552955296 name: azuredisk-csi-driver @@ -273,7 +273,7 @@ entries: version: v1.19.0 - apiVersion: v1 appVersion: v1.18.0 - created: "2024-04-12T09:08:22.698347235Z" + created: "2024-04-12T09:11:55.329121344Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 79474616c7373ed65bbf75050748fda16ae2f6b290d240813006abd74e733628 name: azuredisk-csi-driver @@ -282,7 +282,7 @@ entries: version: v1.18.0 - apiVersion: v1 appVersion: v1.17.0 - created: "2024-04-12T09:08:22.697148802Z" + created: "2024-04-12T09:11:55.32807605Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dcaad8438f57941c19f2269d9d4510591529f4de00353d12506fd277dc06378e name: azuredisk-csi-driver @@ -291,7 +291,7 @@ entries: version: v1.17.0 - apiVersion: v1 appVersion: v1.16.0 - created: "2024-04-12T09:08:22.695184555Z" + created: "2024-04-12T09:11:55.326160797Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 95108dce3a4da8aad2729ff8bc1587906b917925e6fe2e5935b5d25805080fb4 name: azuredisk-csi-driver @@ -300,7 +300,7 @@ entries: version: v1.16.0 - apiVersion: v1 appVersion: v1.15.0 - created: "2024-04-12T09:08:22.694179814Z" + created: "2024-04-12T09:11:55.325170953Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3da85b9206af81dc4217a3304bf14839158112300de7dbb95841e30daaf5e4e5 name: azuredisk-csi-driver @@ -309,7 +309,7 @@ entries: version: v1.15.0 - apiVersion: v1 appVersion: v1.14.0 - created: "2024-04-12T09:08:22.693211156Z" + created: "2024-04-12T09:11:55.324184244Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 89e87dead7767f8abd56096e436956b23a666802040f7aad91d5b6c36af8b098 name: azuredisk-csi-driver @@ -318,7 +318,7 @@ entries: version: v1.14.0 - apiVersion: v1 appVersion: v1.13.0 - created: "2024-04-12T09:08:22.69222936Z" + created: "2024-04-12T09:11:55.323201322Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: c109533218e0625e9ca33c2db5e73c4b550b88943f7950b33e02a344a8ff9f8c name: azuredisk-csi-driver @@ -327,7 +327,7 @@ entries: version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2024-04-12T09:08:22.69128967Z" + created: "2024-04-12T09:11:55.322228355Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e41f089e5216fc9263039310990d1e41bcb468a85879289af1834dea0c457aaa name: azuredisk-csi-driver @@ -336,7 +336,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2024-04-12T09:08:22.690312557Z" + created: "2024-04-12T09:11:55.321177439Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f35447c256488b1942342e9fcf8b6bed5f47b4ae5fb0fdae037110c5926803fe name: azuredisk-csi-driver @@ -345,97 +345,16 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2024-04-12T09:08:22.688882963Z" + created: "2024-04-12T09:11:55.319282251Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12bd0e1f20a2e2adcb04b6954423438d9ece7a2ad0fb4b4fe2969844d14cfb86 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.10.0/azuredisk-csi-driver-v1.10.0.tgz version: v1.10.0 - - apiVersion: v1 - appVersion: v1.9.0 - created: "2024-04-12T09:08:22.733836024Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: d917427661ca4ec13add77efcfe31d2c7c989e20b1427dd566a05ad1bdd98fa9 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.9.0/azuredisk-csi-driver-v1.9.0.tgz - version: v1.9.0 - - apiVersion: v1 - appVersion: v1.8.0 - created: "2024-04-12T09:08:22.732823034Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: a37491e845671e81b9567f2d1a746dbf4f182fde0c8f9e689dfa632c5651c6c9 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.8.0/azuredisk-csi-driver-v1.8.0.tgz - version: v1.8.0 - - apiVersion: v1 - appVersion: v1.7.0 - created: "2024-04-12T09:08:22.732037228Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 4df7a10466206c60deab00efbca57f67f042afd1ecd5daca738df28526f3ffcc - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.7.0/azuredisk-csi-driver-v1.7.0.tgz - version: v1.7.0 - - apiVersion: v1 - appVersion: v1.6.0 - created: "2024-04-12T09:08:22.7313183Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: b1a4c384fdfdb6577dd6dfd3709fb746b5c79247846e5c582b93c3a1187f6d88 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.6.0/azuredisk-csi-driver-v1.6.0.tgz - version: v1.6.0 - - apiVersion: v1 - appVersion: v1.5.1 - created: "2024-04-12T09:08:22.730430947Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: efb42e1d56cc5596eb4e695b658c2748bc05cc6c47862e3f20ea6b5b199d01d6 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.5.1/azuredisk-csi-driver-v1.5.1.tgz - version: v1.5.1 - - apiVersion: v1 - appVersion: v1.5.0 - created: "2024-04-12T09:08:22.728894678Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: c8490efde8d4a43bd25f5c619887498dfb4b41edf3929ac8dbf0a9d3f691e6ae - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.5.0/azuredisk-csi-driver-v1.5.0.tgz - version: v1.5.0 - - apiVersion: v1 - appVersion: v1.4.0 - created: "2024-04-12T09:08:22.728174681Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 55e5e17aac7c144b21a198867654ef70ad272987b0bb165782905adf91ca3c03 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.4.0/azuredisk-csi-driver-v1.4.0.tgz - version: v1.4.0 - - apiVersion: v1 - appVersion: v1.3.0 - created: "2024-04-12T09:08:22.725133483Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 2665483e922a577feb8539ca7f774bc70c945ce490294fd3378f098c2d244dde - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.3.0/azuredisk-csi-driver-v1.3.0.tgz - version: v1.3.0 - - apiVersion: v1 - appVersion: v1.2.0 - created: "2024-04-12T09:08:22.69986739Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 2bbfe2f9d080f1b3ff10590c7168d05ce026c5a73332b4d48014610a52337808 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.2.0/azuredisk-csi-driver-v1.2.0.tgz - version: v1.2.0 - apiVersion: v1 appVersion: v1.1.1 - created: "2024-04-12T09:08:22.687491356Z" + created: "2024-04-12T09:11:55.318208917Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dd7066be8f499f6c1a396ab27c0013c09f5a8d8319cc04fbdd480d31107bb851 name: azuredisk-csi-driver @@ -444,29 +363,20 @@ entries: version: v1.1.1 - apiVersion: v1 appVersion: v1.1.0 - created: "2024-04-12T09:08:22.686948131Z" + created: "2024-04-12T09:11:55.317675947Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3d2a5189416dd6a43bd3e2097bbe23a8db347b6e1a36c6a43fd59cc9c9633ff3 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.1.0/azuredisk-csi-driver-v1.1.0.tgz version: v1.1.0 - - apiVersion: v1 - appVersion: v1.0.0 - created: "2024-04-12T09:08:22.686418217Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: d179bc6f338518859b6efdc3b3bed8d06513313e8047563eb4b654b2d417c81e - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v1.0.0/azuredisk-csi-driver-v1.0.0.tgz - version: v1.0.0 - apiVersion: v1 appVersion: latest - created: "2024-04-12T09:08:22.684120295Z" + created: "2024-04-12T09:11:55.315372989Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8afb7830b99968736e7734c312207f265a7deb5829f4189d5f343d63fe00bd6d 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-04-12T09:08:22.68269916Z" +generated: "2024-04-12T09:11:55.313892021Z" diff --git a/charts/v1.0.0/azuredisk-csi-driver-v1.0.0.tgz b/charts/v1.0.0/azuredisk-csi-driver-v1.0.0.tgz deleted file mode 100644 index 795abe3b42b98d08a52819681be6364ffd1c4fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8872 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 eVq+@^w$Jw2KHI1L`Tqd`0RR7rj`!{W7y$qs!Dc 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 GA^`xZS~ML1 diff --git a/charts/v1.3.0/azuredisk-csi-driver/Chart.yaml b/charts/v1.3.0/azuredisk-csi-driver/Chart.yaml deleted file mode 100755 index 854b8de754..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v1.3.0 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v1.3.0 diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.3.0/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100755 index 6a9695dad2..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -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.3.0/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.3.0/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100755 index 51fcc8a092..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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.3.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100755 index 86c3120d7c..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,502 +0,0 @@ -{{- if .Values.snapshot.enabled -}} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100755 index 0ee07572f6..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,227 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: csi-azuredisk-controller - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: csi-provisioner - image: "{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}" - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: "{{ .Values.image.csiAttacher.repository }}:{{ .Values.image.csiAttacher.tag }}" - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=120s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - {{- if .Values.snapshot.enabled}} - - name: csi-snapshotter - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.tag }}" - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - {{- end}} - - name: csi-resizer - image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.controller.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}" - - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100755 index d2d7f30908..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: false diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100755 index ae00212696..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,181 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: "{{ .Values.windows.image.livenessProbe.repository }}:{{ .Values.windows.image.livenessProbe.tag }}" - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - imagePullPolicy: {{ .Values.windows.image.livenessProbe.pullPolicy }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.windows.image.nodeDriverRegistrar.repository }}:{{ .Values.windows.image.nodeDriverRegistrar.tag }}" - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - imagePullPolicy: {{ .Values.windows.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: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: {{ .Values.node.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - 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\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory -{{- end -}} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100755 index 4d5227242d..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,209 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: csi-azuredisk-node - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: {{ .Values.linux.kubelet }}/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: {{ .Values.node.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: {{ .Values.linux.kubelet }}/plugins/disk.csi.azure.com - 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: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100755 index db94c31d26..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: csi-snapshot-controller - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.tag }}" - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100755 index 99979a0e66..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- if .Values.rbac.create -}} -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-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", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100755 index 54d15e908c..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100755 index d9cae48020..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.snapshot.snapshotController.rbac -}} -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - 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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100755 index e10d1a8d4f..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100755 index 0a56802e42..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100755 index 518ccbfdf4..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.snapshot.snapshotController.serviceAccount -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: {{ .Release.Namespace }} -{{- end -}} diff --git a/charts/v1.3.0/azuredisk-csi-driver/values.yaml b/charts/v1.3.0/azuredisk-csi-driver/values.yaml deleted file mode 100755 index e5f84ab7f7..0000000000 --- a/charts/v1.3.0/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,88 +0,0 @@ -image: - azuredisk: - repository: mcr.microsoft.com/k8s/csi/azuredisk-csi - tag: v1.3.0 - pullPolicy: IfNotPresent - csiProvisioner: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner - tag: v2.1.1 - pullPolicy: IfNotPresent - csiAttacher: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher - tag: v3.1.0 - pullPolicy: IfNotPresent - csiResizer: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer - tag: v1.1.0 - pullPolicy: IfNotPresent - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.2.0 - pullPolicy: IfNotPresent - -serviceAccount: - create: true - -rbac: - create: true - -controller: - replicas: 2 - metricsPort: 29604 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - -node: - metricsPort: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -snapshot: - enabled: false - image: - csiSnapshotter: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - pullPolicy: IfNotPresent - snapshotController: - replicas: 1 - serviceAccount: true - rbac: true - -linux: - enabled: true - kubelet: /var/lib/kubelet - distro: debian - -windows: - enabled: true - kubelet: 'C:\var\lib\kubelet' - image: - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.2.0 - pullPolicy: IfNotPresent - -cloud: AzurePublicCloud - -## Reference to one or more secrets to be used when pulling images -## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ -## -imagePullSecrets: [] -# - name: "image-pull-secret" diff --git a/charts/v1.4.0/azuredisk-csi-driver-v1.4.0.tgz b/charts/v1.4.0/azuredisk-csi-driver-v1.4.0.tgz deleted file mode 100644 index 6628a715e1591c925c12bbd07d8670ca764e8b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12172 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 diff --git a/charts/v1.5.0/azuredisk-csi-driver/Chart.yaml b/charts/v1.5.0/azuredisk-csi-driver/Chart.yaml deleted file mode 100755 index ae4c3989be..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v1.5.0 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v1.5.0 diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.5.0/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100755 index 6a9695dad2..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -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.5.0/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.5.0/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100755 index 51fcc8a092..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml deleted file mode 100644 index be6a917661..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,632 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "ga" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100755 index cb012847c7..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,504 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "beta" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100755 index 20abb0f757..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,228 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: csi-provisioner - image: "{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}" - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: "{{ .Values.image.csiAttacher.repository }}:{{ .Values.image.csiAttacher.tag }}" - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.tag }}" - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.controller.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}" - - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" - - "--drivername={{ .Values.driver.name }}" - - "--cloud-config-secret-name={{ .Values.controller.cloudConfigSecretName }}" - - "--cloud-config-secret-namespace={{ .Values.controller.cloudConfigSecretNamespace }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100755 index e5a1c6ff05..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: {{ .Values.driver.name }} -spec: - attachRequired: true - podInfoOnMount: false - {{- if .Values.feature.enableFSGroupPolicy}} - fsGroupPolicy: File - {{- end}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100755 index 2b10b2d036..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,183 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - 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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: "{{ .Values.windows.image.livenessProbe.repository }}:{{ .Values.windows.image.livenessProbe.tag }}" - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port={{ .Values.node.livenessProbe.healthPort }}" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - imagePullPolicy: {{ .Values.windows.image.livenessProbe.pullPolicy }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.windows.image.nodeDriverRegistrar.repository }}:{{ .Values.windows.image.nodeDriverRegistrar.tag }}" - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\{{ .Values.driver.name }}\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\{{ .Values.driver.name }}-reg.sock C:\\csi\\{{ .Values.driver.name }}\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - imagePullPolicy: {{ .Values.windows.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: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--cloud-config-secret-name={{ .Values.node.cloudConfigSecretName }}" - - "--cloud-config-secret-namespace={{ .Values.node.cloudConfigSecretNamespace }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - 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: Directory -{{- end -}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100755 index 14f05e11e0..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,216 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - selector: - matchLabels: - app: {{ .Values.linux.dsName }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.linux.dsName }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical -{{- with .Values.linux.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/{{ .Values.driver.name }}-reg.sock /csi/csi.sock"] - 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: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--cloud-config-secret-name={{ .Values.node.cloudConfigSecretName }}" - - "--cloud-config-secret-namespace={{ .Values.node.cloudConfigSecretNamespace }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - 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: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100755 index 358bda737d..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,44 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: {{ .Values.snapshot.snapshotController.name }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.tag }}" - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100755 index 71afa47702..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- 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", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - ---- - -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", "list", "watch", "create", "update", "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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -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", "list", "watch", "create", "update", "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", "list"] - ---- -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.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100755 index b4a30373ce..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -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-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100755 index bbca06976f..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- 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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -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"] - ---- -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.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100755 index 08bd06cda5..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100755 index 941f3eb92c..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100755 index 7cdaad0b4f..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- 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.5.0/azuredisk-csi-driver/values.yaml b/charts/v1.5.0/azuredisk-csi-driver/values.yaml deleted file mode 100755 index 9283eb8589..0000000000 --- a/charts/v1.5.0/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,131 +0,0 @@ -image: - azuredisk: - repository: mcr.microsoft.com/k8s/csi/azuredisk-csi - tag: v1.5.0 - pullPolicy: IfNotPresent - csiProvisioner: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner - tag: v2.1.1 - pullPolicy: IfNotPresent - csiAttacher: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher - tag: v3.1.0 - pullPolicy: IfNotPresent - csiResizer: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer - tag: v1.1.0 - pullPolicy: IfNotPresent - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.2.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 - replicas: 2 - metricsPort: 29604 - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - -node: - cloudConfigSecretName: azure-cloud-provider - cloudConfigSecretNamespace: kube-system - metricsPort: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -snapshot: - enabled: false - name: csi-snapshot-controller - apiVersion: beta # available values: beta, ga - image: - csiSnapshotter: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 1 - podLabels: {} - -feature: - enableFSGroupPolicy: false - -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 - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - image: - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.2.0 - pullPolicy: IfNotPresent - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - -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" diff --git a/charts/v1.5.1/azuredisk-csi-driver-v1.5.1.tgz b/charts/v1.5.1/azuredisk-csi-driver-v1.5.1.tgz deleted file mode 100644 index 8300834216c70b8979d6d28b37eb999e447a18a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12518 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 diff --git a/charts/v1.5.1/azuredisk-csi-driver/Chart.yaml b/charts/v1.5.1/azuredisk-csi-driver/Chart.yaml deleted file mode 100755 index d6138837e9..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v1.5.1 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v1.5.1 diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.5.1/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100755 index 6a9695dad2..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -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.5.1/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.5.1/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100755 index 51fcc8a092..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml deleted file mode 100644 index be6a917661..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,632 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "ga" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100755 index cb012847c7..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,504 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "beta" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100755 index 20abb0f757..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,228 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: csi-provisioner - image: "{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}" - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: "{{ .Values.image.csiAttacher.repository }}:{{ .Values.image.csiAttacher.tag }}" - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.tag }}" - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.controller.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}" - - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" - - "--drivername={{ .Values.driver.name }}" - - "--cloud-config-secret-name={{ .Values.controller.cloudConfigSecretName }}" - - "--cloud-config-secret-namespace={{ .Values.controller.cloudConfigSecretNamespace }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100755 index e5a1c6ff05..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: {{ .Values.driver.name }} -spec: - attachRequired: true - podInfoOnMount: false - {{- if .Values.feature.enableFSGroupPolicy}} - fsGroupPolicy: File - {{- end}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100755 index 2b10b2d036..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,183 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - 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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: "{{ .Values.windows.image.livenessProbe.repository }}:{{ .Values.windows.image.livenessProbe.tag }}" - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port={{ .Values.node.livenessProbe.healthPort }}" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - imagePullPolicy: {{ .Values.windows.image.livenessProbe.pullPolicy }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.windows.image.nodeDriverRegistrar.repository }}:{{ .Values.windows.image.nodeDriverRegistrar.tag }}" - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\{{ .Values.driver.name }}\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\{{ .Values.driver.name }}-reg.sock C:\\csi\\{{ .Values.driver.name }}\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - imagePullPolicy: {{ .Values.windows.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: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--cloud-config-secret-name={{ .Values.node.cloudConfigSecretName }}" - - "--cloud-config-secret-namespace={{ .Values.node.cloudConfigSecretNamespace }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - 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: Directory -{{- end -}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100755 index 14f05e11e0..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,216 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - selector: - matchLabels: - app: {{ .Values.linux.dsName }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.linux.dsName }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical -{{- with .Values.linux.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/{{ .Values.driver.name }}-reg.sock /csi/csi.sock"] - 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: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--cloud-config-secret-name={{ .Values.node.cloudConfigSecretName }}" - - "--cloud-config-secret-namespace={{ .Values.node.cloudConfigSecretNamespace }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - 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: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100755 index 358bda737d..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,44 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: {{ .Values.snapshot.snapshotController.name }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.tag }}" - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100755 index 71afa47702..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- 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", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - ---- - -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", "list", "watch", "create", "update", "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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -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", "list", "watch", "create", "update", "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", "list"] - ---- -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.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100755 index b4a30373ce..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -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-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100755 index bbca06976f..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- 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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -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"] - ---- -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.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100755 index 08bd06cda5..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100755 index 941f3eb92c..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100755 index 7cdaad0b4f..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- 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.5.1/azuredisk-csi-driver/values.yaml b/charts/v1.5.1/azuredisk-csi-driver/values.yaml deleted file mode 100755 index c2d8fac248..0000000000 --- a/charts/v1.5.1/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,131 +0,0 @@ -image: - azuredisk: - repository: mcr.microsoft.com/k8s/csi/azuredisk-csi - tag: v1.5.1 - pullPolicy: IfNotPresent - csiProvisioner: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner - tag: v2.1.1 - pullPolicy: IfNotPresent - csiAttacher: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher - tag: v3.1.0 - pullPolicy: IfNotPresent - csiResizer: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer - tag: v1.1.0 - pullPolicy: IfNotPresent - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.2.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 - replicas: 2 - metricsPort: 29604 - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - -node: - cloudConfigSecretName: azure-cloud-provider - cloudConfigSecretNamespace: kube-system - metricsPort: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -snapshot: - enabled: false - name: csi-snapshot-controller - apiVersion: beta # available values: beta, ga - image: - csiSnapshotter: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 1 - podLabels: {} - -feature: - enableFSGroupPolicy: false - -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 - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - image: - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.2.0 - pullPolicy: IfNotPresent - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - -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" diff --git a/charts/v1.6.0/azuredisk-csi-driver-v1.6.0.tgz b/charts/v1.6.0/azuredisk-csi-driver-v1.6.0.tgz deleted file mode 100644 index a34098536f86501406e620483e28a039f56dcba7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12856 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 diff --git a/charts/v1.6.0/azuredisk-csi-driver/Chart.yaml b/charts/v1.6.0/azuredisk-csi-driver/Chart.yaml deleted file mode 100644 index 517a7d8035..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v1.6.0 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v1.6.0 diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.6.0/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100644 index 6a9695dad2..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -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.6.0/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.6.0/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100644 index 51fcc8a092..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml deleted file mode 100644 index be6a917661..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,632 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "ga" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100644 index cb012847c7..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,504 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "beta" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100644 index 2b247c72fb..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,234 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: csi-provisioner - image: "{{ .Values.image.csiProvisioner.repository }}:{{ .Values.image.csiProvisioner.tag }}" - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: "{{ .Values.image.csiAttacher.repository }}:{{ .Values.image.csiAttacher.tag }}" - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter -{{- if eq .Values.snapshot.apiVersion "beta" }} - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.tag }}" -{{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.controller.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:{{ .Values.controller.metricsPort }}" - - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100644 index e5a1c6ff05..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: {{ .Values.driver.name }} -spec: - attachRequired: true - podInfoOnMount: false - {{- if .Values.feature.enableFSGroupPolicy}} - fsGroupPolicy: File - {{- end}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100644 index b97af7e1cd..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,220 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: "{{ .Values.windows.image.livenessProbe.repository }}:{{ .Values.windows.image.livenessProbe.tag }}" - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port={{ .Values.node.livenessProbe.healthPort }}" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - imagePullPolicy: {{ .Values.windows.image.livenessProbe.pullPolicy }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.windows.image.nodeDriverRegistrar.repository }}:{{ .Values.windows.image.nodeDriverRegistrar.tag }}" - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\{{ .Values.driver.name }}-reg.sock C:\\csi\\{{ .Values.driver.name }}\\csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 3 - 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.windows.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: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1 - type: "" - - name: csi-proxy-disk-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1 - type: "" - - name: csi-proxy-volume-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1 - type: "" - # 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 - type: "" - - name: csi-proxy-disk-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - 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: Directory -{{- end -}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100644 index 2d5c2a88cb..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,222 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical -{{- with .Values.linux.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/{{ .Values.driver.name }}-reg.sock /csi/csi.sock"] - 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: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: "{{ .Values.image.azuredisk.repository }}:{{ .Values.image.azuredisk.tag }}" - args: - - "--v={{ .Values.node.logLevel }}" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - 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: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100644 index 1953620a5e..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,48 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: {{ .Values.snapshot.snapshotController.name }} -{{- if eq .Values.snapshot.apiVersion "beta" }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.tag }}" -{{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" -{{- end }} - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 71afa47702..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- 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", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - ---- - -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", "list", "watch", "create", "update", "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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -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", "list", "watch", "create", "update", "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", "list"] - ---- -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.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index b4a30373ce..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -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-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index bbca06976f..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- 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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -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"] - ---- -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.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100644 index 08bd06cda5..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100644 index 941f3eb92c..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100644 index 7cdaad0b4f..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- 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.6.0/azuredisk-csi-driver/values.yaml b/charts/v1.6.0/azuredisk-csi-driver/values.yaml deleted file mode 100644 index 6227e157ef..0000000000 --- a/charts/v1.6.0/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,136 +0,0 @@ -image: - azuredisk: - repository: mcr.microsoft.com/k8s/csi/azuredisk-csi - tag: v1.6.0 - pullPolicy: IfNotPresent - csiProvisioner: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner - tag: v2.1.1 - pullPolicy: IfNotPresent - csiAttacher: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher - tag: v3.1.0 - pullPolicy: IfNotPresent - csiResizer: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer - tag: v1.1.0 - pullPolicy: IfNotPresent - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.3.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 - replicas: 2 - metricsPort: 29604 - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - -node: - cloudConfigSecretName: azure-cloud-provider - cloudConfigSecretNamespace: kube-system - maxUnavailable: 1 - metricsPort: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -snapshot: - enabled: false - name: csi-snapshot-controller - apiVersion: beta # available values: beta, ga - image: - csiSnapshotter: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - gaTag: v4.2.0 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - gaTag: v4.2.0 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 1 - podLabels: {} - -feature: - enableFSGroupPolicy: false - -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" - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - image: - livenessProbe: - repository: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe - tag: v2.3.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.2.0 - pullPolicy: IfNotPresent - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - -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" diff --git a/charts/v1.7.0/azuredisk-csi-driver-v1.7.0.tgz b/charts/v1.7.0/azuredisk-csi-driver-v1.7.0.tgz deleted file mode 100644 index f5d88084e65cf28dc05bdcafeeccc91eb2b205c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13003 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 diff --git a/charts/v1.7.0/azuredisk-csi-driver/Chart.yaml b/charts/v1.7.0/azuredisk-csi-driver/Chart.yaml deleted file mode 100644 index 7dc4a9f427..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v1.7.0 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v1.7.0 diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.7.0/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100644 index 6a9695dad2..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -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.7.0/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.7.0/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100644 index 51fcc8a092..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml deleted file mode 100644 index be6a917661..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,632 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "ga" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100644 index cb012847c7..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,504 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "beta" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100644 index c05446680d..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,262 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ 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" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - 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=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter -{{- if eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotter.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- end }} -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe -{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- else }} - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- end }} - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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 }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100644 index 35b0118249..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: {{ .Values.driver.name }} - annotations: - csiDriver: "{{ .Values.image.azuredisk.tag }}" -{{- if eq .Values.snapshot.apiVersion "beta" }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.tag }}" -{{- else }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" -{{- end }} -spec: - attachRequired: true - podInfoOnMount: false - {{- if .Values.feature.enableFSGroupPolicy}} - fsGroupPolicy: File - {{- end}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 6f22794ef5..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,232 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - {{- 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=3s" - - "--health-port={{ .Values.node.livenessProbe.healthPort }}" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\{{ .Values.driver.name }}-reg.sock C:\\csi\\{{ .Values.driver.name }}\\csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 3 - 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: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1 - type: "" - - name: csi-proxy-disk-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1 - type: "" - - name: csi-proxy-volume-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1 - type: "" - # 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 - type: "" - - name: csi-proxy-disk-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - 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: Directory -{{- end -}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100644 index 79a5220403..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,234 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: Default - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical -{{- 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 - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/{{ .Values.driver.name }}-reg.sock /csi/csi.sock"] - 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: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - 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: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100644 index e2ac746dd8..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,56 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - containers: - - name: {{ .Values.snapshot.snapshotController.name }} -{{- if eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotController.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- end }} -{{- end }} - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 71afa47702..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- 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", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - ---- - -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", "list", "watch", "create", "update", "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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -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", "list", "watch", "create", "update", "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", "list"] - ---- -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.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index b4a30373ce..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -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-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index bbca06976f..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- 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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -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"] - ---- -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.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100644 index 08bd06cda5..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100644 index 941f3eb92c..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100644 index 7cdaad0b4f..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- 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.7.0/azuredisk-csi-driver/values.yaml b/charts/v1.7.0/azuredisk-csi-driver/values.yaml deleted file mode 100644 index a94bfd2846..0000000000 --- a/charts/v1.7.0/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,128 +0,0 @@ -image: - baseRepo: mcr.microsoft.com - azuredisk: - repository: /k8s/csi/azuredisk-csi - tag: v1.7.0 - pullPolicy: IfNotPresent - csiProvisioner: - repository: /oss/kubernetes-csi/csi-provisioner - tag: v2.2.2 - pullPolicy: IfNotPresent - csiAttacher: - repository: /oss/kubernetes-csi/csi-attacher - tag: v3.3.0 - pullPolicy: IfNotPresent - csiResizer: - repository: /oss/kubernetes-csi/csi-resizer - tag: v1.3.0 - pullPolicy: IfNotPresent - livenessProbe: - repository: /oss/kubernetes-csi/livenessprobe - tag: v2.4.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: /oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.3.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 - replicas: 2 - metricsPort: 29604 - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - -node: - cloudConfigSecretName: azure-cloud-provider - cloudConfigSecretNamespace: kube-system - maxUnavailable: 1 - metricsPort: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -snapshot: - enabled: false - name: csi-snapshot-controller - apiVersion: beta # available values: beta, ga - image: - csiSnapshotter: - repository: /oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: /oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 1 - podLabels: {} - -feature: - enableFSGroupPolicy: false - -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" - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - -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" diff --git a/charts/v1.8.0/azuredisk-csi-driver-v1.8.0.tgz b/charts/v1.8.0/azuredisk-csi-driver-v1.8.0.tgz deleted file mode 100644 index 77c8da31f223f5b96dca520dd67aa27a1327c512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13168 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 diff --git a/charts/v1.8.0/azuredisk-csi-driver/Chart.yaml b/charts/v1.8.0/azuredisk-csi-driver/Chart.yaml deleted file mode 100644 index 14aeb4a47f..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v1.8.0 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v1.8.0 diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.8.0/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100644 index 6a9695dad2..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -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.8.0/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.8.0/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100644 index 51fcc8a092..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml deleted file mode 100644 index efbb46b1da..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,655 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "ga" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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 occurrs 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: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: true - storage: false - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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"] - 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: true - storage: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100644 index cb012847c7..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,504 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "beta" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100644 index aae4adb0de..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,260 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- 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" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - 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=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter -{{- if eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotter.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- end }} -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe -{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- else }} - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- end }} - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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 }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100644 index 35b0118249..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: {{ .Values.driver.name }} - annotations: - csiDriver: "{{ .Values.image.azuredisk.tag }}" -{{- if eq .Values.snapshot.apiVersion "beta" }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.tag }}" -{{- else }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" -{{- end }} -spec: - attachRequired: true - podInfoOnMount: false - {{- if .Values.feature.enableFSGroupPolicy}} - fsGroupPolicy: File - {{- end}} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100644 index e78957846c..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,221 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: -{{ toYaml .Values.windows.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical - {{- 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=3s" - - "--health-port={{ .Values.node.livenessProbe.healthPort }}" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\{{ .Values.driver.name }}-reg.sock C:\\csi\\{{ .Values.driver.name }}\\csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - 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: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - 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.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100644 index bbfe7546b1..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,230 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: Default - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: -{{ toYaml .Values.linux.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical -{{- 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 - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/{{ .Values.driver.name }}-reg.sock /csi/csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - 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/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100644 index ded51313ef..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,60 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- 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 eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotController.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- end }} -{{- end }} - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 71afa47702..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- 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", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - ---- - -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", "list", "watch", "create", "update", "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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -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", "list", "watch", "create", "update", "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", "list"] - ---- -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.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index b4a30373ce..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -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-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index bbca06976f..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- 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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -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"] - ---- -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.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100644 index 08bd06cda5..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100644 index 941f3eb92c..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100644 index 7cdaad0b4f..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- 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.8.0/azuredisk-csi-driver/values.yaml b/charts/v1.8.0/azuredisk-csi-driver/values.yaml deleted file mode 100644 index 5bf69e6f38..0000000000 --- a/charts/v1.8.0/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,144 +0,0 @@ -image: - baseRepo: mcr.microsoft.com - azuredisk: - repository: /k8s/csi/azuredisk-csi - tag: v1.8.0 - pullPolicy: IfNotPresent - csiProvisioner: - repository: /oss/kubernetes-csi/csi-provisioner - tag: v2.2.2 - pullPolicy: IfNotPresent - csiAttacher: - repository: /oss/kubernetes-csi/csi-attacher - tag: v3.3.0 - pullPolicy: IfNotPresent - csiResizer: - repository: /oss/kubernetes-csi/csi-resizer - tag: v1.3.0 - pullPolicy: IfNotPresent - livenessProbe: - repository: /oss/kubernetes-csi/livenessprobe - tag: v2.4.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: /oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.3.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 - replicas: 2 - metricsPort: 29604 - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - -node: - cloudConfigSecretName: azure-cloud-provider - cloudConfigSecretNamespace: kube-system - maxUnavailable: 1 - metricsPort: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -snapshot: - enabled: false - name: csi-snapshot-controller - apiVersion: beta # available values: beta, ga - image: - csiSnapshotter: - repository: /oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: /oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 1 - podLabels: {} - -feature: - enableFSGroupPolicy: false - -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" - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - -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" diff --git a/charts/v1.9.0/azuredisk-csi-driver-v1.9.0.tgz b/charts/v1.9.0/azuredisk-csi-driver-v1.9.0.tgz deleted file mode 100644 index d4df2af47b5af1e9af4c46bccfaee27d16fd171d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13225 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 diff --git a/charts/v1.9.0/azuredisk-csi-driver/Chart.yaml b/charts/v1.9.0/azuredisk-csi-driver/Chart.yaml deleted file mode 100644 index 21be0bb7eb..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v1.9.0 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v1.9.0 diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/NOTES.txt b/charts/v1.9.0/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100644 index 6a9695dad2..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,5 +0,0 @@ -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.9.0/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v1.9.0/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100644 index 51fcc8a092..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml deleted file mode 100644 index efbb46b1da..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,655 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "ga" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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 occurrs 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: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: true - storage: false - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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"] - 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: true - storage: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100644 index cb012847c7..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,504 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -{{- if eq .Values.snapshot.apiVersion "beta" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100644 index f44b5e9480..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,226 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- 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" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: {{- toYaml .Values.controller.resources.csiProvisioner | nindent 12 }} - - 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=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: {{- toYaml .Values.controller.resources.csiAttacher | nindent 12 }} - - name: csi-snapshotter -{{- if eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotter.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- end }} -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.csiSnapshotter | nindent 12 }} - - name: csi-resizer -{{- if hasPrefix "/" .Values.image.csiResizer.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" -{{- else }} - image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=false' - - "-timeout=60s" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.csiResizer | nindent 12 }} - - name: liveness-probe -{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- else }} - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- end }} - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} - - 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 }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metricsPort }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: {{- toYaml .Values.controller.resources.azuredisk | nindent 12 }} - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100644 index 35b0118249..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: {{ .Values.driver.name }} - annotations: - csiDriver: "{{ .Values.image.azuredisk.tag }}" -{{- if eq .Values.snapshot.apiVersion "beta" }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.tag }}" -{{- else }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" -{{- end }} -spec: - attachRequired: true - podInfoOnMount: false - {{- if .Values.feature.enableFSGroupPolicy}} - fsGroupPolicy: File - {{- end}} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100644 index d33dc6794b..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,200 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: -{{ toYaml .Values.windows.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical - {{- 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=3s" - - "--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 }} - - 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)" - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 60 - timeoutSeconds: 30 - 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 }} - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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 }} - 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.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100644 index b0e695268a..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,209 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: Default - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: -{{ toYaml .Values.linux.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical -{{- 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 - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }} - - name: node-driver-registrar -{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" -{{- else }} - image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" -{{- end }} - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - livenessProbe: - exec: - command: - - /csi-node-driver-registrar - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: {{- toYaml .Values.linux.resources.nodeDriverRegistrar | nindent 12 }} - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metricsPort }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: {{- toYaml .Values.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/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100644 index ae6f5a49b6..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,54 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- 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 eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotController.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- end }} -{{- end }} - args: - - "--v=2" - - "--leader-election=true" - resources: {{- toYaml .Values.snapshot.snapshotController.resources | nindent 12 }} - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 71afa47702..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- 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", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - ---- - -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", "list", "watch", "create", "update", "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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -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", "list", "watch", "create", "update", "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", "list"] - ---- -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.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index b4a30373ce..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,25 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -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-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index bbca06976f..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,69 +0,0 @@ -{{- 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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -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"] - ---- -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.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100644 index 08bd06cda5..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100644 index 941f3eb92c..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100644 index 7cdaad0b4f..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- 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.9.0/azuredisk-csi-driver/values.yaml b/charts/v1.9.0/azuredisk-csi-driver/values.yaml deleted file mode 100644 index 4c0a096b37..0000000000 --- a/charts/v1.9.0/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,240 +0,0 @@ -image: - baseRepo: mcr.microsoft.com - azuredisk: - repository: /k8s/csi/azuredisk-csi - tag: v1.9.0 - pullPolicy: IfNotPresent - csiProvisioner: - repository: /oss/kubernetes-csi/csi-provisioner - tag: v2.2.2 - pullPolicy: IfNotPresent - csiAttacher: - repository: /oss/kubernetes-csi/csi-attacher - tag: v3.3.0 - pullPolicy: IfNotPresent - csiResizer: - repository: /oss/kubernetes-csi/csi-resizer - tag: v1.3.0 - pullPolicy: IfNotPresent - livenessProbe: - repository: /oss/kubernetes-csi/livenessprobe - tag: v2.5.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: /oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.4.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 - replicas: 2 - metricsPort: 29604 - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - resources: - csiProvisioner: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - csiAttacher: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - csiResizer: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - csiSnapshotter: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - livenessProbe: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - azuredisk: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - -node: - cloudConfigSecretName: azure-cloud-provider - cloudConfigSecretNamespace: kube-system - allowEmptyCloudConfig: true - maxUnavailable: 1 - metricsPort: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -snapshot: - enabled: false - name: csi-snapshot-controller - apiVersion: beta # available values: beta, ga - image: - csiSnapshotter: - repository: /oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: /oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 2 - podLabels: {} - resources: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - -feature: - enableFSGroupPolicy: false - -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" - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - resources: - livenessProbe: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - nodeDriverRegistrar: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - azuredisk: - limits: - cpu: 1 - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - resources: - livenessProbe: - limits: - cpu: 1 - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - nodeDriverRegistrar: - limits: - cpu: 1 - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - azuredisk: - limits: - cpu: 1 - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - -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" diff --git a/deploy/v1.0.0/crd-csi-snapshot.yaml b/deploy/v1.0.0/crd-csi-snapshot.yaml deleted file mode 100644 index dde081d79c..0000000000 --- a/deploy/v1.0.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,505 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .status.readyToUse - description: Indicates if a snapshot is ready to be used to restore a volume. - name: ReadyToUse - type: boolean - - JSONPath: .spec.source.persistentVolumeClaimName - description: Name of the source PVC from where a dynamically taken snapshot will - be created. - name: SourcePVC - type: string - - JSONPath: .spec.source.volumeSnapshotContentName - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - name: SourceSnapshotContent - type: string - - JSONPath: .status.restoreSize - description: Represents the complete size of the snapshot. - name: RestoreSize - type: string - - JSONPath: .spec.volumeSnapshotClassName - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. - name: SnapshotClass - type: string - - JSONPath: .status.boundVolumeSnapshotContentName - description: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - name: SnapshotContent - type: string - - JSONPath: .status.creationTime - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - name: CreationTime - type: date - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. This - field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a pre-existing - VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is no - default snapshot class, dynamic snapshot creation will fail. Empty - string is not allowed for this field. TODO(xiangqian): a webhook validation - on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. NOTE: - status can be modified by sources other than system controllers, and must - not be depended upon for accuracy. Controllers should only use information - from the VolumeSnapshotContent object after verifying that the binding - is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot object - has not been successfully bound to a VolumeSnapshotContent object - yet. NOTE: Specified boundVolumeSnapshotContentName alone does not - mean binding is valid. Controllers MUST always verify bidirectional - binding between VolumeSnapshot and VolumeSnapshotContent to - avoid possible security issues.' - 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 with the "creation_time" value - returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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: - anyOf: - - type: integer - - type: string - description: restoreSize represents the complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be filled - in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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 - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .driver - name: Driver - type: string - - JSONPath: .deletionPolicy - description: Determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass - should be deleted when its bound VolumeSnapshot is deleted. - name: DeletionPolicy - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - singular: volumesnapshotclass - preserveUnknownFields: false - scope: Cluster - subresources: {} - validation: - 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 - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .status.readyToUse - description: Indicates if a snapshot is ready to be used to restore a volume. - name: ReadyToUse - type: boolean - - JSONPath: .status.restoreSize - description: Represents the complete size of the snapshot in bytes - name: RestoreSize - type: integer - - JSONPath: .spec.deletionPolicy - description: Determines whether this VolumeSnapshotContent and its physical snapshot - on the underlying storage system should be deleted when its bound VolumeSnapshot - is deleted. - name: DeletionPolicy - type: string - - JSONPath: .spec.driver - description: Name of the CSI driver used to create the physical snapshot on the - underlying storage system. - name: Driver - type: string - - JSONPath: .spec.volumeSnapshotClassName - description: Name of the VolumeSnapshotClass to which this snapshot belongs. - name: VolumeSnapshotClass - type: string - - JSONPath: .spec.volumeSnapshotRef.name - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent - object is bound. - name: VolumeSnapshot - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - preserveUnknownFields: false - scope: Cluster - subresources: - status: {} - validation: - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" value - returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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 - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.0.0/csi-azuredisk-controller.yaml b/deploy/v1.0.0/csi-azuredisk-controller.yaml deleted file mode 100644 index 2a3649c100..0000000000 --- a/deploy/v1.0.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,181 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v1.6.1 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--enable-leader-election" - - "--leader-election-type=leases" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v2.2.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=120s" - - "-leader-election" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.1.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.2.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.0.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.0.0/csi-azuredisk-driver.yaml b/deploy/v1.0.0/csi-azuredisk-driver.yaml deleted file mode 100644 index 52470f0fd2..0000000000 --- a/deploy/v1.0.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1beta1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: true diff --git a/deploy/v1.0.0/csi-azuredisk-node-windows.yaml b/deploy/v1.0.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 0293c11820..0000000000 --- a/deploy/v1.0.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,162 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.2.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.0.1 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.0.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.0.0/csi-azuredisk-node.yaml b/deploy/v1.0.0/csi-azuredisk-node.yaml deleted file mode 100644 index 29cf3736ca..0000000000 --- a/deploy/v1.0.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,173 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.2.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.0.1 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.0.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.0.0/csi-snapshot-controller.yaml b/deploy/v1.0.0/csi-snapshot-controller.yaml deleted file mode 100644 index 909c38c20a..0000000000 --- a/deploy/v1.0.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.0.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.0.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 583c1738b8..0000000000 --- a/deploy/v1.0.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,198 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding - namespace: kube-system -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.0.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.0.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index f017fd0eb1..0000000000 --- a/deploy/v1.0.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding - namespace: kube-system -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.0.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.0.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4b97adb7f5..0000000000 --- a/deploy/v1.0.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,77 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - namespace: kube-system - name: csi-snapshot-controller-leaderelection-role -rules: - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding - namespace: kube-system -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.2.0/crd-csi-snapshot.yaml b/deploy/v1.2.0/crd-csi-snapshot.yaml deleted file mode 100644 index dde081d79c..0000000000 --- a/deploy/v1.2.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,505 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .status.readyToUse - description: Indicates if a snapshot is ready to be used to restore a volume. - name: ReadyToUse - type: boolean - - JSONPath: .spec.source.persistentVolumeClaimName - description: Name of the source PVC from where a dynamically taken snapshot will - be created. - name: SourcePVC - type: string - - JSONPath: .spec.source.volumeSnapshotContentName - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - name: SourceSnapshotContent - type: string - - JSONPath: .status.restoreSize - description: Represents the complete size of the snapshot. - name: RestoreSize - type: string - - JSONPath: .spec.volumeSnapshotClassName - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. - name: SnapshotClass - type: string - - JSONPath: .status.boundVolumeSnapshotContentName - description: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - name: SnapshotContent - type: string - - JSONPath: .status.creationTime - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - name: CreationTime - type: date - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - preserveUnknownFields: false - scope: Namespaced - subresources: - status: {} - validation: - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. This - field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a pre-existing - VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is no - default snapshot class, dynamic snapshot creation will fail. Empty - string is not allowed for this field. TODO(xiangqian): a webhook validation - on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. NOTE: - status can be modified by sources other than system controllers, and must - not be depended upon for accuracy. Controllers should only use information - from the VolumeSnapshotContent object after verifying that the binding - is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot object - has not been successfully bound to a VolumeSnapshotContent object - yet. NOTE: Specified boundVolumeSnapshotContentName alone does not - mean binding is valid. Controllers MUST always verify bidirectional - binding between VolumeSnapshot and VolumeSnapshotContent to - avoid possible security issues.' - 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 with the "creation_time" value - returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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: - anyOf: - - type: integer - - type: string - description: restoreSize represents the complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be filled - in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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 - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .driver - name: Driver - type: string - - JSONPath: .deletionPolicy - description: Determines whether a VolumeSnapshotContent created through the VolumeSnapshotClass - should be deleted when its bound VolumeSnapshot is deleted. - name: DeletionPolicy - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - singular: volumesnapshotclass - preserveUnknownFields: false - scope: Cluster - subresources: {} - validation: - 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 - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.2.5 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/260" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - additionalPrinterColumns: - - JSONPath: .status.readyToUse - description: Indicates if a snapshot is ready to be used to restore a volume. - name: ReadyToUse - type: boolean - - JSONPath: .status.restoreSize - description: Represents the complete size of the snapshot in bytes - name: RestoreSize - type: integer - - JSONPath: .spec.deletionPolicy - description: Determines whether this VolumeSnapshotContent and its physical snapshot - on the underlying storage system should be deleted when its bound VolumeSnapshot - is deleted. - name: DeletionPolicy - type: string - - JSONPath: .spec.driver - description: Name of the CSI driver used to create the physical snapshot on the - underlying storage system. - name: Driver - type: string - - JSONPath: .spec.volumeSnapshotClassName - description: Name of the VolumeSnapshotClass to which this snapshot belongs. - name: VolumeSnapshotClass - type: string - - JSONPath: .spec.volumeSnapshotRef.name - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent - object is bound. - name: VolumeSnapshot - type: string - - JSONPath: .metadata.creationTimestamp - name: Age - type: date - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - preserveUnknownFields: false - scope: Cluster - subresources: - status: {} - validation: - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" value - returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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 - version: v1beta1 - versions: - - name: v1beta1 - served: true - storage: true -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.2.0/csi-azuredisk-controller.yaml b/deploy/v1.2.0/csi-azuredisk-controller.yaml deleted file mode 100644 index 970e52eda7..0000000000 --- a/deploy/v1.2.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,184 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.1.1 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.1.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=120s" - - "-leader-election" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.1.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.2.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.2.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.2.0/csi-azuredisk-driver.yaml b/deploy/v1.2.0/csi-azuredisk-driver.yaml deleted file mode 100644 index 52470f0fd2..0000000000 --- a/deploy/v1.2.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1beta1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: true diff --git a/deploy/v1.2.0/csi-azuredisk-node-windows.yaml b/deploy/v1.2.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 453c9b9959..0000000000 --- a/deploy/v1.2.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,170 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.2.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.1.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.2.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.2.0/csi-azuredisk-node.yaml b/deploy/v1.2.0/csi-azuredisk-node.yaml deleted file mode 100644 index 228b05d244..0000000000 --- a/deploy/v1.2.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,173 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.2.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.1.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.2.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.2.0/csi-snapshot-controller.yaml b/deploy/v1.2.0/csi-snapshot-controller.yaml deleted file mode 100644 index 909c38c20a..0000000000 --- a/deploy/v1.2.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.2.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.2.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.2.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.2.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.2.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.2.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.2.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.2.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.2.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.3.0/crd-csi-snapshot.yaml b/deploy/v1.3.0/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.3.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.3.0/csi-azuredisk-controller.yaml b/deploy/v1.3.0/csi-azuredisk-controller.yaml deleted file mode 100644 index 59aa62a1ce..0000000000 --- a/deploy/v1.3.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,186 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.1.1 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.1.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=120s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.1.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.3.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.3.0/csi-azuredisk-driver.yaml b/deploy/v1.3.0/csi-azuredisk-driver.yaml deleted file mode 100644 index 8edf5213eb..0000000000 --- a/deploy/v1.3.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.3.0/csi-azuredisk-node-windows.yaml b/deploy/v1.3.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index bc1db6413a..0000000000 --- a/deploy/v1.3.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,170 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.3.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.3.0/csi-azuredisk-node.yaml b/deploy/v1.3.0/csi-azuredisk-node.yaml deleted file mode 100644 index 011c5160a0..0000000000 --- a/deploy/v1.3.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,173 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.3.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.3.0/csi-snapshot-controller.yaml b/deploy/v1.3.0/csi-snapshot-controller.yaml deleted file mode 100644 index 909c38c20a..0000000000 --- a/deploy/v1.3.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.3.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.3.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.3.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.3.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.3.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.3.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.3.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.3.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.3.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.4.0/crd-csi-snapshot-ga.yaml b/deploy/v1.4.0/crd-csi-snapshot-ga.yaml deleted file mode 100644 index 6b3455c506..0000000000 --- a/deploy/v1.4.0/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,629 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.4.0/crd-csi-snapshot.yaml b/deploy/v1.4.0/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.4.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.4.0/csi-azuredisk-controller.yaml b/deploy/v1.4.0/csi-azuredisk-controller.yaml deleted file mode 100644 index 22266004b8..0000000000 --- a/deploy/v1.4.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,187 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.1.1 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - - "--extra-create-metadata=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.1.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=120s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.1.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.4.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.4.0/csi-azuredisk-driver.yaml b/deploy/v1.4.0/csi-azuredisk-driver.yaml deleted file mode 100644 index 8edf5213eb..0000000000 --- a/deploy/v1.4.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.4.0/csi-azuredisk-node-windows.yaml b/deploy/v1.4.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 3029ac0404..0000000000 --- a/deploy/v1.4.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,170 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.4.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.4.0/csi-azuredisk-node.yaml b/deploy/v1.4.0/csi-azuredisk-node.yaml deleted file mode 100644 index 78e16ea253..0000000000 --- a/deploy/v1.4.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,174 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.4.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--enable-perf-optimization=true" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - - containerPort: 29605 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.4.0/csi-snapshot-controller.yaml b/deploy/v1.4.0/csi-snapshot-controller.yaml deleted file mode 100644 index b8ca154c6f..0000000000 --- a/deploy/v1.4.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.4.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.4.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.4.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.4.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.4.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.4.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.4.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.4.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.4.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.5.0/crd-csi-snapshot-ga.yaml b/deploy/v1.5.0/crd-csi-snapshot-ga.yaml deleted file mode 100644 index 6b3455c506..0000000000 --- a/deploy/v1.5.0/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,629 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.5.0/crd-csi-snapshot.yaml b/deploy/v1.5.0/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.5.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.5.0/csi-azuredisk-controller.yaml b/deploy/v1.5.0/csi-azuredisk-controller.yaml deleted file mode 100644 index 3820464026..0000000000 --- a/deploy/v1.5.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,186 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.1.1 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.1.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.1.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.5.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.5.0/csi-azuredisk-driver.yaml b/deploy/v1.5.0/csi-azuredisk-driver.yaml deleted file mode 100644 index 8edf5213eb..0000000000 --- a/deploy/v1.5.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.5.0/csi-azuredisk-node-windows.yaml b/deploy/v1.5.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 2bfc779fba..0000000000 --- a/deploy/v1.5.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,167 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.5.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.5.0/csi-azuredisk-node.yaml b/deploy/v1.5.0/csi-azuredisk-node.yaml deleted file mode 100644 index 1708f166d0..0000000000 --- a/deploy/v1.5.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,171 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.5.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--enable-perf-optimization=true" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.5.0/csi-snapshot-controller.yaml b/deploy/v1.5.0/csi-snapshot-controller.yaml deleted file mode 100644 index b8ca154c6f..0000000000 --- a/deploy/v1.5.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.5.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.5.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.5.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.5.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.5.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.5.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.5.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.5.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.5.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.5.1/crd-csi-snapshot-ga.yaml b/deploy/v1.5.1/crd-csi-snapshot-ga.yaml deleted file mode 100644 index 6b3455c506..0000000000 --- a/deploy/v1.5.1/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,629 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.5.1/crd-csi-snapshot.yaml b/deploy/v1.5.1/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.5.1/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.5.1/csi-azuredisk-controller.yaml b/deploy/v1.5.1/csi-azuredisk-controller.yaml deleted file mode 100644 index c8e9826bb3..0000000000 --- a/deploy/v1.5.1/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,186 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.1.1 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.1.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.1.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.5.1 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.5.1/csi-azuredisk-driver.yaml b/deploy/v1.5.1/csi-azuredisk-driver.yaml deleted file mode 100644 index 8edf5213eb..0000000000 --- a/deploy/v1.5.1/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.5.1/csi-azuredisk-node-windows.yaml b/deploy/v1.5.1/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 7d970d461f..0000000000 --- a/deploy/v1.5.1/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,167 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.5.1 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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 - mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1 - - name: csi-proxy-disk-pipe - mountPath: \\.\pipe\csi-proxy-disk-v1beta2 - - name: csi-proxy-volume-pipe - mountPath: \\.\pipe\csi-proxy-volume-v1beta2 - resources: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1beta1 - type: "" - - name: csi-proxy-disk-pipe - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.5.1/csi-azuredisk-node.yaml b/deploy/v1.5.1/csi-azuredisk-node.yaml deleted file mode 100644 index 7234e32fda..0000000000 --- a/deploy/v1.5.1/csi-azuredisk-node.yaml +++ /dev/null @@ -1,171 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.2.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.5.1 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--enable-perf-optimization=true" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.5.1/csi-snapshot-controller.yaml b/deploy/v1.5.1/csi-snapshot-controller.yaml deleted file mode 100644 index b8ca154c6f..0000000000 --- a/deploy/v1.5.1/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.5.1/rbac-csi-azuredisk-controller.yaml b/deploy/v1.5.1/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.5.1/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.5.1/rbac-csi-azuredisk-node.yaml b/deploy/v1.5.1/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.5.1/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.5.1/rbac-csi-snapshot-controller.yaml b/deploy/v1.5.1/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.5.1/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.6.0/crd-csi-snapshot-ga.yaml b/deploy/v1.6.0/crd-csi-snapshot-ga.yaml deleted file mode 100644 index 6b3455c506..0000000000 --- a/deploy/v1.6.0/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,629 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.6.0/crd-csi-snapshot.yaml b/deploy/v1.6.0/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.6.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.6.0/csi-azuredisk-controller.yaml b/deploy/v1.6.0/csi-azuredisk-controller.yaml deleted file mode 100644 index 88acfad6c1..0000000000 --- a/deploy/v1.6.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,187 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.1.1 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.1.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.1.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.6.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - - "--user-agent-suffix=OSS-kubectl" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.6.0/csi-azuredisk-driver.yaml b/deploy/v1.6.0/csi-azuredisk-driver.yaml deleted file mode 100644 index 8edf5213eb..0000000000 --- a/deploy/v1.6.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.6.0/csi-azuredisk-node-windows.yaml b/deploy/v1.6.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 73cbe3d7b8..0000000000 --- a/deploy/v1.6.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,203 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.3.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 3 - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: DRIVER_REG_SOCK_PATH - value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.6.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--user-agent-suffix=OSS-kubectl" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1 - type: "" - - name: csi-proxy-disk-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1 - type: "" - - name: csi-proxy-volume-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1 - type: "" - # 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 - type: "" - - name: csi-proxy-disk-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.6.0/csi-azuredisk-node.yaml b/deploy/v1.6.0/csi-azuredisk-node.yaml deleted file mode 100644 index b195bdb4a5..0000000000 --- a/deploy/v1.6.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,176 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: ClusterFirstWithHostNet - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.3.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.3.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.6.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--enable-perf-optimization=true" - - "--user-agent-suffix=OSS-kubectl" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.6.0/csi-snapshot-controller.yaml b/deploy/v1.6.0/csi-snapshot-controller.yaml deleted file mode 100644 index b8ca154c6f..0000000000 --- a/deploy/v1.6.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.6.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.6.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.6.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.6.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.6.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.6.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.6.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.6.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.6.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.7.0/crd-csi-snapshot-ga.yaml b/deploy/v1.7.0/crd-csi-snapshot-ga.yaml deleted file mode 100644 index 6b3455c506..0000000000 --- a/deploy/v1.7.0/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,629 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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: false - 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 - 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 occurrs 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: false - 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 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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 - - 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"] - 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: false - 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.7.0/crd-csi-snapshot.yaml b/deploy/v1.7.0/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.7.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.7.0/csi-azuredisk-controller.yaml b/deploy/v1.7.0/csi-azuredisk-controller.yaml deleted file mode 100644 index e719e81d49..0000000000 --- a/deploy/v1.7.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,188 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.2.2 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.3.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.3.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.4.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.7.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - - "--user-agent-suffix=OSS-kubectl" - - "--disable-avset-nodes=true" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: Directory - - name: msi - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings diff --git a/deploy/v1.7.0/csi-azuredisk-driver.yaml b/deploy/v1.7.0/csi-azuredisk-driver.yaml deleted file mode 100644 index 4455066c4c..0000000000 --- a/deploy/v1.7.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com - annotations: - csiDriver: v1.7.0 - snapshot: v3.0.3 -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.7.0/csi-azuredisk-node-windows.yaml b/deploy/v1.7.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 966d1902cd..0000000000 --- a/deploy/v1.7.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,203 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.4.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.3.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 3 - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: DRIVER_REG_SOCK_PATH - value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.7.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--user-agent-suffix=OSS-kubectl" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: csi-proxy-fs-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-filesystem-v1 - type: "" - - name: csi-proxy-disk-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1 - type: "" - - name: csi-proxy-volume-pipe-v1 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1 - type: "" - # 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 - type: "" - - name: csi-proxy-disk-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-disk-v1beta2 - type: "" - - name: csi-proxy-volume-pipe-v1beta2 - hostPath: - path: \\.\pipe\csi-proxy-volume-v1beta2 - type: "" - - name: registration-dir - hostPath: - path: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: Directory diff --git a/deploy/v1.7.0/csi-azuredisk-node.yaml b/deploy/v1.7.0/csi-azuredisk-node.yaml deleted file mode 100644 index a84fc705a6..0000000000 --- a/deploy/v1.7.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,176 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: Default - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.4.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.3.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.7.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--enable-perf-optimization=true" - - "--user-agent-suffix=OSS-kubectl" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /var/lib/waagent/ManagedIdentity-Settings - readOnly: true - name: msi - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: Directory - name: azure-cred - - hostPath: - path: /var/lib/waagent/ManagedIdentity-Settings - name: msi - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.7.0/csi-snapshot-controller.yaml b/deploy/v1.7.0/csi-snapshot-controller.yaml deleted file mode 100644 index b8ca154c6f..0000000000 --- a/deploy/v1.7.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.7.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.7.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.7.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.7.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.7.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.7.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.7.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.7.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.7.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.8.0/crd-csi-snapshot-ga.yaml b/deploy/v1.8.0/crd-csi-snapshot-ga.yaml deleted file mode 100644 index d6553e0c08..0000000000 --- a/deploy/v1.8.0/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,652 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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 occurrs 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: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: true - storage: false - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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"] - 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: true - storage: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.8.0/crd-csi-snapshot.yaml b/deploy/v1.8.0/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.8.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.8.0/csi-azuredisk-controller.yaml b/deploy/v1.8.0/csi-azuredisk-controller.yaml deleted file mode 100644 index 55d25b4244..0000000000 --- a/deploy/v1.8.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,182 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.2.2 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.3.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 100m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.3.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=true' - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 300Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.4.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.8.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - - "--user-agent-suffix=OSS-kubectl" - - "--disable-avset-nodes=true" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate diff --git a/deploy/v1.8.0/csi-azuredisk-driver.yaml b/deploy/v1.8.0/csi-azuredisk-driver.yaml deleted file mode 100644 index de8eff05f8..0000000000 --- a/deploy/v1.8.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com - annotations: - csiDriver: v1.8.0 - snapshot: v3.0.3 -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.8.0/csi-azuredisk-node-windows.yaml b/deploy/v1.8.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index ad10899a74..0000000000 --- a/deploy/v1.8.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,197 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.4.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.3.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\disk.csi.azure.com-reg.sock C:\\csi\\disk.csi.azure.com\\csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: DRIVER_REG_SOCK_PATH - value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.8.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - 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: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: DirectoryOrCreate diff --git a/deploy/v1.8.0/csi-azuredisk-node.yaml b/deploy/v1.8.0/csi-azuredisk-node.yaml deleted file mode 100644 index 3bea81f924..0000000000 --- a/deploy/v1.8.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,177 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: Default - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.4.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.3.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/disk.csi.azure.com-reg.sock /csi/csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.8.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--enable-perf-optimization=true" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate - name: azure-cred - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.8.0/csi-snapshot-controller.yaml b/deploy/v1.8.0/csi-snapshot-controller.yaml deleted file mode 100644 index b8ca154c6f..0000000000 --- a/deploy/v1.8.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 1 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.8.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.8.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.8.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.8.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.8.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.8.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.8.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.8.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.8.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.9.0/crd-csi-snapshot-ga.yaml b/deploy/v1.9.0/crd-csi-snapshot-ga.yaml deleted file mode 100644 index d6553e0c08..0000000000 --- a/deploy/v1.9.0/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,652 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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 occurrs 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: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: true - storage: false - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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"] - 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: true - storage: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.9.0/crd-csi-snapshot.yaml b/deploy/v1.9.0/crd-csi-snapshot.yaml deleted file mode 100644 index e812e99fcf..0000000000 --- a/deploy/v1.9.0/crd-csi-snapshot.yaml +++ /dev/null @@ -1,501 +0,0 @@ - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/deploy/v1.9.0/csi-azuredisk-controller.yaml b/deploy/v1.9.0/csi-azuredisk-controller.yaml deleted file mode 100644 index aed775bbcd..0000000000 --- a/deploy/v1.9.0/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,184 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-azuredisk-controller - template: - metadata: - labels: - app: csi-azuredisk-controller - spec: - hostNetwork: true - serviceAccountName: csi-azuredisk-controller-sa - nodeSelector: - kubernetes.io/os: linux # add "kubernetes.io/role: master" to run controller on master node - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - containers: - - name: csi-provisioner - image: mcr.microsoft.com/oss/kubernetes-csi/csi-provisioner:v2.2.2 - args: - - "--feature-gates=Topology=true" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads=40" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher - image: mcr.microsoft.com/oss/kubernetes-csi/csi-attacher:v3.3.0 - args: - - "-v=2" - - "-csi-address=$(ADDRESS)" - - "-timeout=600s" - - "-leader-election" - - "-worker-threads=500" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter - image: mcr.microsoft.com/oss/kubernetes-csi/csi-snapshotter:v3.0.3 - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "--v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer - image: mcr.microsoft.com/oss/kubernetes-csi/csi-resizer:v1.3.0 - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=false' - - "-timeout=60s" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.5.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29602 - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.9.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--metrics-address=0.0.0.0:29604" - - "--user-agent-suffix=OSS-kubectl" - - "--disable-avset-nodes=true" - - "--allow-empty-cloud-config=false" - ports: - - containerPort: 29602 - name: healthz - protocol: TCP - - containerPort: 29604 - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - resources: - limits: - cpu: 1 - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate diff --git a/deploy/v1.9.0/csi-azuredisk-driver.yaml b/deploy/v1.9.0/csi-azuredisk-driver.yaml deleted file mode 100644 index a6fcb90c50..0000000000 --- a/deploy/v1.9.0/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: disk.csi.azure.com - annotations: - csiDriver: v1.9.0 - snapshot: v3.0.3 -spec: - attachRequired: true - podInfoOnMount: false diff --git a/deploy/v1.9.0/csi-azuredisk-node-windows.yaml b/deploy/v1.9.0/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 43f451a2ca..0000000000 --- a/deploy/v1.9.0/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,194 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node-win - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node-win - template: - metadata: - labels: - app: csi-azuredisk-node-win - spec: - serviceAccountName: csi-azuredisk-node-sa - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - containers: - - name: liveness-probe - volumeMounts: - - mountPath: C:\csi - name: plugin-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.5.0 - args: - - "--csi-address=$(CSI_ENDPOINT)" - - "--probe-timeout=3s" - - "--health-port=29603" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - resources: - limits: - cpu: 1 - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.4.0 - args: - - "--v=2" - - "--csi-address=$(CSI_ENDPOINT)" - - "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)" - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 60 - timeoutSeconds: 30 - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: DRIVER_REG_SOCK_PATH - value: C:\\var\\lib\\kubelet\\plugins\\disk.csi.azure.com\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - volumeMounts: - - name: kubelet-dir - mountPath: "C:\\var\\lib\\kubelet" - - name: plugin-dir - mountPath: C:\csi - - name: registration-dir - mountPath: C:\registration - resources: - limits: - cpu: 1 - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.9.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--allow-empty-cloud-config=true" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - 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: - limits: - cpu: 1 - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - 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: C:\var\lib\kubelet\plugins_registry\ - type: Directory - - name: kubelet-dir - hostPath: - path: C:\var\lib\kubelet\ - type: Directory - - name: plugin-dir - hostPath: - path: C:\var\lib\kubelet\plugins\disk.csi.azure.com\ - type: DirectoryOrCreate - - name: azure-config - hostPath: - path: C:\k - type: DirectoryOrCreate diff --git a/deploy/v1.9.0/csi-azuredisk-node.yaml b/deploy/v1.9.0/csi-azuredisk-node.yaml deleted file mode 100644 index 0fbe737a91..0000000000 --- a/deploy/v1.9.0/csi-azuredisk-node.yaml +++ /dev/null @@ -1,174 +0,0 @@ ---- -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: csi-azuredisk-node - namespace: kube-system -spec: - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - type: RollingUpdate - selector: - matchLabels: - app: csi-azuredisk-node - template: - metadata: - labels: - app: csi-azuredisk-node - spec: - hostNetwork: true - dnsPolicy: Default - serviceAccountName: csi-azuredisk-node-sa - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - priorityClassName: system-node-critical - tolerations: - - operator: "Exists" - containers: - - name: liveness-probe - volumeMounts: - - mountPath: /csi - name: socket-dir - image: mcr.microsoft.com/oss/kubernetes-csi/livenessprobe:v2.5.0 - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port=29603 - - --v=2 - resources: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: node-driver-registrar - image: mcr.microsoft.com/oss/kubernetes-csi/csi-node-driver-registrar:v2.4.0 - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - livenessProbe: - exec: - command: - - /csi-node-driver-registrar - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: /var/lib/kubelet/plugins/disk.csi.azure.com/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: azuredisk - image: mcr.microsoft.com/k8s/csi/azuredisk-csi:v1.9.0 - imagePullPolicy: IfNotPresent - args: - - "--v=5" - - "--endpoint=$(CSI_ENDPOINT)" - - "--nodeid=$(KUBE_NODE_NAME)" - - "--metrics-address=0.0.0.0:29605" - - "--enable-perf-optimization=true" - - "--allow-empty-cloud-config=true" - ports: - - containerPort: 29603 - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /var/lib/kubelet/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - resources: - limits: - cpu: 1 - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - hostPath: - path: /var/lib/kubelet/plugins/disk.csi.azure.com - type: DirectoryOrCreate - name: socket-dir - - hostPath: - path: /var/lib/kubelet/ - type: DirectoryOrCreate - name: mountpoint-dir - - hostPath: - path: /var/lib/kubelet/plugins_registry/ - type: DirectoryOrCreate - name: registration-dir - - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate - name: azure-cred - - hostPath: - path: /dev - type: Directory - name: device-dir - - hostPath: - path: /sys/bus/scsi/devices - type: Directory - name: sys-devices-dir - - hostPath: - path: /sys/class/scsi_host/ - type: Directory - name: scsi-host-dir ---- diff --git a/deploy/v1.9.0/csi-snapshot-controller.yaml b/deploy/v1.9.0/csi-snapshot-controller.yaml deleted file mode 100644 index 9d3e387bb8..0000000000 --- a/deploy/v1.9.0/csi-snapshot-controller.yaml +++ /dev/null @@ -1,42 +0,0 @@ ---- -kind: Deployment -apiVersion: apps/v1 -metadata: - name: csi-snapshot-controller - namespace: kube-system -spec: - replicas: 2 - selector: - matchLabels: - app: csi-snapshot-controller - template: - metadata: - labels: - app: csi-snapshot-controller - spec: - serviceAccountName: csi-snapshot-controller-sa - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - containers: - - name: csi-snapshot-controller - image: mcr.microsoft.com/oss/kubernetes-csi/snapshot-controller:v3.0.3 - args: - - "--v=2" - - "--leader-election=true" - resources: - limits: - cpu: 1 - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi diff --git a/deploy/v1.9.0/rbac-csi-azuredisk-controller.yaml b/deploy/v1.9.0/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index b587f0365d..0000000000 --- a/deploy/v1.9.0/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-controller-sa - namespace: kube-system ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-provisioner-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "create", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-provisioner-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-provisioner-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-attacher-role -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", "list", "watch", "create", "update", "patch"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-attacher-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-attacher-role - apiGroup: rbac.authorization.k8s.io - ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-snapshotter-role -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-snapshotter-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-snapshotter-role - apiGroup: rbac.authorization.k8s.io ---- - -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-external-resizer-role -rules: - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch", "update", "patch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims/status"] - verbs: ["update", "patch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["list", "watch", "create", "update", "patch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["get", "list", "watch"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: azuredisk-csi-resizer-role -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: azuredisk-external-resizer-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-controller-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-controller-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.9.0/rbac-csi-azuredisk-node.yaml b/deploy/v1.9.0/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index eb15f013fc..0000000000 --- a/deploy/v1.9.0/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-azuredisk-node-sa - namespace: kube-system - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-role - namespace: kube-system -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-node-secret-binding -subjects: - - kind: ServiceAccount - name: csi-azuredisk-node-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-azuredisk-node-secret-role - apiGroup: rbac.authorization.k8s.io diff --git a/deploy/v1.9.0/rbac-csi-snapshot-controller.yaml b/deploy/v1.9.0/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index 4583e21896..0000000000 --- a/deploy/v1.9.0/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,75 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: csi-snapshot-controller-sa - namespace: kube-system - ---- -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -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"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-snapshot-controller-leaderelection-binding -subjects: - - kind: ServiceAccount - name: csi-snapshot-controller-sa - namespace: kube-system -roleRef: - kind: ClusterRole - name: csi-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io diff --git a/docs/install-csi-driver-v1.0.0.md b/docs/install-csi-driver-v1.0.0.md deleted file mode 100644 index b5549c713a..0000000000 --- a/docs/install-csi-driver-v1.0.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.0.0/deploy/install-driver.sh | bash -s v1.0.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.0.0/deploy/install-driver.sh | bash -s v1.0.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.0.0/deploy/uninstall-driver.sh | bash -s v1.0.0 -- -``` diff --git a/docs/install-csi-driver-v1.1.0.md b/docs/install-csi-driver-v1.1.0.md deleted file mode 100644 index 3f5626c653..0000000000 --- a/docs/install-csi-driver-v1.1.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.1.0/deploy/install-driver.sh | bash -s v1.1.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.1.0/deploy/install-driver.sh | bash -s v1.1.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.1.0/deploy/uninstall-driver.sh | bash -s v1.1.0 -- -``` diff --git a/docs/install-csi-driver-v1.1.1.md b/docs/install-csi-driver-v1.1.1.md deleted file mode 100644 index f33cb39625..0000000000 --- a/docs/install-csi-driver-v1.1.1.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.1.1/deploy/install-driver.sh | bash -s v1.1.1 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.1.1/deploy/install-driver.sh | bash -s v1.1.1 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.1.1/deploy/uninstall-driver.sh | bash -s v1.1.1 -- -``` diff --git a/docs/install-csi-driver-v1.2.0.md b/docs/install-csi-driver-v1.2.0.md deleted file mode 100644 index 69f6d81106..0000000000 --- a/docs/install-csi-driver-v1.2.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.2.0/deploy/install-driver.sh | bash -s v1.2.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.2.0/deploy/install-driver.sh | bash -s v1.2.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.2.0/deploy/uninstall-driver.sh | bash -s v1.2.0 -- -``` diff --git a/docs/install-csi-driver-v1.3.0.md b/docs/install-csi-driver-v1.3.0.md deleted file mode 100644 index 0bbfb56c76..0000000000 --- a/docs/install-csi-driver-v1.3.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.3.0/deploy/install-driver.sh | bash -s v1.3.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.3.0/deploy/install-driver.sh | bash -s v1.3.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.3.0/deploy/uninstall-driver.sh | bash -s v1.3.0 -- -``` diff --git a/docs/install-csi-driver-v1.4.0.md b/docs/install-csi-driver-v1.4.0.md deleted file mode 100644 index 37461a431f..0000000000 --- a/docs/install-csi-driver-v1.4.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.4.0/deploy/install-driver.sh | bash -s v1.4.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.4.0/deploy/install-driver.sh | bash -s v1.4.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.4.0/deploy/uninstall-driver.sh | bash -s v1.4.0 -- -``` diff --git a/docs/install-csi-driver-v1.5.0.md b/docs/install-csi-driver-v1.5.0.md deleted file mode 100644 index ea450c9260..0000000000 --- a/docs/install-csi-driver-v1.5.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.5.0/deploy/install-driver.sh | bash -s v1.5.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.5.0/deploy/install-driver.sh | bash -s v1.5.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.5.0/deploy/uninstall-driver.sh | bash -s v1.5.0 -- -``` diff --git a/docs/install-csi-driver-v1.5.1.md b/docs/install-csi-driver-v1.5.1.md deleted file mode 100644 index 6f585f0369..0000000000 --- a/docs/install-csi-driver-v1.5.1.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.5.1/deploy/install-driver.sh | bash -s v1.5.1 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.5.1/deploy/install-driver.sh | bash -s v1.5.1 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.5.1/deploy/uninstall-driver.sh | bash -s v1.5.1 -- -``` diff --git a/docs/install-csi-driver-v1.6.0.md b/docs/install-csi-driver-v1.6.0.md deleted file mode 100644 index 1da85487dc..0000000000 --- a/docs/install-csi-driver-v1.6.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.6.0/deploy/install-driver.sh | bash -s v1.6.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.6.0/deploy/install-driver.sh | bash -s v1.6.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.6.0/deploy/uninstall-driver.sh | bash -s v1.6.0 -- -``` diff --git a/docs/install-csi-driver-v1.7.0.md b/docs/install-csi-driver-v1.7.0.md deleted file mode 100644 index ead14785c6..0000000000 --- a/docs/install-csi-driver-v1.7.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.7.0/deploy/install-driver.sh | bash -s v1.7.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.7.0/deploy/install-driver.sh | bash -s v1.7.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.7.0/deploy/uninstall-driver.sh | bash -s v1.7.0 -- -``` diff --git a/docs/install-csi-driver-v1.8.0.md b/docs/install-csi-driver-v1.8.0.md deleted file mode 100644 index b2a0681318..0000000000 --- a/docs/install-csi-driver-v1.8.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.8.0/deploy/install-driver.sh | bash -s v1.8.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.8.0/deploy/install-driver.sh | bash -s v1.8.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.8.0/deploy/uninstall-driver.sh | bash -s v1.8.0 -- -``` diff --git a/docs/install-csi-driver-v1.9.0.md b/docs/install-csi-driver-v1.9.0.md deleted file mode 100644 index b9b690c71f..0000000000 --- a/docs/install-csi-driver-v1.9.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## Install CSI driver development version on a Kubernetes cluster - -### Install by kubectl -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.9.0/deploy/install-driver.sh | bash -s v1.9.0 -- -``` - - - Enable snapshot support -> Note: only available from v1.17.0 -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.9.0/deploy/install-driver.sh | bash -s v1.9.0 snapshot -- -``` - -### 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 - -```console -curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/v1.9.0/deploy/uninstall-driver.sh | bash -s v1.9.0 -- -``` From 8cacd61a028caaf1703963146981324c85211d56 Mon Sep 17 00:00:00 2001 From: andyzhangx Date: Fri, 12 Apr 2024 10:49:36 +0000 Subject: [PATCH 3/3] cleanup: remove obselete v2 charts --- charts/index.yaml | 121 +--- .../azuredisk-csi-driver-v2.0.0-alpha.1.tgz | Bin 20418 -> 0 bytes .../azuredisk-csi-driver/Chart.yaml | 5 - .../side-by-side-values.yaml | 39 -- .../azuredisk-csi-driver/templates/NOTES.txt | 11 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot-ga.yaml | 655 ----------------- .../templates/crd-csi-snapshot.yaml | 504 ------------- .../csi-azuredisk-controller-cleanup.yaml | 54 -- .../csi-azuredisk-controller-monitor.yaml | 21 - .../csi-azuredisk-controller-service.yaml | 18 - .../templates/csi-azuredisk-controller.yaml | 263 ------- .../templates/csi-azuredisk-driver.yaml | 18 - .../templates/csi-azuredisk-node-windows.yaml | 222 ------ .../templates/csi-azuredisk-node.yaml | 231 ------ ...-azuredisk-scheduler-extender-monitor.yaml | 21 - ...-azuredisk-scheduler-extender-service.yaml | 18 - .../csi-azuredisk-scheduler-extender.yaml | 123 ---- .../csi-azuredisk-storage-class.yaml | 143 ---- .../templates/csi-snapshot-controller.yaml | 60 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 171 ----- .../disk.csi.azure.com_azvolumes.yaml | 263 ------- .../templates/namespace-azure-disk-csi.yaml | 11 - .../rbac-csi-azuredisk-controller.yaml | 219 ------ .../templates/rbac-csi-azuredisk-node.yaml | 38 - ...rbac-csi-azuredisk-scheduler-extender.yaml | 84 --- .../rbac-csi-snapshot-controller.yaml | 73 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...ount-csi-azuredisk-scheduler-extender.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 8 - .../azuredisk-csi-driver/values.yaml | 187 ----- .../azuredisk-csi-driver-v2.0.0-beta.1.tgz | Bin 17368 -> 0 bytes .../azuredisk-csi-driver/Chart.yaml | 5 - .../side-by-side-values.yaml | 81 --- .../azuredisk-csi-driver/templates/NOTES.txt | 11 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot.yaml | 661 ------------------ .../csi-azuredisk-controller-cleanup.yaml | 41 -- .../csi-azuredisk-controller-monitor.yaml | 21 - .../csi-azuredisk-controller-service.yaml | 18 - .../templates/csi-azuredisk-controller.yaml | 221 ------ .../templates/csi-azuredisk-driver.yaml | 13 - .../templates/csi-azuredisk-node-windows.yaml | 202 ------ .../templates/csi-azuredisk-node.yaml | 211 ------ ...-azuredisk-scheduler-extender-monitor.yaml | 21 - ...-azuredisk-scheduler-extender-service.yaml | 18 - .../csi-azuredisk-scheduler-extender.yaml | 123 ---- .../csi-azuredisk-storage-class.yaml | 143 ---- .../templates/csi-snapshot-controller.yaml | 46 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 148 ---- .../disk.csi.azure.com_azvolumes.yaml | 229 ------ .../templates/namespace-azure-disk-csi.yaml | 11 - .../rbac-csi-azuredisk-controller.yaml | 219 ------ .../templates/rbac-csi-azuredisk-node.yaml | 44 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 88 --- .../rbac-csi-snapshot-controller.yaml | 76 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...ount-csi-azuredisk-scheduler-extender.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 8 - .../azuredisk-csi-driver/values.yaml | 276 -------- .../azuredisk-csi-driver-v2.0.0-beta.2.tgz | Bin 17368 -> 0 bytes .../azuredisk-csi-driver/Chart.yaml | 5 - .../side-by-side-values.yaml | 81 --- .../azuredisk-csi-driver/templates/NOTES.txt | 11 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot.yaml | 661 ------------------ .../csi-azuredisk-controller-cleanup.yaml | 41 -- .../csi-azuredisk-controller-monitor.yaml | 21 - .../csi-azuredisk-controller-service.yaml | 18 - .../templates/csi-azuredisk-controller.yaml | 221 ------ .../templates/csi-azuredisk-driver.yaml | 13 - .../templates/csi-azuredisk-node-windows.yaml | 202 ------ .../templates/csi-azuredisk-node.yaml | 211 ------ ...-azuredisk-scheduler-extender-monitor.yaml | 21 - ...-azuredisk-scheduler-extender-service.yaml | 18 - .../csi-azuredisk-scheduler-extender.yaml | 123 ---- .../csi-azuredisk-storage-class.yaml | 143 ---- .../templates/csi-snapshot-controller.yaml | 46 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 148 ---- .../disk.csi.azure.com_azvolumes.yaml | 229 ------ .../templates/namespace-azure-disk-csi.yaml | 11 - .../rbac-csi-azuredisk-controller.yaml | 219 ------ .../templates/rbac-csi-azuredisk-node.yaml | 44 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 88 --- .../rbac-csi-snapshot-controller.yaml | 76 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...ount-csi-azuredisk-scheduler-extender.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 8 - .../azuredisk-csi-driver/values.yaml | 276 -------- .../azuredisk-csi-driver-v2.0.0-beta.3.tgz | Bin 17368 -> 0 bytes .../azuredisk-csi-driver/Chart.yaml | 5 - .../side-by-side-values.yaml | 81 --- .../azuredisk-csi-driver/templates/NOTES.txt | 11 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot.yaml | 661 ------------------ .../csi-azuredisk-controller-cleanup.yaml | 41 -- .../csi-azuredisk-controller-monitor.yaml | 21 - .../csi-azuredisk-controller-service.yaml | 18 - .../templates/csi-azuredisk-controller.yaml | 221 ------ .../templates/csi-azuredisk-driver.yaml | 13 - .../templates/csi-azuredisk-node-windows.yaml | 202 ------ .../templates/csi-azuredisk-node.yaml | 211 ------ ...-azuredisk-scheduler-extender-monitor.yaml | 21 - ...-azuredisk-scheduler-extender-service.yaml | 18 - .../csi-azuredisk-scheduler-extender.yaml | 123 ---- .../csi-azuredisk-storage-class.yaml | 143 ---- .../templates/csi-snapshot-controller.yaml | 46 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 148 ---- .../disk.csi.azure.com_azvolumes.yaml | 229 ------ .../templates/namespace-azure-disk-csi.yaml | 11 - .../rbac-csi-azuredisk-controller.yaml | 219 ------ .../templates/rbac-csi-azuredisk-node.yaml | 44 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 88 --- .../rbac-csi-snapshot-controller.yaml | 76 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...ount-csi-azuredisk-scheduler-extender.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 8 - .../azuredisk-csi-driver/values.yaml | 276 -------- .../azuredisk-csi-driver-v2.0.0-beta.4.tgz | Bin 19124 -> 0 bytes .../azuredisk-csi-driver/Chart.yaml | 5 - .../side-by-side-values.yaml | 81 --- .../azuredisk-csi-driver/templates/NOTES.txt | 11 - .../templates/_helpers.tpl | 26 - .../templates/crd-csi-snapshot.yaml | 661 ------------------ .../csi-azuredisk-controller-cleanup.yaml | 41 -- .../csi-azuredisk-controller-monitor.yaml | 21 - .../csi-azuredisk-controller-service.yaml | 18 - .../templates/csi-azuredisk-controller.yaml | 237 ------- .../templates/csi-azuredisk-driver.yaml | 13 - ...si-azuredisk-node-windows-hostprocess.yaml | 213 ------ .../templates/csi-azuredisk-node-windows.yaml | 212 ------ .../templates/csi-azuredisk-node.yaml | 221 ------ ...-azuredisk-scheduler-extender-monitor.yaml | 21 - ...-azuredisk-scheduler-extender-service.yaml | 18 - .../csi-azuredisk-scheduler-extender.yaml | 129 ---- .../csi-azuredisk-storage-class.yaml | 143 ---- .../templates/csi-snapshot-controller.yaml | 47 -- .../disk.csi.azure.com_azdrivernodes.yaml | 250 ------- ...isk.csi.azure.com_azvolumeattachments.yaml | 275 -------- .../disk.csi.azure.com_azvolumes.yaml | 436 ------------ .../templates/namespace-azure-disk-csi.yaml | 11 - .../rbac-csi-azuredisk-controller.yaml | 225 ------ .../templates/rbac-csi-azuredisk-node.yaml | 44 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 88 --- .../rbac-csi-snapshot-controller.yaml | 76 -- ...rviceaccount-csi-azuredisk-controller.yaml | 8 - .../serviceaccount-csi-azuredisk-node.yaml | 8 - ...ount-csi-azuredisk-scheduler-extender.yaml | 8 - ...erviceaccount-csi-snapshot-controller.yaml | 8 - .../azuredisk-csi-driver/values.yaml | 301 -------- deploy/v2.0.0-alpha.1/crd-csi-snapshot.yaml | 501 ------------- .../csi-azuredisk-controller.yaml | 185 ----- .../v2.0.0-alpha.1/csi-azuredisk-driver.yaml | 11 - .../csi-azuredisk-node-windows.yaml | 198 ------ deploy/v2.0.0-alpha.1/csi-azuredisk-node.yaml | 177 ----- .../csi-azuredisk-scheduler-extender.yaml | 95 --- .../csi-snapshot-controller.yaml | 42 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 171 ----- .../disk.csi.azure.com_azvolumes.yaml | 263 ------- .../namespace-azure-disk-csi.yaml | 10 - .../rbac-csi-azuredisk-controller.yaml | 206 ------ .../rbac-csi-azuredisk-node.yaml | 39 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 79 --- .../rbac-csi-snapshot-controller.yaml | 75 -- deploy/v2.0.0-beta.1/crd-csi-snapshot.yaml | 659 ----------------- .../csi-azuredisk-controller.yaml | 181 ----- .../v2.0.0-beta.1/csi-azuredisk-driver.yaml | 12 - .../csi-azuredisk-node-windows.yaml | 192 ----- deploy/v2.0.0-beta.1/csi-azuredisk-node.yaml | 172 ----- .../csi-azuredisk-scheduler-extender.yaml | 95 --- .../csi-snapshot-controller.yaml | 41 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 148 ---- .../disk.csi.azure.com_azvolumes.yaml | 229 ------ .../namespace-azure-disk-csi.yaml | 10 - .../rbac-csi-azuredisk-controller.yaml | 206 ------ .../rbac-csi-azuredisk-node.yaml | 45 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 89 --- .../rbac-csi-snapshot-controller.yaml | 78 --- deploy/v2.0.0-beta.2/crd-csi-snapshot.yaml | 659 ----------------- .../csi-azuredisk-controller.yaml | 181 ----- .../v2.0.0-beta.2/csi-azuredisk-driver.yaml | 12 - .../csi-azuredisk-node-windows.yaml | 192 ----- deploy/v2.0.0-beta.2/csi-azuredisk-node.yaml | 172 ----- .../csi-azuredisk-scheduler-extender.yaml | 95 --- .../csi-snapshot-controller.yaml | 41 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 148 ---- .../disk.csi.azure.com_azvolumes.yaml | 229 ------ .../namespace-azure-disk-csi.yaml | 10 - .../rbac-csi-azuredisk-controller.yaml | 206 ------ .../rbac-csi-azuredisk-node.yaml | 45 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 89 --- .../rbac-csi-snapshot-controller.yaml | 78 --- deploy/v2.0.0-beta.3/crd-csi-snapshot.yaml | 659 ----------------- .../csi-azuredisk-controller.yaml | 181 ----- .../v2.0.0-beta.3/csi-azuredisk-driver.yaml | 12 - .../csi-azuredisk-node-windows.yaml | 192 ----- deploy/v2.0.0-beta.3/csi-azuredisk-node.yaml | 172 ----- .../csi-azuredisk-scheduler-extender.yaml | 95 --- .../csi-snapshot-controller.yaml | 41 -- .../disk.csi.azure.com_azdrivernodes.yaml | 139 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 148 ---- .../disk.csi.azure.com_azvolumes.yaml | 229 ------ .../namespace-azure-disk-csi.yaml | 10 - .../rbac-csi-azuredisk-controller.yaml | 206 ------ .../rbac-csi-azuredisk-node.yaml | 45 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 89 --- .../rbac-csi-snapshot-controller.yaml | 78 --- deploy/v2.0.0-beta.4/crd-csi-snapshot.yaml | 659 ----------------- .../csi-azuredisk-controller.yaml | 188 ----- .../v2.0.0-beta.4/csi-azuredisk-driver.yaml | 12 - ...si-azuredisk-node-windows-hostprocess.yaml | 132 ---- .../csi-azuredisk-node-windows.yaml | 193 ----- deploy/v2.0.0-beta.4/csi-azuredisk-node.yaml | 173 ----- .../csi-azuredisk-scheduler-extender.yaml | 95 --- .../csi-snapshot-controller.yaml | 42 -- .../disk.csi.azure.com_azdrivernodes.yaml | 132 ---- ...isk.csi.azure.com_azvolumeattachments.yaml | 148 ---- .../disk.csi.azure.com_azvolumes.yaml | 228 ------ .../namespace-azure-disk-csi.yaml | 10 - .../rbac-csi-azuredisk-controller.yaml | 212 ------ .../rbac-csi-azuredisk-node.yaml | 45 -- ...rbac-csi-azuredisk-scheduler-extender.yaml | 89 --- .../rbac-csi-snapshot-controller.yaml | 78 --- 234 files changed, 38 insertions(+), 28475 deletions(-) delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver-v2.0.0-alpha.1.tgz delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/side-by-side-values.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-alpha.1/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver-v2.0.0-beta.1.tgz delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/side-by-side-values.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.1/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver-v2.0.0-beta.2.tgz delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/side-by-side-values.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.2/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver-v2.0.0-beta.3.tgz delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/side-by-side-values.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.3/azuredisk-csi-driver/values.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver-v2.0.0-beta.4.tgz delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/Chart.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/side-by-side-values.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/NOTES.txt delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/_helpers.tpl delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-node-windows-hostprocess.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml delete mode 100644 charts/v2.0.0-beta.4/azuredisk-csi-driver/values.yaml delete mode 100644 deploy/v2.0.0-alpha.1/crd-csi-snapshot.yaml delete mode 100644 deploy/v2.0.0-alpha.1/csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-alpha.1/csi-azuredisk-driver.yaml delete mode 100644 deploy/v2.0.0-alpha.1/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v2.0.0-alpha.1/csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-alpha.1/csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-alpha.1/csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-alpha.1/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 deploy/v2.0.0-alpha.1/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 deploy/v2.0.0-alpha.1/disk.csi.azure.com_azvolumes.yaml delete mode 100644 deploy/v2.0.0-alpha.1/namespace-azure-disk-csi.yaml delete mode 100644 deploy/v2.0.0-alpha.1/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-alpha.1/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-alpha.1/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-alpha.1/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.1/crd-csi-snapshot.yaml delete mode 100644 deploy/v2.0.0-beta.1/csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.1/csi-azuredisk-driver.yaml delete mode 100644 deploy/v2.0.0-beta.1/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v2.0.0-beta.1/csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.1/csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.1/csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.1/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 deploy/v2.0.0-beta.1/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 deploy/v2.0.0-beta.1/disk.csi.azure.com_azvolumes.yaml delete mode 100644 deploy/v2.0.0-beta.1/namespace-azure-disk-csi.yaml delete mode 100644 deploy/v2.0.0-beta.1/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.1/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.1/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.1/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.2/crd-csi-snapshot.yaml delete mode 100644 deploy/v2.0.0-beta.2/csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.2/csi-azuredisk-driver.yaml delete mode 100644 deploy/v2.0.0-beta.2/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v2.0.0-beta.2/csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.2/csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.2/csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.2/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 deploy/v2.0.0-beta.2/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 deploy/v2.0.0-beta.2/disk.csi.azure.com_azvolumes.yaml delete mode 100644 deploy/v2.0.0-beta.2/namespace-azure-disk-csi.yaml delete mode 100644 deploy/v2.0.0-beta.2/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.2/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.2/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.2/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.3/crd-csi-snapshot.yaml delete mode 100644 deploy/v2.0.0-beta.3/csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.3/csi-azuredisk-driver.yaml delete mode 100644 deploy/v2.0.0-beta.3/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v2.0.0-beta.3/csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.3/csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.3/csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.3/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 deploy/v2.0.0-beta.3/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 deploy/v2.0.0-beta.3/disk.csi.azure.com_azvolumes.yaml delete mode 100644 deploy/v2.0.0-beta.3/namespace-azure-disk-csi.yaml delete mode 100644 deploy/v2.0.0-beta.3/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.3/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.3/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.3/rbac-csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.4/crd-csi-snapshot.yaml delete mode 100644 deploy/v2.0.0-beta.4/csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.4/csi-azuredisk-driver.yaml delete mode 100644 deploy/v2.0.0-beta.4/csi-azuredisk-node-windows-hostprocess.yaml delete mode 100644 deploy/v2.0.0-beta.4/csi-azuredisk-node-windows.yaml delete mode 100644 deploy/v2.0.0-beta.4/csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.4/csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.4/csi-snapshot-controller.yaml delete mode 100644 deploy/v2.0.0-beta.4/disk.csi.azure.com_azdrivernodes.yaml delete mode 100644 deploy/v2.0.0-beta.4/disk.csi.azure.com_azvolumeattachments.yaml delete mode 100644 deploy/v2.0.0-beta.4/disk.csi.azure.com_azvolumes.yaml delete mode 100644 deploy/v2.0.0-beta.4/namespace-azure-disk-csi.yaml delete mode 100644 deploy/v2.0.0-beta.4/rbac-csi-azuredisk-controller.yaml delete mode 100644 deploy/v2.0.0-beta.4/rbac-csi-azuredisk-node.yaml delete mode 100644 deploy/v2.0.0-beta.4/rbac-csi-azuredisk-scheduler-extender.yaml delete mode 100644 deploy/v2.0.0-beta.4/rbac-csi-snapshot-controller.yaml diff --git a/charts/index.yaml b/charts/index.yaml index 2b2d92878e..98a598c2a9 100644 --- a/charts/index.yaml +++ b/charts/index.yaml @@ -3,7 +3,7 @@ entries: azuredisk-csi-driver: - apiVersion: v1 appVersion: latest-v2 - created: "2024-04-12T09:11:55.317130256Z" + created: "2024-04-12T10:49:30.571493738Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: b261d370dfb8bde4d15d6285d57c87369d9c66d12b92c8c6ad2b85495365759a name: azuredisk-csi-driver @@ -12,7 +12,7 @@ entries: version: v2.0.0-beta.7 - apiVersion: v1 appVersion: v2.0.0-beta.6 - created: "2024-04-12T09:11:55.367083085Z" + created: "2024-04-12T10:49:30.615991836Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 0e7280d2bcd752668c4439078ffdfc4567ac97af97d8baa07c322b99c34fb741 name: azuredisk-csi-driver @@ -21,61 +21,16 @@ entries: version: v2.0.0-beta.6 - apiVersion: v1 appVersion: v2.0.0-beta.5 - created: "2024-04-12T09:11:55.365402791Z" + created: "2024-04-12T10:49:30.614182541Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 10189dd78863d24c9572c468e0d81b8781f83625118e6b205ee65e157aab0602 name: azuredisk-csi-driver urls: - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-beta.5/azuredisk-csi-driver-v2.0.0-beta.5.tgz version: v2.0.0-beta.5 - - apiVersion: v1 - appVersion: v2.0.0-beta.4 - created: "2024-04-12T09:11:55.364034504Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: b38901738bb600ff55cc91e1efb45c84a3a601bb815908a348df793960cd7122 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-beta.4/azuredisk-csi-driver-v2.0.0-beta.4.tgz - version: v2.0.0-beta.4 - - apiVersion: v1 - appVersion: v2.0.0-beta.3 - created: "2024-04-12T09:11:55.362620772Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: ddfe774c7b2326ff61c71a7e6fbfe687e97f06b6a8cc5e87c0b50ac0f320c7fe - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-beta.3/azuredisk-csi-driver-v2.0.0-beta.3.tgz - version: v2.0.0-beta.3 - - apiVersion: v1 - appVersion: v2.0.0-beta.2 - created: "2024-04-12T09:11:55.360461048Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: 7c1b8159465e7642b7460ec8e4e2a2965be11e8abb8310d86d9487676adb6adc - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-beta.2/azuredisk-csi-driver-v2.0.0-beta.2.tgz - version: v2.0.0-beta.2 - - apiVersion: v1 - appVersion: v2.0.0-beta.1 - created: "2024-04-12T09:11:55.359197488Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: f327e1205e7197cf87693012848e2fd76a213c7852ac57a50753ba9e41207612 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-beta.1/azuredisk-csi-driver-v2.0.0-beta.1.tgz - version: v2.0.0-beta.1 - - apiVersion: v1 - appVersion: v2.0.0-alpha.1 - created: "2024-04-12T09:11:55.357904063Z" - description: Azure disk Container Storage Interface (CSI) Storage Plugin - digest: a00216ca8bdd4550f01071c0a57e7cf49f20b4915164ec6c785d2b5e51893870 - name: azuredisk-csi-driver - urls: - - https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts/v2.0.0-alpha.1/azuredisk-csi-driver-v2.0.0-alpha.1.tgz - version: v2.0.0-alpha.1 - apiVersion: v1 appVersion: v1.30.1 - created: "2024-04-12T09:11:55.356736293Z" + created: "2024-04-12T10:49:30.611823443Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e4464d1307aa8ad436b52f8647bb0ef74de214c2481515d1bcd3f2b6618de19f name: azuredisk-csi-driver @@ -84,7 +39,7 @@ entries: version: v1.30.1 - apiVersion: v1 appVersion: v1.30.0 - created: "2024-04-12T09:11:55.354961038Z" + created: "2024-04-12T10:49:30.610603146Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e76dc3ae89d3040cf078ca3232577d29e100813670ca5138a297bc3b2e1c5514 name: azuredisk-csi-driver @@ -93,7 +48,7 @@ entries: version: v1.30.0 - apiVersion: v1 appVersion: v1.29.5 - created: "2024-04-12T09:11:55.35366935Z" + created: "2024-04-12T10:49:30.609446034Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: c5317e28237707ec9d04fcd6c074edf7abfa625ba82dd34ecca8d1edd8030713 name: azuredisk-csi-driver @@ -102,7 +57,7 @@ entries: version: v1.29.5 - apiVersion: v1 appVersion: v1.29.2 - created: "2024-04-12T09:11:55.352516412Z" + created: "2024-04-12T10:49:30.608247434Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: ae0c15b875bb0bd2a4c1135437f0abfee6bf3591abcc502604317b3fe46015ff name: azuredisk-csi-driver @@ -111,7 +66,7 @@ entries: version: v1.29.2 - apiVersion: v1 appVersion: v1.29.1 - created: "2024-04-12T09:11:55.351359732Z" + created: "2024-04-12T10:49:30.606188266Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 441c64c6487a89efda91f22aa40358b6f9d31c73e2f131cfc10dcddd628af54f name: azuredisk-csi-driver @@ -120,7 +75,7 @@ entries: version: v1.29.1 - apiVersion: v1 appVersion: v1.29.0 - created: "2024-04-12T09:11:55.350143805Z" + created: "2024-04-12T10:49:30.605014247Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 611857811af7ac3304f7cae847be4f35bad6735482700d5b2c970dfbb53f9a3b name: azuredisk-csi-driver @@ -129,7 +84,7 @@ entries: version: v1.29.0 - apiVersion: v1 appVersion: v1.28.7 - created: "2024-04-12T09:11:55.348204572Z" + created: "2024-04-12T10:49:30.603853764Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: eadfc2ab5a34ea8c3211e61aedccd81a3d10f3def68e2659328139bf12b083c6 name: azuredisk-csi-driver @@ -138,7 +93,7 @@ entries: version: v1.28.7 - apiVersion: v1 appVersion: v1.28.5 - created: "2024-04-12T09:11:55.347080755Z" + created: "2024-04-12T10:49:30.602704803Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 1c8d6bb8882ddc62b699f877734f637291f755436474b4daeb80b395a9d5cdf1 name: azuredisk-csi-driver @@ -147,7 +102,7 @@ entries: version: v1.28.5 - apiVersion: v1 appVersion: v1.28.4 - created: "2024-04-12T09:11:55.345955312Z" + created: "2024-04-12T10:49:30.601569641Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f1b8fa60b0769577c563e33d475544577b37bb2430d027bfe92b91ad8588744d name: azuredisk-csi-driver @@ -156,7 +111,7 @@ entries: version: v1.28.4 - apiVersion: v1 appVersion: v1.28.3 - created: "2024-04-12T09:11:55.344818314Z" + created: "2024-04-12T10:49:30.599695549Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12fe80d19091cc4bc0025585da35d12bcab9cbc2f3e4cfd90eb4368e6967931a name: azuredisk-csi-driver @@ -165,7 +120,7 @@ entries: version: v1.28.3 - apiVersion: v1 appVersion: v1.28.2 - created: "2024-04-12T09:11:55.343690976Z" + created: "2024-04-12T10:49:30.598520675Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 044dc6ffb662914020a3a835f994455a3301a4b2b665c9d4b9496b422a93c8b1 name: azuredisk-csi-driver @@ -174,7 +129,7 @@ entries: version: v1.28.2 - apiVersion: v1 appVersion: v1.27.1 - created: "2024-04-12T09:11:55.341734507Z" + created: "2024-04-12T10:49:30.597362831Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 805d2f7437e7442739c18791e3eaf839d75bc9f3c1a10710e6cc6cb7ee06cbc4 name: azuredisk-csi-driver @@ -183,7 +138,7 @@ entries: version: v1.27.1 - apiVersion: v1 appVersion: v1.26.8 - created: "2024-04-12T09:11:55.340641911Z" + created: "2024-04-12T10:49:30.596286621Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3920ea0e2c358bc659b4bc243ad35420959d59c7532ebcf775de6c819ff0aca6 name: azuredisk-csi-driver @@ -192,7 +147,7 @@ entries: version: v1.26.8 - apiVersion: v1 appVersion: v1.26.7 - created: "2024-04-12T09:11:55.339605781Z" + created: "2024-04-12T10:49:30.595216203Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8796e69d622aaef119bf87047d1d7ed699e88119d48655590813ec5a38a3ccab name: azuredisk-csi-driver @@ -201,7 +156,7 @@ entries: version: v1.26.7 - apiVersion: v1 appVersion: v1.26.6 - created: "2024-04-12T09:11:55.338540412Z" + created: "2024-04-12T10:49:30.59342617Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 277051eba7872783d34d9b8ba7bd606f3161afe571523eaabfa8b400491010c9 name: azuredisk-csi-driver @@ -210,7 +165,7 @@ entries: version: v1.26.6 - apiVersion: v1 appVersion: v1.25.0 - created: "2024-04-12T09:11:55.337483533Z" + created: "2024-04-12T10:49:30.592361313Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: cc1a78eb68d741382945252fdc86dc38fc903bcc7448eef5753a1e663e4e6e3c name: azuredisk-csi-driver @@ -219,7 +174,7 @@ entries: version: v1.25.0 - apiVersion: v1 appVersion: v1.24.0 - created: "2024-04-12T09:11:55.336427348Z" + created: "2024-04-12T10:49:30.591272957Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8f4a2048cd3d8ef128e533c43c5b68464989e28949658010599d466b2ccb1b58 name: azuredisk-csi-driver @@ -228,7 +183,7 @@ entries: version: v1.24.0 - apiVersion: v1 appVersion: v1.23.0 - created: "2024-04-12T09:11:55.334863973Z" + created: "2024-04-12T10:49:30.590191612Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 4347271a297c6c95e10c4a880a08453c22839c95ad7db232d2d8fc38e926b385 name: azuredisk-csi-driver @@ -237,7 +192,7 @@ entries: version: v1.23.0 - apiVersion: v1 appVersion: v1.22.0 - created: "2024-04-12T09:11:55.333159507Z" + created: "2024-04-12T10:49:30.588999193Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: fc7adc9ddb406356bee117d3ba5c360408b4ee9a7decc30d34fe310d0cdd6aef name: azuredisk-csi-driver @@ -246,7 +201,7 @@ entries: version: v1.22.0 - apiVersion: v1 appVersion: v1.21.0 - created: "2024-04-12T09:11:55.33215342Z" + created: "2024-04-12T10:49:30.586900476Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 50a5c0860aa631c7e83affbaeac1a84c43c96b19175e1dd1c21cba472564798d name: azuredisk-csi-driver @@ -255,7 +210,7 @@ entries: version: v1.21.0 - apiVersion: v1 appVersion: v1.20.0 - created: "2024-04-12T09:11:55.331140767Z" + created: "2024-04-12T10:49:30.5858806Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 9f2a936be5efc45002c12d5bbbd8cb453e51a0c1668f6ceae51df656ac190c95 name: azuredisk-csi-driver @@ -264,7 +219,7 @@ entries: version: v1.20.0 - apiVersion: v1 appVersion: v1.19.0 - created: "2024-04-12T09:11:55.330116233Z" + created: "2024-04-12T10:49:30.584853571Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 6c044a33b4adf598b9810e8839f04a16b1214470eceeb61bbe48076552955296 name: azuredisk-csi-driver @@ -273,7 +228,7 @@ entries: version: v1.19.0 - apiVersion: v1 appVersion: v1.18.0 - created: "2024-04-12T09:11:55.329121344Z" + created: "2024-04-12T10:49:30.583850598Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 79474616c7373ed65bbf75050748fda16ae2f6b290d240813006abd74e733628 name: azuredisk-csi-driver @@ -282,7 +237,7 @@ entries: version: v1.18.0 - apiVersion: v1 appVersion: v1.17.0 - created: "2024-04-12T09:11:55.32807605Z" + created: "2024-04-12T10:49:30.582726252Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dcaad8438f57941c19f2269d9d4510591529f4de00353d12506fd277dc06378e name: azuredisk-csi-driver @@ -291,7 +246,7 @@ entries: version: v1.17.0 - apiVersion: v1 appVersion: v1.16.0 - created: "2024-04-12T09:11:55.326160797Z" + created: "2024-04-12T10:49:30.580727304Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 95108dce3a4da8aad2729ff8bc1587906b917925e6fe2e5935b5d25805080fb4 name: azuredisk-csi-driver @@ -300,7 +255,7 @@ entries: version: v1.16.0 - apiVersion: v1 appVersion: v1.15.0 - created: "2024-04-12T09:11:55.325170953Z" + created: "2024-04-12T10:49:30.579711867Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3da85b9206af81dc4217a3304bf14839158112300de7dbb95841e30daaf5e4e5 name: azuredisk-csi-driver @@ -309,7 +264,7 @@ entries: version: v1.15.0 - apiVersion: v1 appVersion: v1.14.0 - created: "2024-04-12T09:11:55.324184244Z" + created: "2024-04-12T10:49:30.578693031Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 89e87dead7767f8abd56096e436956b23a666802040f7aad91d5b6c36af8b098 name: azuredisk-csi-driver @@ -318,7 +273,7 @@ entries: version: v1.14.0 - apiVersion: v1 appVersion: v1.13.0 - created: "2024-04-12T09:11:55.323201322Z" + created: "2024-04-12T10:49:30.577710976Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: c109533218e0625e9ca33c2db5e73c4b550b88943f7950b33e02a344a8ff9f8c name: azuredisk-csi-driver @@ -327,7 +282,7 @@ entries: version: v1.13.0 - apiVersion: v1 appVersion: v1.12.0 - created: "2024-04-12T09:11:55.322228355Z" + created: "2024-04-12T10:49:30.576753595Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: e41f089e5216fc9263039310990d1e41bcb468a85879289af1834dea0c457aaa name: azuredisk-csi-driver @@ -336,7 +291,7 @@ entries: version: v1.12.0 - apiVersion: v1 appVersion: v1.11.0 - created: "2024-04-12T09:11:55.321177439Z" + created: "2024-04-12T10:49:30.575768155Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: f35447c256488b1942342e9fcf8b6bed5f47b4ae5fb0fdae037110c5926803fe name: azuredisk-csi-driver @@ -345,7 +300,7 @@ entries: version: v1.11.0 - apiVersion: v1 appVersion: v1.10.0 - created: "2024-04-12T09:11:55.319282251Z" + created: "2024-04-12T10:49:30.573698517Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 12bd0e1f20a2e2adcb04b6954423438d9ece7a2ad0fb4b4fe2969844d14cfb86 name: azuredisk-csi-driver @@ -354,7 +309,7 @@ entries: version: v1.10.0 - apiVersion: v1 appVersion: v1.1.1 - created: "2024-04-12T09:11:55.318208917Z" + created: "2024-04-12T10:49:30.572544642Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: dd7066be8f499f6c1a396ab27c0013c09f5a8d8319cc04fbdd480d31107bb851 name: azuredisk-csi-driver @@ -363,7 +318,7 @@ entries: version: v1.1.1 - apiVersion: v1 appVersion: v1.1.0 - created: "2024-04-12T09:11:55.317675947Z" + created: "2024-04-12T10:49:30.572030863Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 3d2a5189416dd6a43bd3e2097bbe23a8db347b6e1a36c6a43fd59cc9c9633ff3 name: azuredisk-csi-driver @@ -372,11 +327,11 @@ entries: version: v1.1.0 - apiVersion: v1 appVersion: latest - created: "2024-04-12T09:11:55.315372989Z" + created: "2024-04-12T10:49:30.569611833Z" description: Azure disk Container Storage Interface (CSI) Storage Plugin digest: 8afb7830b99968736e7734c312207f265a7deb5829f4189d5f343d63fe00bd6d 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-04-12T09:11:55.313892021Z" +generated: "2024-04-12T10:49:30.568175819Z" diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver-v2.0.0-alpha.1.tgz b/charts/v2.0.0-alpha.1/azuredisk-csi-driver-v2.0.0-alpha.1.tgz deleted file mode 100644 index 06b332dc00b262b9e88bd4634cc4b7d1ecf961d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20418 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 S`M&`G0RR8Z0k?_(-~s?tt}i|S diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/Chart.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/Chart.yaml deleted file mode 100644 index 2c7cdb70fc..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v2.0.0-alpha.1 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v2.0.0-alpha.1 diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/side-by-side-values.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/side-by-side-values.yaml deleted file mode 100644 index 80df46fe95..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/side-by-side-values.yaml +++ /dev/null @@ -1,39 +0,0 @@ -serviceAccount: - controller: csi-azuredisk2-controller-sa - node: csi-azuredisk2-node-sa - snapshotController: csi2-snapshot-controller-sa - -rbac: - name: azuredisk2 - -controller: - name: csi-azuredisk2-controller - metrics: - port: 29624 - livenessProbe: - healthPort: 29623 - -node: - metrics: - port: 29625 - livenessProbe: - healthPort: 29627 - -snapshot: - enabled: true - createCRDs: false - name: csi-azuredisk2-snapshot-controller - snapshotController: - name: csi-azuredisk2-snapshot-controller - -driver: - name: disk2.csi.azure.com - -linux: - dsName: csi-azuredisk2-node - -windows: - dsName: csi-azuredisk2-node-win - -storageClasses: - enableZRS: true \ No newline at end of file diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/NOTES.txt b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100644 index c573be9b34..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,11 +0,0 @@ -Thank you for installing Azure Disk CSI Driver to your cluster. - -Your release is named {{ .Release.Name }}. - -To learn more about the release, try: - - helm status {{ .Release.Name }} --namespace={{ .Release.Namespace }} - -To check Azure Disk CSI Driver pods status, please run: - - kubectl --namespace={{ .Release.Namespace }} get pods --selector="app.kubernetes.io/instance={{ .Release.Name }}" --watch diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100644 index 51fcc8a092..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml deleted file mode 100644 index 9eb9822942..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot-ga.yaml +++ /dev/null @@ -1,655 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.snapshot.createCRDs -}} -{{- if eq .Values.snapshot.apiVersion "ga" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - 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 occurrs 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 occurrs 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: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: true - storage: false - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - 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"] - 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: true - storage: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100644 index 63fbe17490..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,504 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.snapshot.createCRDs -}} -{{- if eq .Values.snapshot.apiVersion "beta" }} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshots.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshot - listKind: VolumeSnapshotList - plural: volumesnapshots - singular: volumesnapshot - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates if a snapshot is ready to be used to restore a volume. - jsonPath: .status.readyToUse - name: ReadyToUse - type: boolean - - description: Name of the source PVC from where a dynamically taken snapshot - will be created. - jsonPath: .spec.source.persistentVolumeClaimName - name: SourcePVC - type: string - - description: Name of the VolumeSnapshotContent which represents a pre-provisioned - snapshot. - jsonPath: .spec.source.volumeSnapshotContentName - name: SourceSnapshotContent - type: string - - description: Represents the complete size of the 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: The name of the VolumeSnapshotContent to which this VolumeSnapshot - is bound. - jsonPath: .status.boundVolumeSnapshotContentName - name: SnapshotContent - type: string - - description: Timestamp when the point-in-time snapshot is taken by the underlying - storage system. - jsonPath: .status.creationTime - name: CreationTime - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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 in the same namespace as the VolumeSnapshot - object where the snapshot should be dynamically taken from. - This field is immutable. - type: string - volumeSnapshotContentName: - description: volumeSnapshotContentName specifies the name of a - pre-existing VolumeSnapshotContent object. This field is immutable. - type: string - type: object - volumeSnapshotClassName: - description: 'volumeSnapshotClassName is the name of the VolumeSnapshotClass - requested by the VolumeSnapshot. If not specified, the default snapshot - class will be used if one exists. If not specified, and there is - no default snapshot class, dynamic snapshot creation will fail. - Empty string is not allowed for this field. TODO(xiangqian): a webhook - validation on empty string. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshot-classes' - type: string - required: - - source - type: object - status: - description: 'status represents the current information of a snapshot. - NOTE: status can be modified by sources other than system controllers, - and must not be depended upon for accuracy. Controllers should only - use information from the VolumeSnapshotContent object after verifying - that the binding is accurate and complete.' - properties: - boundVolumeSnapshotContentName: - description: 'boundVolumeSnapshotContentName represents the name of - the VolumeSnapshotContent object to which the VolumeSnapshot object - is bound. If not specified, it indicates that the VolumeSnapshot - object has not been successfully bound to a VolumeSnapshotContent - object yet. NOTE: Specified boundVolumeSnapshotContentName alone - does not mean binding is valid. Controllers MUST always verify - bidirectional binding between VolumeSnapshot and VolumeSnapshotContent - to avoid possible security issues.' - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 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. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 complete size of the snapshot - in bytes. In dynamic snapshot creation case, this field will be - filled in with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotclasses.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotClass - listKind: VolumeSnapshotClassList - plural: volumesnapshotclasses - 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: v1beta1 - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.3.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/139" - creationTimestamp: null - name: volumesnapshotcontents.snapshot.storage.k8s.io -spec: - group: snapshot.storage.k8s.io - names: - kind: VolumeSnapshotContent - listKind: VolumeSnapshotContentList - plural: volumesnapshotcontents - singular: volumesnapshotcontent - scope: Cluster - versions: - - additionalPrinterColumns: - - description: Indicates if a 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 - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - 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. In dynamic snapshot creation - case, this field will be filled in with the "DeletionPolicy" field - defined in the VolumeSnapshotClass the VolumeSnapshot refers to. - 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 from where a snapshot will be created. - 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. 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 to which this snapshot - belongs. - 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 with the "creation_time" - value returned from CSI "CreateSnapshotRequest" 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 latest observed error during snapshot creation, - if any. - 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 with the "ready_to_use" value returned from CSI - "CreateSnapshotRequest" 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 with the "size_bytes" value returned from CSI "CreateSnapshotRequest" - 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: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml deleted file mode 100644 index a46e3e7f25..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml +++ /dev/null @@ -1,54 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: csi-azuredisk-controller-cleanup - namespace: {{ .Release.Namespace }} - annotations: - "helm.sh/hook": pre-delete - "helm.sh/hook-delete-policy": hook-succeeded -{{ include "azuredisk.labels" . | indent 2 }} -spec: - template: - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - restartPolicy: Never - containers: - - name: delete-azvolume -{{- if hasPrefix "/" .Values.image.curl.repository }} - image: {{ .Values.image.baseRepo }}{{ .Values.image.curl.repository }}:{{ .Values.image.curl.tag }} -{{- else }} - image: {{ .Values.image.curl.repository }}:{{ .Values.image.curl.tag }} -{{- end }} - imagePullPolicy: {{ .Values.image.curl.pullPolicy }} - command: - - "/bin/sh" - - "-c" - - "curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ - --header \"Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)\" \ - -X DELETE https://kubernetes.default.svc/apis/apiextensions.k8s.io/v1/customresourcedefinitions/azvolumes.disk.csi.azure.com;\ - until curl -v --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ - --header \"Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)\" \ - https://kubernetes.default.svc/apis/apiextensions.k8s.io/v1/customresourcedefinitions/azvolumes.disk.csi.azure.com 2>&1 | grep NotFound; do echo Waiting for AzVolume CRIs to be fully deleted; sleep 15;\ - done;\ - curl --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ - --header \"Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)\" \ - -X DELETE https://kubernetes.default.svc/apis/apiextensions.k8s.io/v1/customresourcedefinitions/azvolumeattachments.disk.csi.azure.com;\ - until curl -v --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ - --header \"Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)\" \ - https://kubernetes.default.svc/apis/apiextensions.k8s.io/v1/customresourcedefinitions/azvolumeattachments.disk.csi.azure.com 2>&1 | grep NotFound; do echo Waiting for AzVolumeAttachment CRIs to be fully deleted; sleep 15;\ - done;" diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml deleted file mode 100644 index 2584ceac90..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and .Values.controller.metrics.service.enabled .Values.controller.metrics.service.monitor.enabled }} ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.controller.name }} - release: prometheus -spec: - selector: - matchLabels: - app: {{ .Values.controller.name }} - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - endpoints: - - port: metrics - interval: 15s -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml deleted file mode 100644 index 14f9c264cf..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.controller.metrics.service.enabled }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.controller.name }} -spec: - selector: - app: {{ .Values.controller.name }} - ports: - - name: "metrics" - port: {{ .Values.controller.metrics.port }} - targetPort: {{ .Values.controller.metrics.port }} - type: ClusterIP -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100644 index 35eb5680f6..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,263 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- 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-disk -{{- 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" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=30s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-attacher-disk -{{- 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=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-snapshotter-disk -{{- if eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotter.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotter.repository }}:{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" - {{- end }} -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-leader-election" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 200m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - name: csi-resizer-disk -{{- 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" - - '-handle-volume-inuse-error=false' - - "-timeout=60s" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - - name: liveness-probe-disk -{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- else }} - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- end }} - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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.metrics.port }}" - - "--is-controller-plugin=true" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metrics.port }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 300m - memory: 500Mi - requests: - cpu: 10m - memory: 20Mi - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100644 index 0170549f66..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: CSIDriver -metadata: - name: {{ .Values.driver.name }} - annotations: - csiDriver: "{{ .Values.image.azuredisk.tag }}" -{{- if eq .Values.snapshot.apiVersion "beta" }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.tag }}" -{{- else }} - snapshot: "{{ .Values.snapshot.image.csiSnapshotter.gaTag }}" -{{- end }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - attachRequired: true - podInfoOnMount: false - {{- if .Values.feature.enableFSGroupPolicy}} - fsGroupPolicy: File - {{- end}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 1d75f0cfa5..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,222 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: -{{ toYaml .Values.windows.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical - {{- 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=3s" - - "--health-port={{ .Values.node.livenessProbe.healthPort }}" - - "--v=2" - env: - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - imagePullPolicy: {{ .Values.image.livenessProbe.pullPolicy }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - lifecycle: - preStop: - exec: - command: ["cmd", "/c", "del /f C:\\registration\\{{ .Values.driver.name }}-reg.sock C:\\csi\\{{ .Values.driver.name }}\\csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 60 - timeoutSeconds: 30 - 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: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metrics.port }}" - - "--is-node-plugin=true" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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: - limits: - cpu: 400m - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - 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/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100644 index c9889a3119..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,231 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: Default - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: -{{ toYaml .Values.linux.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical -{{- 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 - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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 - lifecycle: - preStop: - exec: - command: ["/bin/sh", "-c", "rm -rf /registration/{{ .Values.driver.name }}-reg.sock /csi/csi.sock"] - livenessProbe: - exec: - command: - - /csi-node-driver-registrar - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: - limits: - cpu: 200m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metrics.port }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--is-node-plugin=true" - - "--drivername={{ .Values.driver.name }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/scsi_host/ - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: - limits: - cpu: 200m - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - 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/scsi_host/ - type: Directory - name: scsi-host-dir - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml deleted file mode 100644 index b8b0af835b..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and .Values.schedulerExtender.metrics.service.enabled .Values.schedulerExtender.metrics.service.monitor.enabled }} ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} - release: prometheus -spec: - selector: - matchLabels: - app: {{ .Values.schedulerExtender.name }} - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - endpoints: - - port: metrics - interval: 15s -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml deleted file mode 100644 index c441533ba4..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.schedulerExtender.metrics.service.enabled }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} -spec: - selector: - app: {{ .Values.schedulerExtender.name }} - ports: - - name: "metrics" - port: {{ .Values.schedulerExtender.metrics.port }} - targetPort: {{ .Values.schedulerExtender.metrics.port }} - type: ClusterIP -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index 55dcbc38c4..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,123 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: csi-azuredisk-scheduler-extender-config - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -data: - config.yaml: | - apiVersion: kubescheduler.config.k8s.io/v1beta1 - kind: KubeSchedulerConfiguration - leaderElection: - leaderElect: true - leaseDuration: "15s" - renewDeadline: "10s" - retryPeriod: "2s" - resourceLock: leases - resourceName: csi-azuredisk-scheduler-extender - resourceNamespace: {{ .Release.Namespace }} - profiles: - - schedulerName: csi-azuredisk-scheduler-extender - extenders: - - urlPrefix: "http://localhost:{{ .Values.schedulerExtender.servicePort }}/azdiskschedulerextender" - filterVerb: "filter" - prioritizeVerb: "prioritize" - weight: 1 - nodeCacheCapable: false - ignorable: true ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} -spec: - replicas: {{ .Values.schedulerExtender.replicas }} - selector: - matchLabels: - app: {{ .Values.schedulerExtender.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.schedulerExtender.name }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - serviceAccountName: {{ .Values.serviceAccount.schedulerExtender }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Equal" - value: "true" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Equal" - value: "true" - effect: "NoSchedule" - volumes: - - name: csi-azuredisk-scheduler-extender-config - configMap: - name: csi-azuredisk-scheduler-extender-config - containers: - - name: csi-azuredisk-scheduler -{{- if hasPrefix "/" .Values.image.kubeScheduler.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.kubeScheduler.repository }}:{{ .Values.image.kubeScheduler.tag }}" -{{- else }} - image: "{{ .Values.image.kubeScheduler.repository }}:{{ .Values.image.kubeScheduler.tag }}" -{{- end }} - imagePullPolicy: IfNotPresent - args: - - kube-scheduler - - --config=/azdiskschedulerextender/config.yaml - - --v=5 - - --feature-gates - - CSIInlineVolume=true,LocalStorageCapacityIsolation=true,ServiceNodeExclusion=true - volumeMounts: - - name: csi-azuredisk-scheduler-extender-config - mountPath: /azdiskschedulerextender - - name: csi-azuredisk-scheduler-extender -{{- if hasPrefix "/" .Values.image.schedulerExtender.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.schedulerExtender.repository }}:{{ .Values.image.schedulerExtender.tag }}" -{{- else }} - image: "{{ .Values.image.schedulerExtender.repository }}:{{ .Values.image.schedulerExtender.tag }}" -{{- end }} - imagePullPolicy: {{ .Values.image.schedulerExtender.pullPolicy }} - args: - - "--port={{ .Values.schedulerExtender.servicePort }}" - - "--metrics-address=0.0.0.0:{{ .Values.schedulerExtender.metrics.port }}" - - "--v=5" - livenessProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 2 - periodSeconds: 5 - readinessProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 3 - periodSeconds: 10 - startupProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 20 - periodSeconds: 3 - ports: - - name: extender-port - containerPort: {{ .Values.schedulerExtender.servicePort }} - hostPort: {{ .Values.schedulerExtender.servicePort }} - - name: metrics-port - containerPort: {{ .Values.schedulerExtender.metrics.port }} - protocol: TCP diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml deleted file mode 100644 index 24810b8d37..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml +++ /dev/null @@ -1,143 +0,0 @@ -{{- if .Values.storageClasses.create -}} ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Standard_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_LRS - maxShares: "3" ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Premium_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Premium_LRS - maxShares: "3" ---- -{{- if .Values.storageClasses.enableUltraSSD -}} -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.ultraSSDLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: UltraSSD_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.ultraSSDLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: UltraSSD_LRS - maxShares: "3" ---- -{{- end -}} -{{- if .Values.storageClasses.enableZRS -}} -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDZRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_ZRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDZRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_ZRS - maxShares: "3" ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumZRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: Premium_ZRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumZRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: Premium_ZRS - maxShares: "3" -{{- end -}} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100644 index ded51313ef..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,60 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- 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 eq .Values.snapshot.apiVersion "beta" }} - {{- 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 }} -{{- else }} - {{- if hasPrefix "/" .Values.snapshot.image.csiSnapshotController.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- else }} - image: "{{ .Values.snapshot.image.csiSnapshotController.repository }}:{{ .Values.snapshot.image.csiSnapshotController.gaTag }}" - {{- end }} -{{- end }} - args: - - "--v=2" - - "--leader-election=false" - resources: - limits: - cpu: 100m - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml deleted file mode 100644 index 7fe13a0aff..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml +++ /dev/null @@ -1,139 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - creationTimestamp: null - name: azdrivernodes.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzDriverNode - listKind: AzDriverNodeList - plural: azdrivernodes - singular: azdrivernode - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Name of the Node which this AzDriverNode object represents. - jsonPath: .spec.nodeName - name: NodeName - type: string - - description: Indicates if the azure persistent volume driver is ready for new - pods which use azure persistent volumes. - jsonPath: .status.readyForVolumeAllocation - name: ReadyForVolumeAllocation - type: boolean - - description: Represents the time stamp at which azure persistent volume driver - sent a heatbeat. - jsonPath: .status.lastHeartbeatTime - name: LastHeartbeatTime - type: integer - - description: A brief node status message. - jsonPath: .status.statusMessage - name: StatusMessage - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: AzDriverNode is a representation of a node, where azure CSI driver - node plug-in runs. - 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 - metadata: - type: object - spec: - description: spec defines the desired state of a AzDriverNode. Required. - properties: - nodeName: - description: Name of the node which this AzDriverNode represents. - Required. - type: string - required: - - nodeName - type: object - status: - description: status represents the current state of AzDriverNode. If this - is nil or empty, clients should prefer other nodes for persistent volume - allocations or pod places for pods which use azure persistent volumes. - properties: - conditions: - description: Conditions contains an array of generic AzDriver related - health conditions These conditions can be used programmatically to - take decisions - items: - description: AzDriverCondition defines condition for the AzDriver - properties: - lastHeartbeatTime: - description: Last time we got an update on a given condition. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transit from one status - to another. - format: date-time - type: string - message: - description: Human readable message indicating details about - last transition. - type: string - reason: - description: (brief) reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of node condition. - type: string - required: - - status - - type - type: object - type: array - lastHeartbeatTime: - description: LastHeartbeatTime represents the timestamp when a heatbeat - was sent by driver node plugin. A recent timestamp means that node-plugin - is responsive and is communicating to API server. Clients should - not solely reply on LastHeartbeatTime to ascertain node plugin's - health state. - format: int64 - type: integer - readyForVolumeAllocation: - description: ReadyForVolumeAllocation tells client whether the node - plug-in is ready for volume allocation. If status is not present - or ReadyForVolumeAllocation, then clients should prefer other nodes - in the clusters for azure persistent volumes\pod placements for - pods with azure disks. - type: boolean - statusMessage: - description: StatusMessage is a brief status message regarding nodes - health This field should not be used for any decision making in - code It is for display/debug purpose only For code logic dependency, - use Conditions filed - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml deleted file mode 100644 index c6c85411b5..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml +++ /dev/null @@ -1,171 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - creationTimestamp: null - name: azvolumeattachments.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzVolumeAttachment - listKind: AzVolumeAttachmentList - plural: azvolumeattachments - singular: azvolumeattachment - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The age of the attachment - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Name of the Node which this AzVolumeAttachment object is attached - to - jsonPath: .spec.nodeName - name: NodeName - priority: 10 - type: string - - description: Name of the Volume which this AzVolumeAttachment object references - jsonPath: .spec.underlyingVolume - name: UnderlyingVolume - priority: 10 - type: string - - description: Indicates if the volume attachment should be primary attachment - or not - jsonPath: .spec.role - name: RequestedRole - type: string - - description: Indicates if the volume attachment is primary attachment or not - jsonPath: .status.detail.role - name: Role - type: string - - description: Describes the previous volume attachment role - jsonPath: .status.detail.previous_role - name: PreviousRole - priority: 10 - type: string - - description: Indicates the state of the volume attachment - jsonPath: .status.state - name: State - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: AzVolumeAttachment is a specification for a AzVolumeAttachment - resource - 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 - metadata: - type: object - spec: - description: spec defines the desired state of a AzVolumeAttachment. Required. - properties: - nodeName: - type: string - role: - description: Role indicates if the volume attachment is replica attachment - or not - type: string - underlyingVolume: - type: string - volume_context: - additionalProperties: - type: string - type: object - volume_id: - type: string - required: - - nodeName - - role - - underlyingVolume - - volume_context - - volume_id - type: object - status: - description: status represents the current state of AzVolumeAttachment. - includes error, state, and attachment status Required - properties: - detail: - description: Status summarizes the current attachment state of the - volume attachment Nil Status indicates that the volume has not yet - been attached to the node - properties: - previous_role: - description: The previous attachment role. - type: string - publish_context: - additionalProperties: - type: string - type: object - role: - description: The current attachment role. - type: string - required: - - role - type: object - error: - description: Error occurred during attach/detach of volume - properties: - currentNode: - description: "NodeName is a type that holds a api.Node's Name - identifier. Being a type captures intent and helps make sure - that the node name is not confused with similar concepts (the - hostname, the cloud provider id, the cloud provider name etc) - \n To clarify the various types: \n * Node.Name is the Name - field of the Node in the API. This should be stored in a NodeName. - \ Unfortunately, because Name is part of ObjectMeta, we can't - store it as a NodeName at the API level. \n * Hostname is the - hostname of the local machine (from uname -n). However, some - components allow the user to pass in a --hostname-override flag, - \ which will override this in most places. In the absence of - anything more meaningful, kubelet will use Hostname as the - Node.Name when it creates the Node. \n * The cloudproviders - have the own names: GCE has InstanceName, AWS has InstanceId. - \n For GCE, InstanceName is the Name of an Instance object - in the GCE API. On GCE, Instance.Name becomes the Hostname, - and thus it makes sense also to use it as the Node.Name. But - that is GCE specific, and it is up to the cloudprovider how - to do this mapping. \n For AWS, the InstanceID is not yet - suitable for use as a Node.Name, so we actually use the PrivateDnsName - for the Node.Name. And this is _not_ always the same as the - hostname: if we are using a custom DHCP domain it won't be." - type: string - devicePath: - type: string - errorCode: - type: string - errorMessage: - type: string - required: - - currentNode - - devicePath - - errorCode - - errorMessage - type: object - state: - description: State shows the current attachment state (whether operations - are in progress or not) - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml deleted file mode 100644 index 2f30fb2bd4..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml +++ /dev/null @@ -1,263 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - creationTimestamp: null - name: azvolumes.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzVolume - listKind: AzVolumeList - plural: azvolumes - singular: azvolume - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates the state of the volume - jsonPath: .status.state - name: State - type: string - - description: Indicates the phase of the underlying persistent volume - jsonPath: .status.detail.phase - name: Phase - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: AzVolume is a specification for an AzVolume resource - 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 - metadata: - type: object - spec: - description: spec defines the desired state of an AzVolume. Required. - properties: - accessibilityRequirements: - description: Specifies where the provisioned volume should be accessible - properties: - preferred: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - requisite: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - type: object - capacityRange: - description: The capacity of the storage - properties: - limit_bytes: - description: Volume MUST not be bigger than this. This field is - OPTIONAL. A value of 0 is equal to an unspecified field value. - The value of this field MUST NOT be negative. - format: int64 - type: integer - required_bytes: - description: Volume MUST be at least this big. This field is OPTIONAL. - A value of 0 is equal to an unspecified field value. The value - of this field MUST NOT be negative. - format: int64 - type: integer - type: object - contentVolumeSource: - description: ContentVolumeSource for the volume - properties: - content_source: - type: integer - content_source_id: - type: string - required: - - content_source - - content_source_id - type: object - maxMountReplicaCount: - type: integer - parameters: - additionalProperties: - type: string - description: Parameters for the volume - type: object - secrets: - additionalProperties: - type: string - description: Secrets for the volume - type: object - underlyingVolume: - description: the disk URI of the underlying volume - type: string - volumeCapability: - description: The capabilities that the volume MUST have - items: - properties: - access_details: - description: "Specifies what API the volume will be accessed - using. One of the following fields MUST be specified. \n Types - that are valid to be assigned to AccessType: block, mount" - properties: - access_type: - description: Specifies the access type for the volume. - type: integer - fs_type: - description: The filesystem type. This field is OPTIONAL. - An empty string is equal to an unspecified field value. - type: string - mount_flags: - description: The mount options that can be used for the - volume. This field is OPTIONAL. `mount_flags` MAY contain - sensitive information. Therefore, the CO and the Plugin - MUST NOT leak this information to untrusted entities. - The total size of this repeated field SHALL NOT exceed - 4 KiB. - items: - type: string - type: array - required: - - access_type - type: object - access_mode: - description: This is a REQUIRED field. - type: integer - required: - - access_details - - access_mode - type: object - type: array - required: - - maxMountReplicaCount - - underlyingVolume - - volumeCapability - type: object - status: - description: status represents the current state of AzVolume. includes - error, state, and volume status - properties: - detail: - description: Current status detail of the AzVolume Nil detail indicates - that the volume has not been created - properties: - phase: - description: Current phase of the underlying PV - type: string - status: - description: Current status of the AzVolume - properties: - accessible_topology: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - capacity_bytes: - format: int64 - type: integer - content_source: - properties: - content_source: - type: integer - content_source_id: - type: string - required: - - content_source - - content_source_id - type: object - node_expansion_required: - type: boolean - parameters: - additionalProperties: - type: string - type: object - volume_id: - type: string - required: - - capacity_bytes - - node_expansion_required - - volume_id - type: object - type: object - error: - description: Error occurred during creation/deletion of volume - properties: - currentNode: - description: "NodeName is a type that holds a api.Node's Name - identifier. Being a type captures intent and helps make sure - that the node name is not confused with similar concepts (the - hostname, the cloud provider id, the cloud provider name etc) - \n To clarify the various types: \n * Node.Name is the Name - field of the Node in the API. This should be stored in a NodeName. - \ Unfortunately, because Name is part of ObjectMeta, we can't - store it as a NodeName at the API level. \n * Hostname is the - hostname of the local machine (from uname -n). However, some - components allow the user to pass in a --hostname-override flag, - \ which will override this in most places. In the absence of - anything more meaningful, kubelet will use Hostname as the - Node.Name when it creates the Node. \n * The cloudproviders - have the own names: GCE has InstanceName, AWS has InstanceId. - \n For GCE, InstanceName is the Name of an Instance object - in the GCE API. On GCE, Instance.Name becomes the Hostname, - and thus it makes sense also to use it as the Node.Name. But - that is GCE specific, and it is up to the cloudprovider how - to do this mapping. \n For AWS, the InstanceID is not yet - suitable for use as a Node.Name, so we actually use the PrivateDnsName - for the Node.Name. And this is _not_ always the same as the - hostname: if we are using a custom DHCP domain it won't be." - type: string - devicePath: - type: string - errorCode: - type: string - errorMessage: - type: string - required: - - currentNode - - devicePath - - errorCode - - errorMessage - type: object - persistentVolume: - description: the name of PV that corresponds to the AzVolume obj - type: string - state: - description: Current state of underlying volume - type: string - required: - - state - type: object - required: - - spec - - status - type: object - served: true - storage: true - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml deleted file mode 100644 index 3539818d7d..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -{ - "apiVersion": "v1", - "kind": "Namespace", - "metadata": { - "name": "azure-disk-csi", - "labels": { - "name": "azure-disk-csi" - } - } -} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 8df4376e6f..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,219 +0,0 @@ -{{- 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", "delete"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["storage.k8s.io"] - resources: ["csinodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "list", "watch", "create", "update", "patch"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents"] - verbs: ["get", "list"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes", "azvolumeattachments", "azvolumes"] - verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes/status", "azvolumeattachments/status", "azvolumes/status"] - verbs: ["get", "patch", "update"] - - apiGroups: ["rbac.authorization.k8s.io"] - resources: ["clusterroles"] - verbs: ["get", "patch", "update"] - - apiGroups: ["rbac.authorization.k8s.io"] - resources: ["clusterrolebindings"] - verbs: ["get", "patch", "update"] - - apiGroups: [""] - resources: ["serviceaccounts"] - verbs: ["get", "patch", "update"] - ---- - -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", "list", "watch", "create", "update", "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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshotcontents/status"] - verbs: ["update"] - - apiGroups: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "get", "list", "watch", "delete"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] ---- - -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", "list", "watch", "create", "update", "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 -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-controller-secret-binding -{{ include "azuredisk.labels" . | indent 2 }} -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/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index 801c55e8f1..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,38 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes", "azvolumeattachments", "azvolumes"] - verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes/status", "azvolumeattachments/status", "azvolumes/status"] - verbs: ["get", "patch", "update"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-node-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index 7d553d5792..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,84 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-scheduler-extender-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["endpoints"] - verbs: ["get", "update"] - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["events"] - verbs: ["create", "patch", "update"] - - apiGroups: [""] - resources: ["endpoints"] - verbs: ["create"] - - apiGroups: [""] - resourceNames: ["kube-scheduler"] - resources: ["endpoints"] - verbs: ["delete", "get", "patch", "update"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["delete", "get", "list", "watch"] - - apiGroups: [""] - resources: ["bindings", "pods/binding"] - verbs: ["create"] - - apiGroups: [""] - resources: ["pods/status"] - verbs: ["patch", "update"] - - apiGroups: [""] - resources: ["replicationcontrollers", "services"] - verbs: ["get", "list", "watch"] - - apiGroups: ["*"] - resources: ["replicasets"] - verbs: ["get", "list", "watch"] - - apiGroups: ["*"] - resources: ["azdrivernodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["*"] - resources: ["azvolumeattachments"] - verbs: ["get", "list", "watch"] - - apiGroups: ["apps"] - resources: ["statefulsets"] - verbs: ["get", "list", "watch"] - - apiGroups: ["policy"] - resources: ["poddisruptionbudgets"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "patch", "update"] - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses", "csinodes", "csistoragecapacities", "csidrivers"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "update", "create"] - - apiGroups: ["events.k8s.io"] - resources: ["events"] - verbs: ["create", "patch", "update"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: csi-azuredisk-scheduler-extender-role-binding -{{ include "azuredisk.labels" . | indent 2 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: csi-azuredisk-scheduler-extender-role -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.schedulerExtender }} - namespace: {{ .Release.Namespace }} -{{ end }} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index e660adb2bb..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,73 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.rbac.create -}} -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-role -{{ include "azuredisk.labels" . | indent 2 }} -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"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["snapshot.storage.k8s.io"] - resources: ["volumesnapshots/status"] - verbs: ["update"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-snapshot-controller-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["get", "watch", "list", "delete", "update", "create"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100644 index 08bd06cda5..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100644 index 941f3eb92c..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index f7e56fb0d6..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.schedulerExtender }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100644 index 02fa54c2a3..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/values.yaml b/charts/v2.0.0-alpha.1/azuredisk-csi-driver/values.yaml deleted file mode 100644 index ac523f4e89..0000000000 --- a/charts/v2.0.0-alpha.1/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,187 +0,0 @@ -image: - baseRepo: mcr.microsoft.com - azuredisk: - repository: /oss/kubernetes-csi/azuredisk-csi - tag: v2.0.0-alpha.1 - pullPolicy: IfNotPresent - csiProvisioner: - repository: /oss/kubernetes-csi/csi-provisioner - tag: v2.2.2 - pullPolicy: IfNotPresent - csiAttacher: - repository: /oss/kubernetes-csi/csi-attacher - tag: v3.3.0 - pullPolicy: IfNotPresent - csiResizer: - repository: /oss/kubernetes-csi/csi-resizer - tag: v1.3.0 - pullPolicy: IfNotPresent - curl: - repository: docker.io/curlimages/curl - tag: latest - pullPolicy: IfNotPresent - livenessProbe: - repository: /oss/kubernetes-csi/livenessprobe - tag: v2.4.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: /oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.3.0 - pullPolicy: IfNotPresent - schedulerExtender: - repository: /oss/kubernetes-csi/azdiskschedulerextender-csi - tag: v2.0.0-alpha.1 - pullPolicy: IfNotPresent - kubeScheduler: - repository: /oss/kubernetes/kube-scheduler - tag: v1.21.2 - 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 - schedulerExtender: csi-azuredisk-scheduler-extender-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 - replicas: 2 - metrics: - port: 29604 - service: - enabled: false - monitor: - enabled: false - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - -node: - cloudConfigSecretName: azure-cloud-provider - cloudConfigSecretNamespace: kube-system - maxUnavailable: 1 - metrics: - port: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -schedulerExtender: - name: csi-azuredisk-scheduler-extender - replicas: 2 - metrics: - port: 29606 - service: - enabled: false - monitor: - enabled: false - servicePort: 8889 - -snapshot: - enabled: false - createCRDs: true - name: csi-snapshot-controller - apiVersion: beta # available values: beta, ga - image: - csiSnapshotter: - repository: /oss/kubernetes-csi/csi-snapshotter - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: /oss/kubernetes-csi/snapshot-controller - tag: v3.0.3 - gaTag: v4.2.1 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 1 - podLabels: {} - -feature: - enableFSGroupPolicy: false - -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" - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - -cloud: AzurePublicCloud - -storageClasses: - create: true - enableZRS: false - enableUltraSSD: false - storageClassNames: - standardLRS: "azuredisk-standard-hdd-lrs" - standardSSDLRS: "azuredisk-standard-ssd-lrs" - standardSSDZRS: "azuredisk-standard-ssd-zrs" - premiumLRS: "azuredisk-premium-ssd-lrs" - premiumZRS: "azuredisk-premium-ssd-zrs" - ultraSSDLRS: "azuredisk-ultra-ssd-lrs" - - -## 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" \ No newline at end of file diff --git a/charts/v2.0.0-beta.1/azuredisk-csi-driver-v2.0.0-beta.1.tgz b/charts/v2.0.0-beta.1/azuredisk-csi-driver-v2.0.0-beta.1.tgz deleted file mode 100644 index f3beee7604fa2ff9a44f04a106f41563f690b770..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17368 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 Z>7MTCp2zq6{{a91|Nm@Wv2g%s0sx!K6Da@y diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/Chart.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/Chart.yaml deleted file mode 100644 index 2e7705e490..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v2.0.0-beta.2 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v2.0.0-beta.2 diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/side-by-side-values.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/side-by-side-values.yaml deleted file mode 100644 index 47f8a33a8f..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/side-by-side-values.yaml +++ /dev/null @@ -1,81 +0,0 @@ -serviceAccount: - controller: csi-azuredisk2-controller-sa - node: csi-azuredisk2-node-sa - snapshotController: csi2-snapshot-controller-sa - -rbac: - name: azuredisk2 - -controller: - name: csi-azuredisk2-controller - metrics: - port: 29624 - livenessProbe: - healthPort: 29623 - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - preference: - matchExpressions: - - key: kubernetes.azure.com/mode - operator: In - values: - - system - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - - key: "CriticalAddonsOnly" - operator: "Exists" - effect: "NoSchedule" - -schedulerExtender: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - preference: - matchExpressions: - - key: kubernetes.azure.com/mode - operator: In - values: - - system - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - - key: "CriticalAddonsOnly" - operator: "Exists" - effect: "NoSchedule" - -node: - metrics: - port: 29625 - livenessProbe: - healthPort: 29627 - -snapshot: - enabled: true - createCRDs: false - name: csi-azuredisk2-snapshot-controller - snapshotController: - name: csi-azuredisk2-snapshot-controller - -driver: - name: disk2.csi.azure.com - -linux: - dsName: csi-azuredisk2-node - -windows: - dsName: csi-azuredisk2-node-win - -storageClasses: - enableZRS: true \ No newline at end of file diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/NOTES.txt b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100644 index c573be9b34..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,11 +0,0 @@ -Thank you for installing Azure Disk CSI Driver to your cluster. - -Your release is named {{ .Release.Name }}. - -To learn more about the release, try: - - helm status {{ .Release.Name }} --namespace={{ .Release.Namespace }} - -To check Azure Disk CSI Driver pods status, please run: - - kubectl --namespace={{ .Release.Namespace }} get pods --selector="app.kubernetes.io/instance={{ .Release.Name }}" --watch diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100644 index 51fcc8a092..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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/v2.0.0-beta.2/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100644 index e544258c98..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,661 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.snapshot.createCRDs -}} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - 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 occurrs 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 occurrs 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: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - 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: true - storage: false - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - 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"] - 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: true - storage: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml deleted file mode 100644 index ff00a1ef25..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: csi-azuredisk-controller-cleanup - namespace: {{ .Release.Namespace }} - annotations: - "helm.sh/hook": pre-delete - "helm.sh/hook-delete-policy": hook-succeeded -{{ include "azuredisk.labels" . | indent 2 }} -spec: - template: - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - restartPolicy: Never - containers: - - name: delete-azvolume -{{- if hasPrefix "/" .Values.image.curl.repository }} - image: {{ .Values.image.baseRepo }}{{ .Values.image.curl.repository }}:{{ .Values.image.curl.tag }} -{{- else }} - image: {{ .Values.image.curl.repository }}:{{ .Values.image.curl.tag }} -{{- end }} - imagePullPolicy: {{ .Values.image.curl.pullPolicy }} - command: - - "/bin/sh" - - "-c" - - "kubectl delete customresourcedefinition azvolumes.disk.csi.azure.com && kubectl delete customresourcedefinition azvolumeattachments.disk.csi.azure.com" diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml deleted file mode 100644 index 2584ceac90..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and .Values.controller.metrics.service.enabled .Values.controller.metrics.service.monitor.enabled }} ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.controller.name }} - release: prometheus -spec: - selector: - matchLabels: - app: {{ .Values.controller.name }} - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - endpoints: - - port: metrics - interval: 15s -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml deleted file mode 100644 index 14f9c264cf..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.controller.metrics.service.enabled }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.controller.name }} -spec: - selector: - app: {{ .Values.controller.name }} - ports: - - name: "metrics" - port: {{ .Values.controller.metrics.port }} - targetPort: {{ .Values.controller.metrics.port }} - type: ClusterIP -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100644 index 740725e8c5..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,221 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- 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-disk -{{- 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" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: {{- toYaml .Values.controller.resources.csiProvisioner | nindent 12 }} - - 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=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: {{- toYaml .Values.controller.resources.csiAttacher | nindent 12 }} - - 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" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.csiSnapshotter | nindent 12 }} - - name: csi-resizer -{{- if hasPrefix "/" .Values.image.csiResizer.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" -{{- else }} - image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=false' - - "-timeout=60s" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.csiResizer | nindent 12 }} - - name: liveness-probe -{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- else }} - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- end }} - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} - - 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.metrics.port }}" - - "--is-controller-plugin=true" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" - - "--drivername={{ .Values.driver.name }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metrics.port }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: {{- toYaml .Values.controller.resources.azuredisk | nindent 12 }} - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100644 index 21f941748e..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,13 +0,0 @@ -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/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 32d7b50aad..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: -{{ toYaml .Values.windows.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical - {{- 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=3s" - - "--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 }} - - 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)" - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 60 - timeoutSeconds: 30 - 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 }} - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metrics.port }}" - - "--is-node-plugin=true" - - "--drivername={{ .Values.driver.name }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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 }} - 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/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100644 index f071f95b86..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,211 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: Default - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: -{{ toYaml .Values.linux.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical -{{- 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 - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }} - - name: node-driver-registrar -{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" -{{- else }} - image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" -{{- end }} - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - livenessProbe: - exec: - command: - - /csi-node-driver-registrar - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: {{- toYaml .Values.linux.resources.nodeDriverRegistrar | nindent 12 }} - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metrics.port }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--is-node-plugin=true" - - "--drivername={{ .Values.driver.name }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/ - name: sys-class - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: {{- toYaml .Values.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 eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml deleted file mode 100644 index b8b0af835b..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and .Values.schedulerExtender.metrics.service.enabled .Values.schedulerExtender.metrics.service.monitor.enabled }} ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} - release: prometheus -spec: - selector: - matchLabels: - app: {{ .Values.schedulerExtender.name }} - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - endpoints: - - port: metrics - interval: 15s -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml deleted file mode 100644 index c441533ba4..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.schedulerExtender.metrics.service.enabled }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} -spec: - selector: - app: {{ .Values.schedulerExtender.name }} - ports: - - name: "metrics" - port: {{ .Values.schedulerExtender.metrics.port }} - targetPort: {{ .Values.schedulerExtender.metrics.port }} - type: ClusterIP -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index fad49eb1fa..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,123 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: csi-azuredisk-scheduler-extender-config - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -data: - config.yaml: | - apiVersion: kubescheduler.config.k8s.io/v1beta1 - kind: KubeSchedulerConfiguration - leaderElection: - leaderElect: true - leaseDuration: "15s" - renewDeadline: "10s" - retryPeriod: "2s" - resourceLock: leases - resourceName: csi-azuredisk-scheduler-extender - resourceNamespace: {{ .Release.Namespace }} - profiles: - - schedulerName: csi-azuredisk-scheduler-extender - extenders: - - urlPrefix: "http://localhost:{{ .Values.schedulerExtender.servicePort }}/azdiskschedulerextender" - filterVerb: "filter" - prioritizeVerb: "prioritize" - weight: 1 - nodeCacheCapable: false - ignorable: true ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} -spec: - replicas: {{ .Values.schedulerExtender.replicas }} - selector: - matchLabels: - app: {{ .Values.schedulerExtender.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.schedulerExtender.name }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - serviceAccountName: {{ .Values.serviceAccount.schedulerExtender }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.schedulerExtender.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} -{{- with .Values.schedulerExtender.affinity }} - affinity: -{{ toYaml . | indent 8 }} -{{- end }} - volumes: - - name: csi-azuredisk-scheduler-extender-config - configMap: - name: csi-azuredisk-scheduler-extender-config - containers: - - name: csi-azuredisk-scheduler -{{- if hasPrefix "/" .Values.image.kubeScheduler.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.kubeScheduler.repository }}:{{ .Values.image.kubeScheduler.tag }}" -{{- else }} - image: "{{ .Values.image.kubeScheduler.repository }}:{{ .Values.image.kubeScheduler.tag }}" -{{- end }} - imagePullPolicy: IfNotPresent - args: - - kube-scheduler - - --config=/azdiskschedulerextender/config.yaml - - --v=5 - - --feature-gates - - CSIInlineVolume=true,LocalStorageCapacityIsolation=true,ServiceNodeExclusion=true - volumeMounts: - - name: csi-azuredisk-scheduler-extender-config - mountPath: /azdiskschedulerextender - - name: csi-azuredisk-scheduler-extender -{{- if hasPrefix "/" .Values.image.schedulerExtender.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.schedulerExtender.repository }}:{{ .Values.image.schedulerExtender.tag }}" -{{- else }} - image: "{{ .Values.image.schedulerExtender.repository }}:{{ .Values.image.schedulerExtender.tag }}" -{{- end }} - imagePullPolicy: {{ .Values.image.schedulerExtender.pullPolicy }} - args: - - "--port={{ .Values.schedulerExtender.servicePort }}" - - "--metrics-address=0.0.0.0:{{ .Values.schedulerExtender.metrics.port }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--v=5" - livenessProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 2 - periodSeconds: 5 - readinessProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 3 - periodSeconds: 10 - startupProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 20 - periodSeconds: 3 - ports: - - name: extender-port - containerPort: {{ .Values.schedulerExtender.servicePort }} - hostPort: {{ .Values.schedulerExtender.servicePort }} - - name: metrics-port - containerPort: {{ .Values.schedulerExtender.metrics.port }} - protocol: TCP diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml deleted file mode 100644 index 24810b8d37..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml +++ /dev/null @@ -1,143 +0,0 @@ -{{- if .Values.storageClasses.create -}} ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Standard_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_LRS - maxShares: "3" ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Premium_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Premium_LRS - maxShares: "3" ---- -{{- if .Values.storageClasses.enableUltraSSD -}} -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.ultraSSDLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: UltraSSD_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.ultraSSDLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: UltraSSD_LRS - maxShares: "3" ---- -{{- end -}} -{{- if .Values.storageClasses.enableZRS -}} -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDZRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_ZRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDZRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_ZRS - maxShares: "3" ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumZRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: Premium_ZRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumZRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: Premium_ZRS - maxShares: "3" -{{- end -}} -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100644 index d323508e29..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- 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" - resources: {{- toYaml .Values.snapshot.snapshotController.resources | nindent 12 }} - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml deleted file mode 100644 index d1a1e966ad..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml +++ /dev/null @@ -1,139 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.5.0 - creationTimestamp: null - name: azdrivernodes.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzDriverNode - listKind: AzDriverNodeList - plural: azdrivernodes - singular: azdrivernode - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Name of the Node which this AzDriverNode object represents. - jsonPath: .spec.nodeName - name: NodeName - type: string - - description: Indicates if the azure persistent volume driver is ready for new - pods which use azure persistent volumes. - jsonPath: .status.readyForVolumeAllocation - name: ReadyForVolumeAllocation - type: boolean - - description: Represents the time stamp at which azure persistent volume driver - sent a heatbeat. - jsonPath: .status.lastHeartbeatTime - name: LastHeartbeatTime - type: date - - description: A brief node status message. - jsonPath: .status.statusMessage - name: StatusMessage - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: AzDriverNode is a representation of a node, where azure CSI driver - node plug-in runs. - 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 - metadata: - type: object - spec: - description: spec defines the desired state of a AzDriverNode. Required. - properties: - nodeName: - description: Name of the node which this AzDriverNode represents. - Required. - type: string - required: - - nodeName - type: object - status: - description: status represents the current state of AzDriverNode. If this - is nil or empty, clients should prefer other nodes for persistent volume - allocations or pod places for pods which use azure persistent volumes. - properties: - conditions: - description: Conditions contains an array of generic AzDriver related - health conditions These conditions can be used programmatically - to take decisions - items: - description: AzDriverCondition defines condition for the AzDriver - properties: - lastHeartbeatTime: - description: Last time we got an update on a given condition. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transit from one status - to another. - format: date-time - type: string - message: - description: Human readable message indicating details about - last transition. - type: string - reason: - description: (brief) reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of node condition. - type: string - required: - - status - - type - type: object - type: array - lastHeartbeatTime: - description: LastHeartbeatTime represents the timestamp when a heatbeat - was sent by driver node plugin. A recent timestamp means that node-plugin - is responsive and is communicating to API server. Clients should - not solely reply on LastHeartbeatTime to ascertain node plugin's - health state. - format: date-time - type: string - readyForVolumeAllocation: - description: ReadyForVolumeAllocation tells client whether the node - plug-in is ready for volume allocation. If status is not present - or ReadyForVolumeAllocation, then clients should prefer other nodes - in the clusters for azure persistent volumes\pod placements for - pods with azure disks. - type: boolean - statusMessage: - description: StatusMessage is a brief status message regarding nodes - health This field should not be used for any decision making in - code It is for display/debug purpose only For code logic dependency, - use Conditions filed - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml deleted file mode 100644 index 956b274434..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml +++ /dev/null @@ -1,148 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.5.0 - creationTimestamp: null - name: azvolumeattachments.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzVolumeAttachment - listKind: AzVolumeAttachmentList - plural: azvolumeattachments - singular: azvolumeattachment - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The age of the attachment - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Name of the Node which this AzVolumeAttachment object is attached - to - jsonPath: .spec.nodeName - name: NodeName - priority: 10 - type: string - - description: Name of the volume which this AzVolumeAttachment object references - jsonPath: .spec.volumeName - name: VolumeName - priority: 10 - type: string - - description: Indicates if the volume attachment should be primary attachment - or not - jsonPath: .spec.role - name: RequestedRole - type: string - - description: Indicates if the volume attachment is primary attachment or not - jsonPath: .status.detail.role - name: Role - type: string - - description: Describes the previous volume attachment role - jsonPath: .status.detail.previous_role - name: PreviousRole - priority: 10 - type: string - - description: Indicates the state of the volume attachment - jsonPath: .status.state - name: State - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: AzVolumeAttachment is a specification for a AzVolumeAttachment - resource - 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 - metadata: - type: object - spec: - description: spec defines the desired state of a AzVolumeAttachment. Required. - properties: - nodeName: - type: string - role: - description: Role indicates if the volume attachment is replica attachment - or not - type: string - volume_context: - additionalProperties: - type: string - type: object - volume_id: - type: string - volumeName: - type: string - required: - - nodeName - - role - - volumeName - - volume_context - - volume_id - type: object - status: - description: status represents the current state of AzVolumeAttachment. - includes error, state, and attachment status Required - properties: - detail: - description: Status summarizes the current attachment state of the - volume attachment Nil Status indicates that the volume has not yet - been attached to the node - properties: - previous_role: - description: The previous attachment role. - type: string - publish_context: - additionalProperties: - type: string - type: object - role: - description: The current attachment role. - type: string - required: - - role - type: object - error: - description: Error occurred during attach/detach of volume - properties: - code: - type: string - message: - type: string - parameters: - additionalProperties: - type: string - type: object - required: - - code - - message - type: object - state: - description: State shows the current attachment state (whether operations - are in progress or not) - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml deleted file mode 100644 index 1dd8ed954f..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml +++ /dev/null @@ -1,229 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.5.0 - creationTimestamp: null - name: azvolumes.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzVolume - listKind: AzVolumeList - plural: azvolumes - singular: azvolume - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates the state of the volume - jsonPath: .status.state - name: State - type: string - - description: Indicates the phase of the underlying persistent volume - jsonPath: .status.detail.phase - name: Phase - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: AzVolume is a specification for an AzVolume resource - 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 - metadata: - type: object - spec: - description: spec defines the desired state of an AzVolume. Required. - properties: - accessibilityRequirements: - description: Specifies where the provisioned volume should be accessible. - properties: - preferred: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - requisite: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - type: object - capacityRange: - description: The capacity of the storage. - properties: - limit_bytes: - description: Volume MUST not be bigger than this. This field is - OPTIONAL. A value of 0 is equal to an unspecified field value. - The value of this field MUST NOT be negative. - format: int64 - type: integer - required_bytes: - description: Volume MUST be at least this big. This field is OPTIONAL. - A value of 0 is equal to an unspecified field value. The value - of this field MUST NOT be negative. - format: int64 - type: integer - type: object - contentVolumeSource: - description: The source of initial content for the volume. - properties: - content_source: - type: integer - content_source_id: - type: string - required: - - content_source - - content_source_id - type: object - maxMountReplicaCount: - description: The number of replicas attachments to maintain. This - value must be in the range [0..(maxShares - 1)]. If the volume access - mode is ReadWriteMany, the default is 0. Otherwise, the default - is maxShares - 1. - type: integer - parameters: - additionalProperties: - type: string - description: Parameters for the volume. - type: object - secrets: - additionalProperties: - type: string - description: Secrets for the volume. - type: object - volumeCapability: - description: The capabilities that the volume MUST have. - items: - properties: - access_mode: - description: This is a REQUIRED field. - type: integer - access_type: - description: Specifies the access type for the volume. - type: integer - fs_type: - description: The filesystem type. This field is OPTIONAL. An - empty string is equal to an unspecified field value. - type: string - mount_flags: - description: The mount options that can be used for the volume. - This field is OPTIONAL. `mount_flags` MAY contain sensitive - information. Therefore, the CO and the Plugin MUST NOT leak - this information to untrusted entities. The total size of - this repeated field SHALL NOT exceed 4 KiB. - items: - type: string - type: array - required: - - access_mode - - access_type - type: object - type: array - volumeName: - description: The disk name. - type: string - required: - - maxMountReplicaCount - - volumeCapability - - volumeName - type: object - status: - description: status represents the current state of AzVolume. includes - error, state, and volume status - properties: - detail: - description: Current status detail of the AzVolume Nil detail indicates - that the volume has not been created - properties: - accessible_topology: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - capacity_bytes: - format: int64 - type: integer - content_source: - properties: - content_source: - type: integer - content_source_id: - type: string - required: - - content_source - - content_source_id - type: object - node_expansion_required: - type: boolean - parameters: - additionalProperties: - type: string - type: object - volume_id: - type: string - required: - - capacity_bytes - - node_expansion_required - - volume_id - type: object - error: - description: Error occurred during creation/deletion of volume - properties: - code: - type: string - message: - type: string - parameters: - additionalProperties: - type: string - type: object - required: - - code - - message - type: object - persistentVolume: - description: The name of the PersistentVolume that corresponds to - the AzVolume instance. - type: string - state: - description: Current state of underlying volume - type: string - required: - - state - type: object - required: - - spec - - status - type: object - served: true - storage: true - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml deleted file mode 100644 index 3539818d7d..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -{ - "apiVersion": "v1", - "kind": "Namespace", - "metadata": { - "name": "azure-disk-csi", - "labels": { - "name": "azure-disk-csi" - } - } -} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 7976595332..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,219 +0,0 @@ -{{- 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", "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"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes", "azvolumeattachments", "azvolumes"] - verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes/status", "azvolumeattachments/status", "azvolumes/status"] - verbs: ["get", "patch", "update"] - - apiGroups: ["rbac.authorization.k8s.io"] - resources: ["clusterroles"] - verbs: ["get", "patch", "update"] - - apiGroups: ["rbac.authorization.k8s.io"] - resources: ["clusterrolebindings"] - verbs: ["get", "patch", "update"] - - apiGroups: [""] - resources: ["serviceaccounts"] - verbs: ["get", "patch", "update"] - ---- - -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: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "get", "list", "watch", "delete"] - - 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 -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-controller-secret-binding -{{ include "azuredisk.labels" . | indent 2 }} -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/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index 1aeac4eaa7..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,44 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes"] - verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azvolumeattachments"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azvolumes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes/status", "azvolumeattachments/status"] - verbs: ["get", "patch", "update"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-node-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index 0459ece0e8..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,88 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-scheduler-extender-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["endpoints"] - verbs: ["create"] - - apiGroups: [""] - resourceNames: ["csi-azuredisk-scheduler-extender"] - resources: ["endpoints"] - verbs: ["get", "update"] - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get", "list", "watch"] - - apiGroups: ["", "events.k8s.io"] - resources: ["events"] - verbs: ["create", "patch", "update"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["delete", "get", "list", "watch"] - - apiGroups: [""] - resources: ["bindings", "pods/binding"] - verbs: ["create"] - - apiGroups: [""] - resources: ["pods/status"] - verbs: ["patch", "update"] - - apiGroups: [""] - resources: ["replicationcontrollers", "services"] - verbs: ["get", "list", "watch"] - - apiGroups: ["apps", "extensions"] - resources: ["replicasets"] - verbs: ["get", "list", "watch"] - - apiGroups: ["apps"] - resources: ["statefulsets"] - verbs: ["get", "list", "watch"] - - apiGroups: ["policy"] - resources: ["poddisruptionbudgets"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "patch", "update"] - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["authorization.k8s.io"] - resources: ["subjectaccessreviews", "tokenreviews"] - verbs: ["create"] - - apiGroups: [""] - resources: ["namespaces"] - verbs: ["get", "list", "watch"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses", "csinodes", "csistoragecapacities", "csidrivers"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["create"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - resourceNames: ["csi-azuredisk-scheduler-extender"] - verbs: ["get", "update"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azvolumeattachments"] - verbs: ["get", "list", "watch"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: csi-azuredisk-scheduler-extender-role-binding -{{ include "azuredisk.labels" . | indent 2 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: csi-azuredisk-scheduler-extender-role -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.schedulerExtender }} - namespace: {{ .Release.Namespace }} -{{ end }} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index e91e1591fa..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,76 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.rbac.create -}} -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-role -{{ include "azuredisk.labels" . | indent 2 }} -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-{{ .Values.rbac.name }}-snapshot-controller-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-snapshot-controller-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-role -{{ include "azuredisk.labels" . | indent 2 }} -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-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100644 index 08bd06cda5..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100644 index 941f3eb92c..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index f7e56fb0d6..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.schedulerExtender }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100644 index 02fa54c2a3..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.2/azuredisk-csi-driver/values.yaml b/charts/v2.0.0-beta.2/azuredisk-csi-driver/values.yaml deleted file mode 100644 index c333afdb65..0000000000 --- a/charts/v2.0.0-beta.2/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,276 +0,0 @@ -image: - baseRepo: mcr.microsoft.com - azuredisk: - repository: /oss/kubernetes-csi/azuredisk-csi - tag: v2.0.0-beta.2 - pullPolicy: IfNotPresent - csiProvisioner: - repository: /oss/kubernetes-csi/csi-provisioner - tag: v3.1.0 - pullPolicy: IfNotPresent - csiAttacher: - repository: /oss/kubernetes-csi/csi-attacher - tag: v3.4.0 - pullPolicy: IfNotPresent - csiResizer: - repository: /oss/kubernetes-csi/csi-resizer - tag: v1.4.0 - pullPolicy: IfNotPresent - curl: - repository: /oss/kubernetes/kubectl - tag: v1.21.2 - pullPolicy: IfNotPresent - livenessProbe: - repository: /oss/kubernetes-csi/livenessprobe - tag: v2.5.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: /oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.4.0 - pullPolicy: IfNotPresent - schedulerExtender: - repository: /oss/kubernetes-csi/azdiskschedulerextender-csi - tag: v2.0.0-beta.2 - pullPolicy: IfNotPresent - kubeScheduler: - repository: /oss/kubernetes/kube-scheduler - tag: v1.21.2 - 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 - schedulerExtender: csi-azuredisk-scheduler-extender-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 - replicas: 2 - metrics: - port: 29604 - service: - enabled: false - monitor: - enabled: false - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - 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: 100Mi - 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 - allowEmptyCloudConfig: true - maxUnavailable: 1 - metrics: - port: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -schedulerExtender: - name: csi-azuredisk-scheduler-extender - replicas: 2 - metrics: - port: 29606 - service: - enabled: false - monitor: - enabled: false - servicePort: 8889 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - -snapshot: - enabled: false - createCRDs: true - name: csi-snapshot-controller - image: - csiSnapshotter: - repository: /oss/kubernetes-csi/csi-snapshotter - tag: v5.0.1 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: /oss/kubernetes-csi/snapshot-controller - tag: v5.0.1 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 2 - podLabels: {} - resources: - limits: - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - -feature: - enableFSGroupPolicy: true - -driver: - name: disk.csi.azure.com - objectNamespace: "azure-disk-csi" # The namespace where driver related custom resources are created - # 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" - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - 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: 200Mi - requests: - cpu: 10m - memory: 20Mi - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - resources: - livenessProbe: - limits: - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - nodeDriverRegistrar: - limits: - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - azuredisk: - limits: - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - -cloud: AzurePublicCloud - -storageClasses: - create: true - enableZRS: false - enableUltraSSD: false - storageClassNames: - standardLRS: "azuredisk-standard-hdd-lrs" - standardSSDLRS: "azuredisk-standard-ssd-lrs" - standardSSDZRS: "azuredisk-standard-ssd-zrs" - premiumLRS: "azuredisk-premium-ssd-lrs" - premiumZRS: "azuredisk-premium-ssd-zrs" - ultraSSDLRS: "azuredisk-ultra-ssd-lrs" - - -## 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" \ No newline at end of file diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver-v2.0.0-beta.3.tgz b/charts/v2.0.0-beta.3/azuredisk-csi-driver-v2.0.0-beta.3.tgz deleted file mode 100644 index 9e3362c88e82e99554bfb45334bae20d8d02b6d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17368 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%0Ath>1$E7}SoAIAP)Fj*YTc%qcQDB>`ng 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 O0RR63k=(5SXaWEo+a-Mf diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/Chart.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/Chart.yaml deleted file mode 100644 index 0dfa1cc004..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/Chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -appVersion: v2.0.0-beta.3 -description: Azure disk Container Storage Interface (CSI) Storage Plugin -name: azuredisk-csi-driver -version: v2.0.0-beta.3 diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/side-by-side-values.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/side-by-side-values.yaml deleted file mode 100644 index 47f8a33a8f..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/side-by-side-values.yaml +++ /dev/null @@ -1,81 +0,0 @@ -serviceAccount: - controller: csi-azuredisk2-controller-sa - node: csi-azuredisk2-node-sa - snapshotController: csi2-snapshot-controller-sa - -rbac: - name: azuredisk2 - -controller: - name: csi-azuredisk2-controller - metrics: - port: 29624 - livenessProbe: - healthPort: 29623 - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - preference: - matchExpressions: - - key: kubernetes.azure.com/mode - operator: In - values: - - system - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - - key: "CriticalAddonsOnly" - operator: "Exists" - effect: "NoSchedule" - -schedulerExtender: - affinity: - nodeAffinity: - preferredDuringSchedulingIgnoredDuringExecution: - - weight: 100 - preference: - matchExpressions: - - key: kubernetes.azure.com/mode - operator: In - values: - - system - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - - key: "CriticalAddonsOnly" - operator: "Exists" - effect: "NoSchedule" - -node: - metrics: - port: 29625 - livenessProbe: - healthPort: 29627 - -snapshot: - enabled: true - createCRDs: false - name: csi-azuredisk2-snapshot-controller - snapshotController: - name: csi-azuredisk2-snapshot-controller - -driver: - name: disk2.csi.azure.com - -linux: - dsName: csi-azuredisk2-node - -windows: - dsName: csi-azuredisk2-node-win - -storageClasses: - enableZRS: true \ No newline at end of file diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/NOTES.txt b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/NOTES.txt deleted file mode 100644 index c573be9b34..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/NOTES.txt +++ /dev/null @@ -1,11 +0,0 @@ -Thank you for installing Azure Disk CSI Driver to your cluster. - -Your release is named {{ .Release.Name }}. - -To learn more about the release, try: - - helm status {{ .Release.Name }} --namespace={{ .Release.Namespace }} - -To check Azure Disk CSI Driver pods status, please run: - - kubectl --namespace={{ .Release.Namespace }} get pods --selector="app.kubernetes.io/instance={{ .Release.Name }}" --watch diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/_helpers.tpl b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/_helpers.tpl deleted file mode 100644 index 51fcc8a092..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/_helpers.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{{/* 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/v2.0.0-beta.3/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml deleted file mode 100644 index e544258c98..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/crd-csi-snapshot.yaml +++ /dev/null @@ -1,661 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.snapshot.createCRDs -}} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - 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 occurrs 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 occurrs 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: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - 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: true - storage: false - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.4.0 - api-approved.kubernetes.io: "https://github.com/kubernetes-csi/external-snapshotter/pull/419" - 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"] - 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: true - storage: false - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml deleted file mode 100644 index ff00a1ef25..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-cleanup.yaml +++ /dev/null @@ -1,41 +0,0 @@ -apiVersion: batch/v1 -kind: Job -metadata: - name: csi-azuredisk-controller-cleanup - namespace: {{ .Release.Namespace }} - annotations: - "helm.sh/hook": pre-delete - "helm.sh/hook-delete-policy": hook-succeeded -{{ include "azuredisk.labels" . | indent 2 }} -spec: - template: - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.controller.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - {{- include "azuredisk.pullSecrets" . | indent 6 }} - restartPolicy: Never - containers: - - name: delete-azvolume -{{- if hasPrefix "/" .Values.image.curl.repository }} - image: {{ .Values.image.baseRepo }}{{ .Values.image.curl.repository }}:{{ .Values.image.curl.tag }} -{{- else }} - image: {{ .Values.image.curl.repository }}:{{ .Values.image.curl.tag }} -{{- end }} - imagePullPolicy: {{ .Values.image.curl.pullPolicy }} - command: - - "/bin/sh" - - "-c" - - "kubectl delete customresourcedefinition azvolumes.disk.csi.azure.com && kubectl delete customresourcedefinition azvolumeattachments.disk.csi.azure.com" diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml deleted file mode 100644 index 2584ceac90..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-monitor.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and .Values.controller.metrics.service.enabled .Values.controller.metrics.service.monitor.enabled }} ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.controller.name }} - release: prometheus -spec: - selector: - matchLabels: - app: {{ .Values.controller.name }} - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - endpoints: - - port: metrics - interval: 15s -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml deleted file mode 100644 index 14f9c264cf..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller-service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.controller.metrics.service.enabled }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.controller.name }} -spec: - selector: - app: {{ .Values.controller.name }} - ports: - - name: "metrics" - port: {{ .Values.controller.metrics.port }} - targetPort: {{ .Values.controller.metrics.port }} - type: ClusterIP -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml deleted file mode 100644 index 740725e8c5..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-controller.yaml +++ /dev/null @@ -1,221 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.controller.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.controller.replicas }} - selector: - matchLabels: - app: {{ .Values.controller.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.controller.name }} -{{- with .Values.controller.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.controller.hostNetwork }} - serviceAccountName: {{ .Values.serviceAccount.controller }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- 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-disk -{{- 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" - - "--csi-address=$(ADDRESS)" - - "--v=2" - - "--timeout=15s" - - "--leader-election" - - "--worker-threads={{ .Values.controller.provisionerWorkerThreads }}" - - "--extra-create-metadata=true" - - "--strict-topology=true" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: {{- toYaml .Values.controller.resources.csiProvisioner | nindent 12 }} - - 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=600s" - - "-leader-election" - - "-worker-threads={{ .Values.controller.attacherWorkerThreads }}" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - mountPath: /csi - name: socket-dir - resources: {{- toYaml .Values.controller.resources.csiAttacher | nindent 12 }} - - 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" - - "-v=2" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.csiSnapshotter | nindent 12 }} - - name: csi-resizer -{{- if hasPrefix "/" .Values.image.csiResizer.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" -{{- else }} - image: "{{ .Values.image.csiResizer.repository }}:{{ .Values.image.csiResizer.tag }}" -{{- end }} - args: - - "-csi-address=$(ADDRESS)" - - "-v=2" - - "-leader-election" - - '-handle-volume-inuse-error=false' - - "-timeout=60s" - env: - - name: ADDRESS - value: /csi/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.csiResizer | nindent 12 }} - - name: liveness-probe -{{- if hasPrefix "/" .Values.image.livenessProbe.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- else }} - image: "{{ .Values.image.livenessProbe.repository }}:{{ .Values.image.livenessProbe.tag }}" -{{- end }} - args: - - --csi-address=/csi/csi.sock - - --probe-timeout=3s - - --health-port={{ .Values.controller.livenessProbe.healthPort }} - - --v=2 - volumeMounts: - - name: socket-dir - mountPath: /csi - resources: {{- toYaml .Values.controller.resources.livenessProbe | nindent 12 }} - - 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.metrics.port }}" - - "--is-controller-plugin=true" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--disable-avset-nodes={{ .Values.controller.disableAvailabilitySetNodes }}" - - "--drivername={{ .Values.driver.name }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.controller.livenessProbe.healthPort }} - name: healthz - protocol: TCP - - containerPort: {{ .Values.controller.metrics.port }} - name: metrics - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: {{- toYaml .Values.controller.resources.azuredisk | nindent 12 }} - volumes: - - name: socket-dir - emptyDir: {} - - name: azure-cred - hostPath: - path: /etc/kubernetes/ - type: DirectoryOrCreate - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml deleted file mode 100644 index 21f941748e..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-driver.yaml +++ /dev/null @@ -1,13 +0,0 @@ -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/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml deleted file mode 100644 index 32d7b50aad..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node-windows.yaml +++ /dev/null @@ -1,202 +0,0 @@ -{{- if .Values.windows.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.windows.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} - spec: - serviceAccountName: {{ .Values.serviceAccount.node }} -{{- with .Values.windows.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} - nodeSelector: - kubernetes.io/os: windows - affinity: - nodeAffinity: -{{ toYaml .Values.windows.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical - {{- 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=3s" - - "--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 }} - - 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)" - livenessProbe: - exec: - command: - - /csi-node-driver-registrar.exe - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 60 - timeoutSeconds: 30 - 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 }} - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metrics.port }}" - - "--is-node-plugin=true" - - "--drivername={{ .Values.driver.name }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path-windows - optional: true - - name: CSI_ENDPOINT - value: unix://C:\\csi\\csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: C:\k\azurestackcloud.json - {{- 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 }} - 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/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml deleted file mode 100644 index f071f95b86..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-node.yaml +++ /dev/null @@ -1,211 +0,0 @@ -{{- if .Values.linux.enabled}} -kind: DaemonSet -apiVersion: apps/v1 -metadata: - name: {{ .Values.linux.dsName }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -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 }} -{{- with .Values.linux.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - hostNetwork: {{ .Values.linux.hostNetwork }} - dnsPolicy: Default - serviceAccountName: {{ .Values.serviceAccount.node }} - nodeSelector: - kubernetes.io/os: linux - affinity: - nodeAffinity: -{{ toYaml .Values.linux.nodeAffinity | indent 10 }} - priorityClassName: system-node-critical -{{- 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 - - --health-port={{ .Values.node.livenessProbe.healthPort }} - - --v=2 - resources: {{- toYaml .Values.linux.resources.livenessProbe | nindent 12 }} - - name: node-driver-registrar -{{- if hasPrefix "/" .Values.image.nodeDriverRegistrar.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" -{{- else }} - image: "{{ .Values.image.nodeDriverRegistrar.repository }}:{{ .Values.image.nodeDriverRegistrar.tag }}" -{{- end }} - args: - - --csi-address=$(ADDRESS) - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --v=2 - livenessProbe: - exec: - command: - - /csi-node-driver-registrar - - --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH) - - --mode=kubelet-registration-probe - initialDelaySeconds: 30 - timeoutSeconds: 15 - env: - - name: ADDRESS - value: /csi/csi.sock - - name: DRIVER_REG_SOCK_PATH - value: {{ .Values.linux.kubelet }}/plugins/{{ .Values.driver.name }}/csi.sock - volumeMounts: - - name: socket-dir - mountPath: /csi - - name: registration-dir - mountPath: /registration - resources: {{- toYaml .Values.linux.resources.nodeDriverRegistrar | nindent 12 }} - - 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)" - - "--metrics-address=0.0.0.0:{{ .Values.node.metrics.port }}" - - "--enable-perf-optimization={{ .Values.linux.enablePerfOptimization }}" - - "--is-node-plugin=true" - - "--drivername={{ .Values.driver.name }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--volume-attach-limit={{ .Values.driver.volumeAttachLimit }}" - - "--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 }}" - ports: - - containerPort: {{ .Values.node.livenessProbe.healthPort }} - name: healthz - protocol: TCP - livenessProbe: - failureThreshold: 5 - httpGet: - path: /healthz - port: healthz - initialDelaySeconds: 30 - timeoutSeconds: 10 - periodSeconds: 30 - env: - - name: AZURE_CREDENTIAL_FILE - valueFrom: - configMapKeyRef: - name: azure-cred-file - key: path - optional: true - - name: CSI_ENDPOINT - value: unix:///csi/csi.sock - - name: KUBE_NODE_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: spec.nodeName - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: AZURE_ENVIRONMENT_FILEPATH - value: /etc/kubernetes/azurestackcloud.json - {{- end }} - imagePullPolicy: {{ .Values.image.azuredisk.pullPolicy }} - securityContext: - privileged: true - volumeMounts: - - mountPath: /csi - name: socket-dir - - mountPath: {{ .Values.linux.kubelet }}/ - mountPropagation: Bidirectional - name: mountpoint-dir - - mountPath: /etc/kubernetes/ - name: azure-cred - - mountPath: /dev - name: device-dir - - mountPath: /sys/bus/scsi/devices - name: sys-devices-dir - - mountPath: /sys/class/ - name: sys-class - {{- if eq .Values.cloud "AzureStackCloud" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - mountPath: /etc/ssl/certs - readOnly: true - - name: ssl-pki - mountPath: /etc/pki/ca-trust/extracted - readOnly: true - {{- end }} - resources: {{- toYaml .Values.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 eq .Values.cloud "AzureStackCloud" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - {{- end }} - {{- if eq .Values.linux.distro "fedora" }} - - name: ssl - hostPath: - path: /etc/ssl/certs - - name: ssl-pki - hostPath: - path: /etc/pki/ca-trust/extracted - {{- end }} -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml deleted file mode 100644 index b8b0af835b..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-monitor.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- if and .Values.schedulerExtender.metrics.service.enabled .Values.schedulerExtender.metrics.service.monitor.enabled }} ---- -apiVersion: monitoring.coreos.com/v1 -kind: ServiceMonitor -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} - release: prometheus -spec: - selector: - matchLabels: - app: {{ .Values.schedulerExtender.name }} - namespaceSelector: - matchNames: - - {{ .Release.Namespace }} - endpoints: - - port: metrics - interval: 15s -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml deleted file mode 100644 index c441533ba4..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender-service.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.schedulerExtender.metrics.service.enabled }} ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} -spec: - selector: - app: {{ .Values.schedulerExtender.name }} - ports: - - name: "metrics" - port: {{ .Values.schedulerExtender.metrics.port }} - targetPort: {{ .Values.schedulerExtender.metrics.port }} - type: ClusterIP -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index fad49eb1fa..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,123 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: csi-azuredisk-scheduler-extender-config - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -data: - config.yaml: | - apiVersion: kubescheduler.config.k8s.io/v1beta1 - kind: KubeSchedulerConfiguration - leaderElection: - leaderElect: true - leaseDuration: "15s" - renewDeadline: "10s" - retryPeriod: "2s" - resourceLock: leases - resourceName: csi-azuredisk-scheduler-extender - resourceNamespace: {{ .Release.Namespace }} - profiles: - - schedulerName: csi-azuredisk-scheduler-extender - extenders: - - urlPrefix: "http://localhost:{{ .Values.schedulerExtender.servicePort }}/azdiskschedulerextender" - filterVerb: "filter" - prioritizeVerb: "prioritize" - weight: 1 - nodeCacheCapable: false - ignorable: true ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ .Values.schedulerExtender.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} - app: {{ .Values.schedulerExtender.name }} -spec: - replicas: {{ .Values.schedulerExtender.replicas }} - selector: - matchLabels: - app: {{ .Values.schedulerExtender.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.schedulerExtender.name }} - spec: - {{- if .Values.imagePullSecrets }} - imagePullSecrets: -{{ toYaml .Values.imagePullSecrets | indent 8 }} - {{- end }} - serviceAccountName: {{ .Values.serviceAccount.schedulerExtender }} - nodeSelector: - kubernetes.io/os: linux - {{- if .Values.controller.runOnMaster}} - kubernetes.io/role: master - {{- end}} - priorityClassName: system-cluster-critical -{{- with .Values.schedulerExtender.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} -{{- end }} -{{- with .Values.schedulerExtender.affinity }} - affinity: -{{ toYaml . | indent 8 }} -{{- end }} - volumes: - - name: csi-azuredisk-scheduler-extender-config - configMap: - name: csi-azuredisk-scheduler-extender-config - containers: - - name: csi-azuredisk-scheduler -{{- if hasPrefix "/" .Values.image.kubeScheduler.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.kubeScheduler.repository }}:{{ .Values.image.kubeScheduler.tag }}" -{{- else }} - image: "{{ .Values.image.kubeScheduler.repository }}:{{ .Values.image.kubeScheduler.tag }}" -{{- end }} - imagePullPolicy: IfNotPresent - args: - - kube-scheduler - - --config=/azdiskschedulerextender/config.yaml - - --v=5 - - --feature-gates - - CSIInlineVolume=true,LocalStorageCapacityIsolation=true,ServiceNodeExclusion=true - volumeMounts: - - name: csi-azuredisk-scheduler-extender-config - mountPath: /azdiskschedulerextender - - name: csi-azuredisk-scheduler-extender -{{- if hasPrefix "/" .Values.image.schedulerExtender.repository }} - image: "{{ .Values.image.baseRepo }}{{ .Values.image.schedulerExtender.repository }}:{{ .Values.image.schedulerExtender.tag }}" -{{- else }} - image: "{{ .Values.image.schedulerExtender.repository }}:{{ .Values.image.schedulerExtender.tag }}" -{{- end }} - imagePullPolicy: {{ .Values.image.schedulerExtender.pullPolicy }} - args: - - "--port={{ .Values.schedulerExtender.servicePort }}" - - "--metrics-address=0.0.0.0:{{ .Values.schedulerExtender.metrics.port }}" - - "--driver-object-namespace={{ .Values.driver.objectNamespace }}" - - "--v=5" - livenessProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 2 - periodSeconds: 5 - readinessProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 3 - periodSeconds: 10 - startupProbe: - httpGet: - path: /ping - port: extender-port - failureThreshold: 20 - periodSeconds: 3 - ports: - - name: extender-port - containerPort: {{ .Values.schedulerExtender.servicePort }} - hostPort: {{ .Values.schedulerExtender.servicePort }} - - name: metrics-port - containerPort: {{ .Values.schedulerExtender.metrics.port }} - protocol: TCP diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml deleted file mode 100644 index 24810b8d37..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-azuredisk-storage-class.yaml +++ /dev/null @@ -1,143 +0,0 @@ -{{- if .Values.storageClasses.create -}} ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Standard_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_LRS - maxShares: "3" ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Premium_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: Premium_LRS - maxShares: "3" ---- -{{- if .Values.storageClasses.enableUltraSSD -}} -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.ultraSSDLRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: UltraSSD_LRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.ultraSSDLRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: WaitForFirstConsumer -allowVolumeExpansion: true -parameters: - skuName: UltraSSD_LRS - maxShares: "3" ---- -{{- end -}} -{{- if .Values.storageClasses.enableZRS -}} -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDZRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_ZRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.standardSSDZRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: StandardSSD_ZRS - maxShares: "3" ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumZRS }} -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: Premium_ZRS ---- -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: {{ .Values.storageClasses.storageClassNames.premiumZRS }}-replicas -{{ include "azuredisk.labels" . | indent 2 }} -provisioner: {{ .Values.driver.name }} -reclaimPolicy: Delete -volumeBindingMode: Immediate -allowVolumeExpansion: true -parameters: - skuName: Premium_ZRS - maxShares: "3" -{{- end -}} -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml deleted file mode 100644 index d323508e29..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/csi-snapshot-controller.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.snapshot.enabled -}} -kind: Deployment -apiVersion: apps/v1 -metadata: - name: {{ .Values.snapshot.snapshotController.name }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -spec: - replicas: {{ .Values.snapshot.snapshotController.replicas }} - selector: - matchLabels: - app: {{ .Values.snapshot.snapshotController.name }} - template: - metadata: -{{ include "azuredisk.labels" . | indent 6 }} - app: {{ .Values.snapshot.snapshotController.name }} -{{- with .Values.snapshot.snapshotController.podLabels }} -{{ toYaml . | indent 8 }} -{{- end }} - spec: - serviceAccountName: {{ .Values.serviceAccount.snapshotController }} - nodeSelector: - kubernetes.io/os: linux - priorityClassName: system-cluster-critical -{{- 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" - resources: {{- toYaml .Values.snapshot.snapshotController.resources | nindent 12 }} - imagePullPolicy: {{ .Values.snapshot.image.csiSnapshotController.pullPolicy }} -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml deleted file mode 100644 index d1a1e966ad..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azdrivernodes.yaml +++ /dev/null @@ -1,139 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.5.0 - creationTimestamp: null - name: azdrivernodes.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzDriverNode - listKind: AzDriverNodeList - plural: azdrivernodes - singular: azdrivernode - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Name of the Node which this AzDriverNode object represents. - jsonPath: .spec.nodeName - name: NodeName - type: string - - description: Indicates if the azure persistent volume driver is ready for new - pods which use azure persistent volumes. - jsonPath: .status.readyForVolumeAllocation - name: ReadyForVolumeAllocation - type: boolean - - description: Represents the time stamp at which azure persistent volume driver - sent a heatbeat. - jsonPath: .status.lastHeartbeatTime - name: LastHeartbeatTime - type: date - - description: A brief node status message. - jsonPath: .status.statusMessage - name: StatusMessage - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: AzDriverNode is a representation of a node, where azure CSI driver - node plug-in runs. - 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 - metadata: - type: object - spec: - description: spec defines the desired state of a AzDriverNode. Required. - properties: - nodeName: - description: Name of the node which this AzDriverNode represents. - Required. - type: string - required: - - nodeName - type: object - status: - description: status represents the current state of AzDriverNode. If this - is nil or empty, clients should prefer other nodes for persistent volume - allocations or pod places for pods which use azure persistent volumes. - properties: - conditions: - description: Conditions contains an array of generic AzDriver related - health conditions These conditions can be used programmatically - to take decisions - items: - description: AzDriverCondition defines condition for the AzDriver - properties: - lastHeartbeatTime: - description: Last time we got an update on a given condition. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transit from one status - to another. - format: date-time - type: string - message: - description: Human readable message indicating details about - last transition. - type: string - reason: - description: (brief) reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of node condition. - type: string - required: - - status - - type - type: object - type: array - lastHeartbeatTime: - description: LastHeartbeatTime represents the timestamp when a heatbeat - was sent by driver node plugin. A recent timestamp means that node-plugin - is responsive and is communicating to API server. Clients should - not solely reply on LastHeartbeatTime to ascertain node plugin's - health state. - format: date-time - type: string - readyForVolumeAllocation: - description: ReadyForVolumeAllocation tells client whether the node - plug-in is ready for volume allocation. If status is not present - or ReadyForVolumeAllocation, then clients should prefer other nodes - in the clusters for azure persistent volumes\pod placements for - pods with azure disks. - type: boolean - statusMessage: - description: StatusMessage is a brief status message regarding nodes - health This field should not be used for any decision making in - code It is for display/debug purpose only For code logic dependency, - use Conditions filed - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml deleted file mode 100644 index 956b274434..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumeattachments.yaml +++ /dev/null @@ -1,148 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.5.0 - creationTimestamp: null - name: azvolumeattachments.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzVolumeAttachment - listKind: AzVolumeAttachmentList - plural: azvolumeattachments - singular: azvolumeattachment - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The age of the attachment - jsonPath: .metadata.creationTimestamp - name: Age - type: date - - description: Name of the Node which this AzVolumeAttachment object is attached - to - jsonPath: .spec.nodeName - name: NodeName - priority: 10 - type: string - - description: Name of the volume which this AzVolumeAttachment object references - jsonPath: .spec.volumeName - name: VolumeName - priority: 10 - type: string - - description: Indicates if the volume attachment should be primary attachment - or not - jsonPath: .spec.role - name: RequestedRole - type: string - - description: Indicates if the volume attachment is primary attachment or not - jsonPath: .status.detail.role - name: Role - type: string - - description: Describes the previous volume attachment role - jsonPath: .status.detail.previous_role - name: PreviousRole - priority: 10 - type: string - - description: Indicates the state of the volume attachment - jsonPath: .status.state - name: State - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: AzVolumeAttachment is a specification for a AzVolumeAttachment - resource - 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 - metadata: - type: object - spec: - description: spec defines the desired state of a AzVolumeAttachment. Required. - properties: - nodeName: - type: string - role: - description: Role indicates if the volume attachment is replica attachment - or not - type: string - volume_context: - additionalProperties: - type: string - type: object - volume_id: - type: string - volumeName: - type: string - required: - - nodeName - - role - - volumeName - - volume_context - - volume_id - type: object - status: - description: status represents the current state of AzVolumeAttachment. - includes error, state, and attachment status Required - properties: - detail: - description: Status summarizes the current attachment state of the - volume attachment Nil Status indicates that the volume has not yet - been attached to the node - properties: - previous_role: - description: The previous attachment role. - type: string - publish_context: - additionalProperties: - type: string - type: object - role: - description: The current attachment role. - type: string - required: - - role - type: object - error: - description: Error occurred during attach/detach of volume - properties: - code: - type: string - message: - type: string - parameters: - additionalProperties: - type: string - type: object - required: - - code - - message - type: object - state: - description: State shows the current attachment state (whether operations - are in progress or not) - type: string - type: object - required: - - spec - type: object - served: true - storage: true - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml deleted file mode 100644 index 1dd8ed954f..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/disk.csi.azure.com_azvolumes.yaml +++ /dev/null @@ -1,229 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.5.0 - creationTimestamp: null - name: azvolumes.disk.csi.azure.com -{{ include "azuredisk.labels" . | indent 2 }} -spec: - group: disk.csi.azure.com - names: - kind: AzVolume - listKind: AzVolumeList - plural: azvolumes - singular: azvolume - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: Indicates the state of the volume - jsonPath: .status.state - name: State - type: string - - description: Indicates the phase of the underlying persistent volume - jsonPath: .status.detail.phase - name: Phase - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: AzVolume is a specification for an AzVolume resource - 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 - metadata: - type: object - spec: - description: spec defines the desired state of an AzVolume. Required. - properties: - accessibilityRequirements: - description: Specifies where the provisioned volume should be accessible. - properties: - preferred: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - requisite: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - type: object - capacityRange: - description: The capacity of the storage. - properties: - limit_bytes: - description: Volume MUST not be bigger than this. This field is - OPTIONAL. A value of 0 is equal to an unspecified field value. - The value of this field MUST NOT be negative. - format: int64 - type: integer - required_bytes: - description: Volume MUST be at least this big. This field is OPTIONAL. - A value of 0 is equal to an unspecified field value. The value - of this field MUST NOT be negative. - format: int64 - type: integer - type: object - contentVolumeSource: - description: The source of initial content for the volume. - properties: - content_source: - type: integer - content_source_id: - type: string - required: - - content_source - - content_source_id - type: object - maxMountReplicaCount: - description: The number of replicas attachments to maintain. This - value must be in the range [0..(maxShares - 1)]. If the volume access - mode is ReadWriteMany, the default is 0. Otherwise, the default - is maxShares - 1. - type: integer - parameters: - additionalProperties: - type: string - description: Parameters for the volume. - type: object - secrets: - additionalProperties: - type: string - description: Secrets for the volume. - type: object - volumeCapability: - description: The capabilities that the volume MUST have. - items: - properties: - access_mode: - description: This is a REQUIRED field. - type: integer - access_type: - description: Specifies the access type for the volume. - type: integer - fs_type: - description: The filesystem type. This field is OPTIONAL. An - empty string is equal to an unspecified field value. - type: string - mount_flags: - description: The mount options that can be used for the volume. - This field is OPTIONAL. `mount_flags` MAY contain sensitive - information. Therefore, the CO and the Plugin MUST NOT leak - this information to untrusted entities. The total size of - this repeated field SHALL NOT exceed 4 KiB. - items: - type: string - type: array - required: - - access_mode - - access_type - type: object - type: array - volumeName: - description: The disk name. - type: string - required: - - maxMountReplicaCount - - volumeCapability - - volumeName - type: object - status: - description: status represents the current state of AzVolume. includes - error, state, and volume status - properties: - detail: - description: Current status detail of the AzVolume Nil detail indicates - that the volume has not been created - properties: - accessible_topology: - items: - properties: - segments: - additionalProperties: - type: string - type: object - type: object - type: array - capacity_bytes: - format: int64 - type: integer - content_source: - properties: - content_source: - type: integer - content_source_id: - type: string - required: - - content_source - - content_source_id - type: object - node_expansion_required: - type: boolean - parameters: - additionalProperties: - type: string - type: object - volume_id: - type: string - required: - - capacity_bytes - - node_expansion_required - - volume_id - type: object - error: - description: Error occurred during creation/deletion of volume - properties: - code: - type: string - message: - type: string - parameters: - additionalProperties: - type: string - type: object - required: - - code - - message - type: object - persistentVolume: - description: The name of the PersistentVolume that corresponds to - the AzVolume instance. - type: string - state: - description: Current state of underlying volume - type: string - required: - - state - type: object - required: - - spec - - status - type: object - served: true - storage: true - subresources: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml deleted file mode 100644 index 3539818d7d..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/namespace-azure-disk-csi.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -{ - "apiVersion": "v1", - "kind": "Namespace", - "metadata": { - "name": "azure-disk-csi", - "labels": { - "name": "azure-disk-csi" - } - } -} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml deleted file mode 100644 index 7976595332..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,219 +0,0 @@ -{{- 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", "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"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes", "azvolumeattachments", "azvolumes"] - verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes/status", "azvolumeattachments/status", "azvolumes/status"] - verbs: ["get", "patch", "update"] - - apiGroups: ["rbac.authorization.k8s.io"] - resources: ["clusterroles"] - verbs: ["get", "patch", "update"] - - apiGroups: ["rbac.authorization.k8s.io"] - resources: ["clusterrolebindings"] - verbs: ["get", "patch", "update"] - - apiGroups: [""] - resources: ["serviceaccounts"] - verbs: ["get", "patch", "update"] - ---- - -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: ["apiextensions.k8s.io"] - resources: ["customresourcedefinitions"] - verbs: ["create", "get", "list", "watch", "delete"] - - 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 -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-controller-secret-binding -{{ include "azuredisk.labels" . | indent 2 }} -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/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml deleted file mode 100644 index 1aeac4eaa7..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-node.yaml +++ /dev/null @@ -1,44 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes"] - verbs: ["create", "get", "list", "watch", "patch", "update", "delete"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azvolumeattachments"] - verbs: ["get", "list", "watch", "update"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azvolumes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes/status", "azvolumeattachments/status"] - verbs: ["get", "patch", "update"] ---- -kind: ClusterRoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-node-secret-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-node-secret-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index 0459ece0e8..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,88 +0,0 @@ -{{- if .Values.rbac.create -}} ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-azuredisk-scheduler-extender-role -{{ include "azuredisk.labels" . | indent 2 }} -rules: - - apiGroups: [""] - resources: ["endpoints"] - verbs: ["create"] - - apiGroups: [""] - resourceNames: ["csi-azuredisk-scheduler-extender"] - resources: ["endpoints"] - verbs: ["get", "update"] - - apiGroups: [""] - resources: ["configmaps"] - verbs: ["get", "list", "watch"] - - apiGroups: ["", "events.k8s.io"] - resources: ["events"] - verbs: ["create", "patch", "update"] - - apiGroups: [""] - resources: ["nodes"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["pods"] - verbs: ["delete", "get", "list", "watch"] - - apiGroups: [""] - resources: ["bindings", "pods/binding"] - verbs: ["create"] - - apiGroups: [""] - resources: ["pods/status"] - verbs: ["patch", "update"] - - apiGroups: [""] - resources: ["replicationcontrollers", "services"] - verbs: ["get", "list", "watch"] - - apiGroups: ["apps", "extensions"] - resources: ["replicasets"] - verbs: ["get", "list", "watch"] - - apiGroups: ["apps"] - resources: ["statefulsets"] - verbs: ["get", "list", "watch"] - - apiGroups: ["policy"] - resources: ["poddisruptionbudgets"] - verbs: ["get", "list", "watch"] - - apiGroups: [""] - resources: ["persistentvolumeclaims"] - verbs: ["get", "list", "watch", "patch", "update"] - - apiGroups: [""] - resources: ["persistentvolumes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["authorization.k8s.io"] - resources: ["subjectaccessreviews", "tokenreviews"] - verbs: ["create"] - - apiGroups: [""] - resources: ["namespaces"] - verbs: ["get", "list", "watch"] - - apiGroups: ["storage.k8s.io"] - resources: ["storageclasses", "csinodes", "csistoragecapacities", "csidrivers"] - verbs: ["get", "list", "watch"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - verbs: ["create"] - - apiGroups: ["coordination.k8s.io"] - resources: ["leases"] - resourceNames: ["csi-azuredisk-scheduler-extender"] - verbs: ["get", "update"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azdrivernodes"] - verbs: ["get", "list", "watch"] - - apiGroups: ["disk.csi.azure.com"] - resources: ["azvolumeattachments"] - verbs: ["get", "list", "watch"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: csi-azuredisk-scheduler-extender-role-binding -{{ include "azuredisk.labels" . | indent 2 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: csi-azuredisk-scheduler-extender-role -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.schedulerExtender }} - namespace: {{ .Release.Namespace }} -{{ end }} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml deleted file mode 100644 index e91e1591fa..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/rbac-csi-snapshot-controller.yaml +++ /dev/null @@ -1,76 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.rbac.create -}} -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-role -{{ include "azuredisk.labels" . | indent 2 }} -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-{{ .Values.rbac.name }}-snapshot-controller-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-snapshot-controller-role - apiGroup: rbac.authorization.k8s.io - ---- -kind: ClusterRole -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: csi-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-role -{{ include "azuredisk.labels" . | indent 2 }} -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-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-binding -{{ include "azuredisk.labels" . | indent 2 }} -subjects: - - kind: ServiceAccount - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -roleRef: - kind: ClusterRole - name: csi-{{ .Values.rbac.name }}-snapshot-controller-leaderelection-role - apiGroup: rbac.authorization.k8s.io -{{ end }} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml deleted file mode 100644 index 08bd06cda5..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.controller }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml deleted file mode 100644 index 941f3eb92c..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-node.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.node }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml deleted file mode 100644 index f7e56fb0d6..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-azuredisk-scheduler-extender.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.schedulerExtender }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml deleted file mode 100644 index 02fa54c2a3..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/templates/serviceaccount-csi-snapshot-controller.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if and .Values.snapshot.enabled .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ .Values.serviceAccount.snapshotController }} - namespace: {{ .Release.Namespace }} -{{ include "azuredisk.labels" . | indent 2 }} -{{- end -}} diff --git a/charts/v2.0.0-beta.3/azuredisk-csi-driver/values.yaml b/charts/v2.0.0-beta.3/azuredisk-csi-driver/values.yaml deleted file mode 100644 index 13baec5979..0000000000 --- a/charts/v2.0.0-beta.3/azuredisk-csi-driver/values.yaml +++ /dev/null @@ -1,276 +0,0 @@ -image: - baseRepo: mcr.microsoft.com - azuredisk: - repository: /oss/kubernetes-csi/azuredisk-csi - tag: v2.0.0-beta.3 - pullPolicy: IfNotPresent - csiProvisioner: - repository: /oss/kubernetes-csi/csi-provisioner - tag: v3.1.0 - pullPolicy: IfNotPresent - csiAttacher: - repository: /oss/kubernetes-csi/csi-attacher - tag: v3.4.0 - pullPolicy: IfNotPresent - csiResizer: - repository: /oss/kubernetes-csi/csi-resizer - tag: v1.4.0 - pullPolicy: IfNotPresent - curl: - repository: /oss/kubernetes/kubectl - tag: v1.21.2 - pullPolicy: IfNotPresent - livenessProbe: - repository: /oss/kubernetes-csi/livenessprobe - tag: v2.5.0 - pullPolicy: IfNotPresent - nodeDriverRegistrar: - repository: /oss/kubernetes-csi/csi-node-driver-registrar - tag: v2.4.0 - pullPolicy: IfNotPresent - schedulerExtender: - repository: /oss/kubernetes-csi/azdiskschedulerextender-csi - tag: v2.0.0-beta.3 - pullPolicy: IfNotPresent - kubeScheduler: - repository: /oss/kubernetes/kube-scheduler - tag: v1.21.2 - 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 - schedulerExtender: csi-azuredisk-scheduler-extender-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 - replicas: 2 - metrics: - port: 29604 - service: - enabled: false - monitor: - enabled: false - livenessProbe: - healthPort: 29602 - runOnMaster: false - disableAvailabilitySetNodes: true - provisionerWorkerThreads: 40 - attacherWorkerThreads: 500 - logLevel: 5 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - hostNetwork: true # this setting could be disabled if controller does not depend on MSI setting - podLabels: {} - 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: 100Mi - 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 - allowEmptyCloudConfig: true - maxUnavailable: 1 - metrics: - port: 29605 - logLevel: 5 - livenessProbe: - healthPort: 29603 - -schedulerExtender: - name: csi-azuredisk-scheduler-extender - replicas: 2 - metrics: - port: 29606 - service: - enabled: false - monitor: - enabled: false - servicePort: 8889 - tolerations: - - key: "node-role.kubernetes.io/master" - operator: "Exists" - effect: "NoSchedule" - - key: "node-role.kubernetes.io/controlplane" - operator: "Exists" - effect: "NoSchedule" - -snapshot: - enabled: false - createCRDs: true - name: csi-snapshot-controller - image: - csiSnapshotter: - repository: /oss/kubernetes-csi/csi-snapshotter - tag: v5.0.1 - pullPolicy: IfNotPresent - csiSnapshotController: - repository: /oss/kubernetes-csi/snapshot-controller - tag: v5.0.1 - pullPolicy: IfNotPresent - snapshotController: - name: csi-snapshot-controller - replicas: 2 - podLabels: {} - resources: - limits: - memory: 100Mi - requests: - cpu: 10m - memory: 20Mi - -feature: - enableFSGroupPolicy: true - -driver: - name: disk.csi.azure.com - objectNamespace: "azure-disk-csi" # The namespace where driver related custom resources are created - # 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" - -linux: - enabled: true - dsName: csi-azuredisk-node # daemonset name - kubelet: /var/lib/kubelet - distro: debian # available values: debian, fedora - enablePerfOptimization: true - tolerations: - - operator: "Exists" - hostNetwork: true # this setting could be disabled if perfProfile is `none` - podLabels: {} - 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: 200Mi - requests: - cpu: 10m - memory: 20Mi - -windows: - enabled: true - dsName: csi-azuredisk-node-win # daemonset name - kubelet: 'C:\var\lib\kubelet' - tolerations: - - key: "node.kubernetes.io/os" - operator: "Exists" - effect: "NoSchedule" - podLabels: {} - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: type - operator: NotIn - values: - - virtual-kubelet - resources: - livenessProbe: - limits: - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - nodeDriverRegistrar: - limits: - memory: 200Mi - requests: - cpu: 10m - memory: 20Mi - azuredisk: - limits: - memory: 400Mi - requests: - cpu: 10m - memory: 20Mi - -cloud: AzurePublicCloud - -storageClasses: - create: true - enableZRS: false - enableUltraSSD: false - storageClassNames: - standardLRS: "azuredisk-standard-hdd-lrs" - standardSSDLRS: "azuredisk-standard-ssd-lrs" - standardSSDZRS: "azuredisk-standard-ssd-zrs" - premiumLRS: "azuredisk-premium-ssd-lrs" - premiumZRS: "azuredisk-premium-ssd-zrs" - ultraSSDLRS: "azuredisk-ultra-ssd-lrs" - - -## 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" \ No newline at end of file diff --git a/charts/v2.0.0-beta.4/azuredisk-csi-driver-v2.0.0-beta.4.tgz b/charts/v2.0.0-beta.4/azuredisk-csi-driver-v2.0.0-beta.4.tgz deleted file mode 100644 index 065d049f85678bb1e4c21980cf9f5e4e861d54e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19124 zcmZ6SV{m3s)2?Hi6K7(ZPi))v#I}=(Z97kFo0DW>+qUiG%=^~&)j4(ck5#Ms-s{({ z+TE+~tBImuFhKtEd{cwa8c8ZMnMlfU$a-?K8?&l2nX0f`YO8Q_D5$G*$Z6PE8QGb7 zsw&y@Nt)T%f?RZaYv4(>P-^?1s|+T3mt4#jq5N=Yy}AR4fU6BrU~``?j>B8Lcm;%WuK~u<6N(J5Bq%>Q+{DM-GsNf=?dY;CE@L?OE^y) z8b)A$xj)|`gbnQWZ{>bnJ8(^WySH_=K5tHKUG;B`2c<#Ry7k~)U0h%Fejp)U7e9wm zVxZk$hq_3i&P>W9LkryMPNHC z3Sk^!(uosq4`FOsf40;Pz&gO81s4J@5!6m`(WdWgs{N3Jw|fow9n(l%0DLBQzk@(% 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