https://github.com/xetdata/k8s-csi-xetfs
Kubernetes Container Storage Interface Plugin for XetHub
https://github.com/xetdata/k8s-csi-xetfs
Last synced: about 1 year ago
JSON representation
Kubernetes Container Storage Interface Plugin for XetHub
- Host: GitHub
- URL: https://github.com/xetdata/k8s-csi-xetfs
- Owner: xetdata
- License: bsd-3-clause
- Created: 2023-11-16T21:32:05.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-16T18:05:47.000Z (over 1 year ago)
- Last Synced: 2025-03-24T22:51:19.587Z (about 1 year ago)
- Language: Rust
- Size: 69.3 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](http://unmaintained.tech/)
# [DEPRECATED] k8s-csi-xetfs
**_XetHub has joined [Hugging Face 🤗](https://huggingface.co/blog/xethub-joins-hf). Follow our work to improve large scale collaboration on [Hugging Face Hub](https://huggingface.co/xet-team)._**
----
Kubernetes Container Storage Interface Plugin for XetHub. This plugin enables mounting and accessing XetHub repository from Kubernetes by implementing [CSI specification](https://github.com/container-storage-interface/spec/blob/master/spec.md)
### csi plugin name: `csi.xethub.xetdata.com`
### Project status: alpha
## Container Images & Kubernetes Compatibility
| driver version | Image | supported k8s version |
|----------------|---------------------------------------|-----------------------|
| main branch | docker.io/xethub/k8s-csi-xetfs:latest | 1.25+ |
## Features
Since this plugin is in alpha version, it supports minimal set of features provided by CSI spec.
- Single-pod read-only access mode
- Only supports [CSI ephemeral storage](https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#csi-ephemeral-volumes)
## Example usage
This repository contains an example python application under [example](./example) directory that uses XetHub CSI driver to mount `Flickr30k` [repository](https://xethub.com/XetHub/Flickr30k), reads all the files and prints out the total size of the repository. Start the example application by running the following commands:
```bash
kubectl apply -f - <
#commit: main
#nodePublishSecretRef:
#name:
EOF
```
## Driver Parameters
| Name | Meaning | Example | Mandatory | Default value |
|---------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|--------------------------------------------|---------------|
| volumeAttributes.repo | URL to the repository to mount | https://xethub.com/XetHub/Flickr30k.git | Yes | |
| volumeAttributes.commit | Commit SHA or branch name to mount from the repository | main | Yes | |
| nodePublishSecretRef.name | Secret name that stores `user` and `pat` value for mounting private repository (See [secret.yaml.template](deploy/secret.yaml.template) for more details | existing Kubernetes secret name | No (yes for mounting private repositories) | |
## Install driver on a Kubernetes cluster via kubectl
### Option 1: remote install
```bash
curl -skSL https://raw.githubusercontent.com/xetdata/k8s-csi-xetfs/main/deploy/install-driver.sh | bash -s main --
```
### Option 2: local install
```bash
git clone git@github.com:xetdata/k8s-csi-xetfs.git
cd k8s-csi-xetfs
./deploy/install-driver.sh main local
```
### After installing
- Check pod status
```bash
kubectl -n kube-system get pod -o wide -l app= kubectl -n kube-system get pod -o wide -l app=csi-blob-node
```
- Example output
```bash
NAME READY STATUS RESTARTS AGE IP NODE
xet-csi-node-zvfj9 3/3 Running 0 5m59s 192.168.49.2 minikube
```
## Uninstall driver on a Kubernetes cluster
### Option 1: remote uninstall
```bash
curl -skSL https://raw.githubusercontent.com/xetdata/k8s-csi-xetfs/main/deploy/uninstall-driver.sh | bash -s main --
```
### Option 2: local uninstall
```bash
git clone git@github.com:xetdata/k8s-csi-xetfs.git
cd k8s-csi-xetfs
./deploy/uninstall-driver.sh main local
```