Vsphere CSI migration

Hi there,

I would like some help. I migrate my cluster from 1.20 to 1.25.
Here is the details :

Cluster information:

Kubernetes version: 1.25.11
Cloud being used: bare-metal
Installation method: kubeadm
Host OS: RHEL 9.2
CNI and version: Calico 3.25
CRI and version: containerd 1.6.21

I have 3 CP and 3 Workers. All are VMs on ESXi (v8.0.0). I’m using Vsphere for management (v8.0.0).

At first (k8s 1.20), I configured the cluster to use vsphere volume. Everything was working as expected.
With the migration to 1.25, I discovered the new CSI migration. One of my deployments use two PVC (vsphere volume) and is now stuck because the PVC won’t attach.

I followed the step by step tutorail here : Preparing for Installation of vSphere Container Storage Plug-in

All pods from vmware-system-csi namespace are running but in the logs I see errors like this :
Error processing “csi-116d4280341c1403c829d1f390763be7c69384aa80a0ba7e3bd4144d1d9139ad”: failed to detach: rpc error: code = Internal desc = failed to get VolumeID from volumeMigrationService for volumePath: “[ESX1-datastore] kubevols/kubernetes-dynamic-pvc-74f53813-c4e1-4613-9db0-08211a7bf9ec.vmdk”

All my VMs has the UUID enabled and one SCSI controller “VMware Paravirtual”

Can you help me ?

Here is the csi-vsphere.conf file for the secret.

[Global]
user = "administrator@vsphere.local"
password = "XXXXX"
port = "443"
insecure-flag = "1"

[VirtualCenter "172.16.1.101"]
datacenters = "mlr-lab"

[Workspace]
server = "172.16.1.101"
datacenter = "mlr-lab"
default-datastore = "ESX1-datastore"
resourcepool-path = "mlr-lab/Resources"
folder = "PVC-K8S"

[Disk]
scsicontrollertype = pvscsi

[Network]
public-network = "LAN Network"

The storage class :

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: example-vanilla-file-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: 'false'
provisioner: csi.vsphere.vmware.com
parameters:
  datastore: ESX1-datastore
  diskformat: thin
  fstype: xfs
reclaimPolicy: Delete
volumeBindingMode: Immediate

And a sample PVC :

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: calibre-pv-config-claim
  labels:
    app: calibre
  annotations:
    pv.kubernetes.io/bound-by-controller: 'yes'
    volume.beta.kubernetes.io/storage-provisioner: csi.vsphere.vmware.com
    volume.kubernetes.io/storage-provisioner: csi.vsphere.vmware.com
  finalizers:
    - kubernetes.io/pvc-protection
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 500Mi
  storageClassName: example-vanilla-file-sc
  volumeMode: Filesystem
status:
  phase: Pending

Hi there.

Ok I surely missed something. Retry the documentation from the beginning and everything ok now.

Thank you