virtual cloud director Container Storage Interface for kubernetes
CSI for vCloud director, it uses independent disks for volume and attach/detach it.
inspired by https://github.com/flant/yandex-csi-driver
kubectl label node nod1 failure-domain.beta.kubernetes.io/zone=some-vdc
- create rbac```bashkubectl apply -f deploy/rbac.yaml
kubectl apply -f deploy/controller.yaml
apiVersion: storage.k8s.io/v1beta1
kind: StorageClass
metadata:
name: base-hdd
annotations:
storageclass.kubernetes.io/is-default-class: “true”
provisioner: vcd.csi.fght.net
parameters:
vcd: some-vdc
storageProfile: hdd
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
- edit node daemon set deploy/ds.yaml```bashaffinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: "topology.kubernetes.io/zone"operator: Invalues:- "some-vdc"
and for csi-node
- name: VCSI_NODEVDCvalue: some-vdc
csi controller uses env vars for config, you can find it at vars.MD
parameter for storage profile must be definened at storage class creation
VCSI_VDCS=vcd-1,vcd-2 at secretKubeletPluginsWatcher=true,CSINodeInfo=true,CSIDriverRegistry=trueIts hard to link attacheted to VM disk, currently there is filter:
list matched by unit number for PCI: bus, it must contain unit number
from vm setting
so unit numbers from 8 to 15 reserved for all controllers.
But there can be collisions, so whats the solution? use different vm for disk or change disk size..
Unfortunately Bus number at VM settings isnt reliable. Looking for best solution.
make test
https://github.com/kubernetes-csi/csi-test/blob/master/pkg/sanity/README.md