-
Notifications
You must be signed in to change notification settings - Fork 0
Provision S3 buckets on cloudscale with cloudscale-SDK #78
Comments
I created a PoC that provisions buckets with Minio, for local testing. |
BTW: it doesn't look like cloudscale's SDK supports creating buckets. So for that we could re-use the logic to create the bucket from your POC. |
It's possible that we'll have to use a generic S3 client SDK to make buckets once an object user has been provisioned with a specific SDK. |
The minio-sdk can be used as a general purpose S3 client. It's what we use in K8up (https://github.com/k8up-io/k8up/blob/master/restic/s3/client.go) and restic (https://github.com/restic/restic/blob/master/internal/backend/s3/s3.go) As for the ACL: do you talk about the ACLs for a minio instance, or for cloudscale's S3? Because the latter sets up some ACLs already that give the object-users permissions to their own buckets. |
ACLs for cloudscale's S3. But you just answered my question :) |
I've also added the deletion of the bucket. For the first implementation we just remove the bucket as soon as the instance is deleted. We can add delays and deletion protection in further iterations. |
Summary
As user
I want to setup backups with S3 buckets on cloudscale.ch infrastructure
So that I can backup my DB instances
Context
In #74 we discussed how provider-jet-cloudscale should be integrated to make use of automatic S3 bucket provisioning.
In an internal discussion though, concerns were raised that this Crossplane integration, as well as provider-jet-cloudscale are not worth the added complexity vs directly provision buckets through cloud APIs and SDKs.
Thus we decided to implement bucket provisioning through code in the operator.
There are various terms that need to be defined:
Each instance should get its own bucket and Objects User. This avoids locking issues with K8up/restic.
Also, according to cloudscale.ch, if we announce it early enough they can increase limits on the S3 servics for us. So sharding should not be necessary on our end.
Out of Scope
Further links
Acceptance Criteria
*If deleting a bucket isn't possible without deleting all data first.
Implementation Ideas
No response
The text was updated successfully, but these errors were encountered: