Giter Club home page Giter Club logo

csi-sshfs's Introduction

Container Storage Interface Driver for SSHFS

Warning: This is only a proof of concept and is not actively maintained. It should not be used in production environments!

This repository contains the CSI driver for SSHFS. It allows to mount directories using a ssh connection.

Usage

Deploy the whole directory deploy/kubernetes. This installs the csi controller and node plugin and a appropriate storage class for the csi driver.

kubectl apply -f deploy/kubernetes

To use the csi driver create a persistent volume and persistent volume claim like the example one:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: data-sshfs
  labels:
    name: data-sshfs
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 100Gi
  storageClassName: sshfs
  csi:
    driver: csi-sshfs
    volumeHandle: data-id
    volumeAttributes:
      server: "<HOSTNAME|IP>"
      port: "22"
      share: "<PATH_TO_SHARE>"
      privateKey: "<NAMESPACE>/<SECRET_NAME>"
      user: "<SSH_CONNECT_USERNAME>"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data-sshfs
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 100Gi
  storageClassName: sshfs
  selector:
    matchLabels:
      name: data-sshfs

Then mount the volume into a pod:

apiVersion: v1
kind: Pod
metadata:
  name: nginx 
spec:
  containers:
  - image: maersk/nginx
    imagePullPolicy: Always
    name: nginx
    ports:
    - containerPort: 80
      protocol: TCP
    volumeMounts:
      - mountPath: /var/www
        name: data-sshfs
  volumes:
  - name: data-sshfs
    persistentVolumeClaim:
      claimName: data-sshfs

csi-sshfs's People

Contributors

anthonynashduco avatar chr-fritz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

csi-sshfs's Issues

connection reset by peer

Could you elaborate on step-by-step, especially the ssh-privatekey field (I suspect this is where it fails), not sure why I get an error, my key works when doing a normal sshfs command outside of docker/kube, but in Kube I get:

Warning FailedMount 2s kubelet MountVolume.SetUp failed for volume "data-sshfs" : rpc error: code = Internal desc = mounting failed: exit status 1 cmd: 'sshfs [email protected]:/home/ubuntu /var/lib/kubelet/pods/e49db8e1-8b9f-485b-96cc-18f3121997c8/volumes/kubernetes.io~csi/data-sshfs/mount -o port=22 -o IdentityFile=/tmp/pk-635769383 -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=/dev/null' output: "read: Connection reset by peer\n
Also, is there a way to have more/better debugging from kubectl logs when pod is created?

I feel it almost works but I can't see why not

Doesn't seem to work on k8s 1.22

*csi-controller-sshfs-0 csi-attacher E0909 12:09:29.664087 1 reflector.go:134] k8s.io/client-go/informers/factory.go:132: Failed to list v1beta1.VolumeAttachment: the server could not find the requested resource

Since project is not maintained this is more of a point of reference for other people to know there might be an issue trying to run this.

Port is not used

Hey, I've just been trying a mount and have realised that port is not being used at all. I think this would be a very quick fix. Any chance?

Many thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.