Unverified Commit 66390f76 authored by Cyrill Troxler's avatar Cyrill Troxler Committed by GitHub
Browse files

Merge pull request #1 from CTrox/s3backer_mounter

Add s3backer mounter
parents 108364fb 87da8c6d
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -158,6 +158,12 @@
  packages = ["."]
  revision = "3864e76763d94a6df2f9960b16a20a33da9f9a66"

[[projects]]
  branch = "master"
  name = "github.com/mitchellh/go-ps"
  packages = ["."]
  revision = "4fdf99ab29366514c69ccccddab5dc58b8d84062"

[[projects]]
  name = "github.com/onsi/ginkgo"
  packages = [
@@ -372,6 +378,6 @@
[solve-meta]
  analyzer-name = "dep"
  analyzer-version = 1
  inputs-digest = "659f47734b56af7fba146039231841e82cc4c3c95dff2814ec3688e967790a50"
  inputs-digest = "a655e5231fe7b5c962579c8f032338c53177a95a3160bef4628f0761f714f730"
  solver-name = "gps-cdcl"
  solver-version = 1
+4 −0
Original line number Diff line number Diff line
@@ -41,3 +41,7 @@
[[constraint]]
  name = "gopkg.in/ini.v1"
  version = "1.38.1"

[[constraint]]
  branch = "master"
  name = "github.com/mitchellh/go-ps"
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ test:
	docker build -t $(TEST_IMAGE_TAG) -f test/Dockerfile .
	docker run --rm --privileged -v $(PWD):$(PROJECT_DIR):ro -v /dev:/dev $(TEST_IMAGE_TAG)
container: build
	docker build -t $(IMAGE_TAG) -f cmd/s3driver/Dockerfile.s3ql .
	docker build -t $(IMAGE_TAG) -f cmd/s3driver/Dockerfile .
push: container
	docker push $(IMAGE_TAG)
clean:
+9 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ As seen in the deployment example above, the driver can be configured to use one
* [s3fs](https://github.com/s3fs-fuse/s3fs-fuse)
* [goofys](https://github.com/kahing/goofys)
* [s3ql](https://github.com/s3ql/s3ql)
* [s3backer](https://github.com/archiecobbs/s3backer)

All mounters have different strengths and weaknesses depending on your use case. Here are some characteristics which should help you choose a mounter:

@@ -98,6 +99,14 @@ All mounters have different strengths and weaknesses depending on your use case.
* Supports compression before upload
* Supports encryption before upload

### s3backer
* Represents a block device stored on S3
* Allows to use a real filesystem
* Files are not readable with other S3 clients
* Support appends
* Supports compression before upload (Not yet implemented in this driver)
* Supports encryption before upload (Not yet implemented in this driver)

# Limitations
As S3 is not a real file system there are some limitations to consider here. Depending on what mounter you are using, you will have different levels of POSIX compability. Also depending on what S3 storage backend you are using there are not always consistency guarantees. The detailed limitations can be found on the documentation of [s3fs](https://github.com/s3fs-fuse/s3fs-fuse#limitations) and [goofys](https://github.com/kahing/goofys#current-status).

+24 −2
Original line number Diff line number Diff line
FROM debian:stretch
FROM golang:stretch
LABEL maintainers="Cyrill Troxler <cyrilltroxler@gmail.com>"
LABEL description="s3 fuse csi plugin"

RUN apt-get update && apt-get install -y s3fs && rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y \
  s3fs \
  build-essential \
  autoconf \
  libcurl4-openssl-dev \
  libfuse-dev \
  libexpat1-dev \
  libssl-dev \
  zlib1g-dev \
  xfsprogs \
  psmisc \
  git && \
  rm -rf /var/lib/apt/lists/*

# Compile & install s3backer
RUN git clone https://github.com/archiecobbs/s3backer.git ./s3backer

WORKDIR "./s3backer"

RUN ./autogen.sh && \
    ./configure && \
    make && \
    make install

COPY ./_output/s3driver /s3driver
ENTRYPOINT ["/s3driver"]
Loading