What is the right way to integrate with Openstack

Hello,
I’m trying to provision k8s cluster with Openstack. I can create cluster using Node Driver.
The problem is when I try to add cloud provider using doc from:

Rancher Docs: OpenStack Cloud Provider

and create storage class with cinder:

apiVersion: storage.k8s.io/v1
kind: StorageClass
parameters:
  availability: nova
provisioner: kubernetes.io/cinder
reclaimPolicy: Delete
volumeBindingMode: Immediate

I can not create the volume:
The storage class show as: Openstack Cinder Volume (Unsupported)
The cluster event: Waiting for a volume to be created, either by external provisioner “cinder.csi.openstack.org” or manually created by system administrator

Another option is going with external cloud provider (as preferred way in k8s) using this doc:

https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md

With it I can create cinder volume but the storage class and volume are not show on Rancher UI.

So what is the right way to work with Openstack? Can you please provide any more detail documentation about it?

Thank you,
Tan