Commit Graph

28 Commits

Author SHA1 Message Date
Mehran Kholdi
5397774ce6 Publish under Apache License 2.0 2020-06-12 02:31:02 +04:30
Mehran Kholdi
b2c4b77911 Implement STAGE_UNSTAGE_VOLUME capability
Summary: Before this, we directly mounted the the rawfile on the mountpoint. In this revision the `STAGE_UNSTAGE_VOLUME` capability is implemented, meaning that the volume is first mounted to a staging path, and then `bind`-mounted to the actual path. This way we can free up loopback devices when they are not needed.

Test Plan:
- Create a pvc, and use it inside a pod
- Run `losetup -l` on the node running the pod, and assert the creation of a loop device
- Delete the pod, but not the pvc
- Run `losetup -l` on the same node, and assert the removal of the loop device

Reviewers: h.marvi, bghadiri

Differential Revision: https://phab.hamravesh.ir/D806
2020-05-31 13:23:10 +04:30
Mehran Kholdi
f557aef8ec Pin base image version
We rely on the output format of some command line tools, and hence
need to know we're getting the same version of them.
2020-05-31 13:20:15 +04:30
Mehran Kholdi
46bd3565a0 Use immutable tags for running tasks
This way we can run tasks with `IfNotPresent` and be sure it works as intended.
2020-05-29 21:04:40 +04:30
Mehran Kholdi
0ab1e393fc Fix typo 2020-05-29 21:04:20 +04:30
Mehran Kholdi
a51305e878 Push official images to dockerhub 2020-05-29 21:04:20 +04:30
Mehran Kholdi
b49f8304f5 Add component label to controller service 2020-05-03 19:28:55 +04:30
Mehran Kholdi
87dd918a74 Update ServiceMonitor to chart 2020-04-28 22:54:38 +04:30
Mehran Kholdi
a6a859fc0e Add installation and usage instructions to readme 2020-04-28 22:54:38 +04:30
Mehran Kholdi
a2fdcb9756 Deploy controller using statefulset instead of deployment
So that no two controllers are running simultaneously.
2020-04-28 22:54:38 +04:30
Mehran Kholdi
420b0f4ff7 Create helm chart 2020-04-28 22:54:38 +04:30
Mehran Kholdi
336f72a3c9 Cleanup manifests 2020-04-26 02:02:00 +04:30
Mehran Kholdi
974ad321a9 Hardcode block size as 512 instead of using blksize!
See: https://stackoverflow.com/a/3212102/585678
See: https://stackoverflow.com/a/12952830/585678
2020-04-26 02:02:00 +04:30
Mehran Kholdi
9deaefc203 Implement basic metrics 2020-04-26 02:02:00 +04:30
Mehran Kholdi
c9da83b19b Setup loopback devices using Direct I/O 2020-04-26 02:01:42 +04:30
Mehran Kholdi
dcc2210b3c Handle attaching loop devices instead of handing it to mount
* So that we can pass extra loop options like Direct I/O
* To workaround an issue with loop device files not getting
automatically created
2020-04-26 02:01:42 +04:30
Mehran Kholdi
c500df8ca2 Delete task pods upon successful completion 2020-04-26 01:37:23 +04:30
Mehran Kholdi
4ec6acf731 Store metadata file 2020-04-26 01:37:23 +04:30
Mehran Kholdi
373c43fa0e Add simple validations to CreateVolume request 2020-04-26 01:37:23 +04:30
Mehran Kholdi
9de82a9b47 Allocate new volumes remotely 2020-04-26 01:37:23 +04:30
Mehran Kholdi
73a618228b Temp: Disable python buffering
So that we can debug based on stdout
2020-04-26 01:37:23 +04:30
Mehran Kholdi
da2856237b Switch from alpine base to debian
So that python requirements could be installed from wheels.
2020-04-26 01:37:23 +04:30
Mehran Kholdi
0dec2f269b Add README 2020-04-26 01:37:22 +04:30
Mehran Kholdi
18abfa1ec4 Configure CI 2020-04-24 19:35:37 +04:30
Mehran Kholdi
6f23dbe067 Initial PoC of the csi driver 2020-04-24 19:35:37 +04:30
Mehran Kholdi
98139d428e Autogen csi grpc interface
Proto taken from:
https://github.com/container-storage-interface/spec/blob/master/csi.proto

Compiled using:
`python -m grpc_tools.protoc -I./protos --python_out=./csi/ --grpc_python_out=./csi/ protos/csi.proto`
2020-04-24 00:08:36 +04:30
Mehran Kholdi
6ac237abb8 Autogen python gitignore 2020-04-23 04:18:53 +04:30
Mehran Kholdi
7df7dc3ee5 Initial commit 2020-04-23 04:13:33 +04:30