Is your feature request related to a problem? Please describe.
Currently, I do not see a direct way to create a bucket with an exact, user-provided Garage bucket name.
The controller can create managed buckets, but the actual Garage bucket name is derived by the controller and includes a resource-derived suffix. This is useful for avoiding collisions, but it means the resulting bucket name is tied to the lifecycle of a particular Kubernetes object.
This is inconvenient for consumers that require a stable bucket name independent of the Kubernetes object lifecycle. I would like the bucket to survive cluster recreation and still be addressable by the same deterministic name afterwards.
This also matters for some GitOps workflows, where other resources need to reference the bucket by name ahead of time.
Describe the solution you'd like
I would like the controller to support creating or adopting a bucket with an exact Garage bucket name.
The desired behavior would be:
- if the exact bucket name does not exist, the controller creates it with exactly that name
- if the exact bucket name already exists, the controller can adopt/reclaim it when ownership proof is provided, similar to the current spec.existingBucket flow
- if the exact bucket name already exists but ownership cannot be proven, reconciliation fails with a clear collision/ownership error
- if no exact bucket name is requested, the controller can keep using generated bucket names to avoid collisions
Is your feature request related to a problem? Please describe.
Currently, I do not see a direct way to create a bucket with an exact, user-provided Garage bucket name.
The controller can create managed buckets, but the actual Garage bucket name is derived by the controller and includes a resource-derived suffix. This is useful for avoiding collisions, but it means the resulting bucket name is tied to the lifecycle of a particular Kubernetes object.
This is inconvenient for consumers that require a stable bucket name independent of the Kubernetes object lifecycle. I would like the bucket to survive cluster recreation and still be addressable by the same deterministic name afterwards.
This also matters for some GitOps workflows, where other resources need to reference the bucket by name ahead of time.
Describe the solution you'd like
I would like the controller to support creating or adopting a bucket with an exact Garage bucket name.
The desired behavior would be: