<p>I am a bit confused about how CSI should work in k8s.</p>
<p>What I would like to do is to setup Veeam Kasten backups in my k8s cluster. When I run precheck for Kasten installation - <code>curl https://docs.kasten.io/tools/k10_primer.sh | bash </code> it shows also the fallowing error:</p>
<pre><code>  Missing/Failed to Fetch CSIDriver Object
  CSI Provisioner doesn't have VolumeSnapshotClass  -  Error
</code></pre>
<p>My cluster resides in Azure AKS. The storage classes I see are these:</p>
<pre><code>NAME                    PROVISIONER                                     RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
azurefile               file.csi.azure.com                              Delete          Immediate              true                   19d
azurefile-csi           file.csi.azure.com                              Delete          Immediate              true                   88d
azurefile-csi-premium   file.csi.azure.com                              Delete          Immediate              true                   88d
azurefile-premium       file.csi.azure.com                              Delete          Immediate              true                   19d
default (default)       disk.csi.azure.com                              Delete          WaitForFirstConsumer   true                   88d
managed                 disk.csi.azure.com                              Delete          WaitForFirstConsumer   true                   19d
managed-csi             disk.csi.azure.com                              Delete          WaitForFirstConsumer   true                   88d
managed-csi-premium     disk.csi.azure.com                              Delete          WaitForFirstConsumer   true                   88d
managed-premium         disk.csi.azure.com                              Delete          WaitForFirstConsumer   true                   19d
nfs-client              cluster.local/nfs-subdir-external-provisioner   Delete          Immediate              true                   10d
</code></pre>
<p>I'm using mainly <code>default</code> storage class (my database is using that class and I really would like to back it up).</p>
<p>So I am using CSI provisioner. The error says it needs <code>VolumeSnapshotClass</code>. But should it be referenced in some other k8s object, like storage class? What I don't get is how it connects to each other.</p>
<p>Thank you for any clarifications.</p>
<p>[EDIT]</p>
<p>So I've added:</p>
<pre><code>apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
driver: disk.csi.azure.com
metadata:
  annotations:
    k10.kasten.io/is-snapshot-class: &quot;true&quot;
  name: csi-azure-disk-snapclass
deletionPolicy: Retain
</code></pre>
<p>and <code>CSI Provisioner doesn't have VolumeSnapshotClass  -  Error</code> error disappeared.
The only one which left is this one: <code>Missing/Failed to Fetch CSIDriver Object</code></p>

Murakami
<p>Answering my own question. I needed to add:</p>
<pre><code>apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
driver: disk.csi.azure.com
metadata:
  annotations:
    k10.kasten.io/is-snapshot-class: &quot;true&quot;
  name: csi-azure-disk-snapclass
deletionPolicy: Retain
</code></pre>
<p>According to this blog <a href="https://blog.kasten.io/protect-cloud-native-applications-on-hpe-ezmeral-with-kasten-k10" rel="nofollow noreferrer">https://blog.kasten.io/protect-cloud-native-applications-on-hpe-ezmeral-with-kasten-k10</a> <code>Missing/Failed to Fetch CSIDriver Object</code> can be ignored:</p>
<blockquote>
<p>The Missing/Failed to Fetch CSIDriver Object error can be ignored, as
not all the CSI implementations have CSIDriver Object</p>
</blockquote>
