Is your feature request related to a problem? Please describe.
With no upper bound on bucket volume, a single tenant can end occupying disproportionate amounts storage space. If the data volume on a node fills up, this will cause a service disruption as consequent writes get rejected.
This is especially problematic in environments where storage isnt dynamically provisioned, or extra capacity is not readily available.
Describe the solution you'd like
(1) Expose a setting requiring a maxSize quota to be present on every new bucket. Block on reconcile and surface an appropriate condition.
(2) (Optionally) Configure an upper limit for the size quota. Either per bucket or per namespace can work.
Describe alternatives you've considered
A configurable lifecycle policy on the bucket can be considered an alternative and act as a reminder.
Additional context
The maxSize field is currently optional and will not be made mandatory. This is consistent with the upstream Garage API.
There have been issues in the past where Garage nodes running out of space at different rates causes the cluster to accept writes while being unable to honor the configured replication factor. These should be fixed, only partially relevant: https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/1355
Is your feature request related to a problem? Please describe.
With no upper bound on bucket volume, a single tenant can end occupying disproportionate amounts storage space. If the data volume on a node fills up, this will cause a service disruption as consequent writes get rejected.
This is especially problematic in environments where storage isnt dynamically provisioned, or extra capacity is not readily available.
Describe the solution you'd like
(1) Expose a setting requiring a
maxSizequota to be present on every new bucket. Block on reconcile and surface an appropriate condition.(2) (Optionally) Configure an upper limit for the size quota. Either per bucket or per namespace can work.
Describe alternatives you've considered
A configurable lifecycle policy on the bucket can be considered an alternative and act as a reminder.
Additional context
The maxSize field is currently optional and will not be made mandatory. This is consistent with the upstream Garage API.
There have been issues in the past where Garage nodes running out of space at different rates causes the cluster to accept writes while being unable to honor the configured replication factor. These should be fixed, only partially relevant: https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/1355