Closed Ruakij closed 1 year ago
Does this need a document change?
It doesnt change existing stuff, but the new features should of course get proper documentation. Some other stuff is also missing documentation, like available parameters for StorageClass or PersistentVolume.
I could start and create a first documentation how to use it and how to inject topology-info. Think its a good idea to create new Readme-files and structure them? (Am not a fan of the Github Wiki as its technically not "inside" the git-repo)
Yes, please help to document. Maybe just append a section to the main README.md file for now.
I have restructured the Readme a little bit, added an index as its getting quite long and have added documentation for DataLocality.
If you dont like the spaces between sections, feel free to remove them.
DataLocality (inspired by Longhorn) allows instructing the storage-driver which volume-locations will be used or preferred in Pods to read & write.
It auto-sets mount-options based on the location a pod is scheduled in and the locality-option wanted. The option can be set and overridden in Deployment, StorageClass and PersistentVolume.
Currently only 2 options exist:
None
changes nothing and is the defaultwrite_preferLocalDc
sets theDataCenter
-mount-option to the current Node-DataCenter, making writes local and reads wherever the data is.Unfortunately Kubernetes doesnt allow grabbing node-labels, which contain well-known region-labels, and setting them as environment-variables. The DownwardAPI is very limited in that regard. (see #40610)
Therefore i have modified the helm-chart to include a workaround using KubeMod based on this comment. More explanations in
deploy/helm/seaweed-csi-driver/values.yml
in the keynode.injectTopologyInfoFromNodeLabel
If this isnt wanted, feel free to remove it.