flowchart TB
s3_fs[S3 FS]
ftp_fs[Ftp FS]
local_fs[Local FS]
webdav_fs[WebDAV FS]
fsi(FileSystem Inteface)
ftp_fs & s3_fs & webdav_fs & local_fs --> fsi
webdav_server[WebDAV Server]
ftp_server[Ftp Server]
fuse_fs[Fuse Fs]
go_code[Go code]
fsi -->|mount| fuse_fs
fsi -->|direct| go_code
fsi -->|serve| ftp_server
fsi -->|serve| webdav_server
ftp://<username>:<password>@<host>[<bath_path>]
webdav://<username>:<password>@<host>[<bath_path>][?insecure=true]
s3://<access_key_id>:<access_key_secret>@<host>/<bucket>[<bath_path>][?insecure=true]
file://<absolute_path>
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: unifs
provisioner: csi-driver.unifs.octohelm.tech
parameters:
csi.storage.k8s.io/provisioner-secret-name: "${pvc.name}"
csi.storage.k8s.io/provisioner-secret-namespace: "${pvc.namespace}"
csi.storage.k8s.io/node-publish-secret-name: "${pvc.name}"
csi.storage.k8s.io/node-publish-secret-namespace: "${pvc.namespace}"
reclaimPolicy: Delete
---
apiVersion: v1
kind: Secret
metadata:
name: fuse-file
namespace: storage-system--unifs
type: Opaque
stringData:
backend: file:///data/unifs
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: fuse-file
namespace: storage-system--unifs
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: unifs
volumeMode: Filesystem
---
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
namespace: storage-system--unifs
spec:
volumes:
- name: pv-storage
persistentVolumeClaim:
claimName: fuse-file
containers:
- name: web
image: nginx
ports:
- containerPort: 80
name: "http"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: pv-storage