gitpod-io/leeway

Support more remote cache destinations

Opened this issue · 1 comments

From what I've gathered in

leeway/cmd/root.go

Lines 177 to 189 in 1d0912e

case "GCP":
return leeway.GSUtilRemoteCache{
BucketName: remoteCacheBucket,
}
case "MINIO":
return leeway.MinioRemoteCache{
BucketName: remoteCacheBucket,
}
default:
return leeway.GSUtilRemoteCache{
BucketName: remoteCacheBucket,
}
}

there are only two cache storage providers: GCS and MINIO. I would love to see the adoption of more services, but I understand the potential hassle and the size of this request. With that said, I think something that could help is https://github.com/rclone/rclone. It supports like, everything out there and could be used to store the remote cache on not just standard services like Azure Blob Storage or AWS S3, but also places which everyone has access too, like Google Drive, OneDrive and others.

In addition to all of these, rclone also supports custom FTP and HTTP remotes, which some folks would for sure appreciate being options. I've been using rclone for about 2 years now and had an awesome experience with it, it's very easy to deal with.

Drawbacks

The biggest con of implementing rclone specifically is the fact it is a CLI, not a library, which could limit us in some ways (such as error reporting and checking).

AFAIR we looked into rclone for incremental backups (cc @meysholdt). To properly prioritize, it would help to outline what actual benefits an additional implementation would provide to users in comparison to the existing ones.