Skip to search

GarageBucket

garage.rajsingh.info / v1beta1

apiVersion: garage.rajsingh.info/v1beta1 kind: GarageBucket metadata: name: example
View raw schema
apiVersion string
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind string
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata object
spec object required
GarageBucketSpec defines the desired state of GarageBucket
bucketId string
BucketID pins this resource to a pre-existing Garage bucket ID. When set, the operator will never create a new bucket — it only manages settings and key permissions for the identified bucket. Takes priority over GlobalAlias-based lookup. Useful for importing existing buckets and for recovery after cluster incidents.
clusterRef object required
ClusterRef references the GarageCluster this bucket belongs to
kubeConfigSecretRef object
KubeConfigSecretRef references a secret containing a kubeconfig for a remote Kubernetes cluster. Only needed for multi-cluster federation where the GarageCluster lives in a different Kubernetes cluster entirely (not just a different namespace).
key string required
The key of the secret to select from. Must be a valid secret key.
name string
Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
optional boolean
Specify whether the Secret or its key must be defined
name string required
Name of the GarageCluster resource.
namespace string
Namespace of the GarageCluster. Defaults to the referencing resource's namespace. Cross-namespace references require a GarageReferenceGrant in the target namespace. Not supported on GarageNode.
globalAlias string
GlobalAlias is the global alias for this bucket (optional) If not set, the bucket name from metadata.name is used
keyPermissions []object
KeyPermissions grants access to specific GarageKeys. Note: Permissions can be granted from either direction: - Here (GarageBucket.keyPermissions): Grant keys access to this bucket - On GarageKey (GarageKey.bucketPermissions): Grant the key access to buckets Both approaches are equivalent and result in the same Garage API calls. Use whichever is more convenient for your workflow: - Bucket-centric: Define all key access on the bucket - Key-centric: Define all bucket access on the key If the same permission is defined in both places, they are merged (not conflicting).
keyRef object required
KeyRef references the GarageKey by name (and optionally namespace).
name string required
Name of the GarageKey.
namespace string
Namespace of the GarageKey. Defaults to the GarageBucket's namespace. Cross-namespace references require a GarageReferenceGrant in the target namespace.
owner boolean
Owner allows bucket owner operations
read boolean
Read allows reading objects
write boolean
Write allows writing objects
lifecycle object
Lifecycle configures bucket lifecycle policies (object expiration, abort of incomplete multipart uploads). Garage exposes lifecycle only via the S3 API, not the admin API. The operator applies rules using an internal access key it manages per GarageCluster. Garage supports a strict subset of the AWS S3 lifecycle spec: only Expiration (days or date, no ExpiredObjectDeleteMarker) and AbortIncompleteMultipartUpload. Filters support prefix and object size bounds; tag filters and the deprecated rule-level Prefix are not accepted. Garage's lifecycle worker runs daily at midnight (UTC by default), so rule evaluation is asynchronous from reconciliation.
rules []object
Rules to apply. The operator replaces the bucket's lifecycle configuration with this exact set on each reconcile.
abortIncompleteMultipartUploadDays integer
AbortIncompleteMultipartUploadDays aborts multipart uploads that have been pending for at least this many days.
format: int32
minimum: 1
expirationDate string
ExpirationDate expires current objects on or after this UTC date.
format: date-time
expirationDays integer
ExpirationDays expires current objects this many days after creation.
format: int32
minimum: 1
filter object
Filter narrows the rule to a subset of objects. If unset, the rule applies to every object in the bucket.
objectSizeGreaterThan integer
ObjectSizeGreaterThan matches objects strictly larger than this many bytes.
format: int64
minimum: 0
objectSizeLessThan integer
ObjectSizeLessThan matches objects strictly smaller than this many bytes.
format: int64
minimum: 1
prefix string
Prefix matches object keys starting with this string.
id string required
ID is the rule identifier. Must be unique within the bucket.
minLength: 1
status string
Status enables or disables this rule. Disabled rules are sent to Garage but skipped by the lifecycle worker.
enum: Enabled, Disabled
localAliases []object
LocalAliases are per-key local aliases for this bucket
alias string required
Alias is the bucket name this key will use to access the bucket. Must be unique within the key's alias namespace.
keyRef string required
KeyRef is the name of the GarageKey in the same namespace that owns this alias.
quotas object
Quotas configures bucket quotas
maxObjects integer
MaxObjects is the maximum number of objects
format: int64
maxSize string | integer
MaxSize is the maximum bucket size in bytes
string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
website object
Website configures static website hosting for this bucket. Note: Only indexDocument and errorDocument are supported via the Admin API. For advanced features (routing rules, redirectAll), use S3 PutBucketWebsite API directly.
enabled boolean
Enabled enables static website hosting.
errorDocument string
ErrorDocument is the error document to serve for 404s
indexDocument string
IndexDocument is the default index document (default: index.html)
status object
GarageBucketStatus defines the observed state of GarageBucket
bucketId string
BucketID is the internal Garage bucket ID
conditions []object
Conditions represent the current state
lastTransitionTime string required
lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
message string required
message is a human readable message indicating details about the transition. This may be an empty string.
maxLength: 32768
observedGeneration integer
observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
format: int64
minimum: 0
reason string required
reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
minLength: 1
maxLength: 1024
status string required
status of the condition, one of True, False, Unknown.
enum: True, False, Unknown
type string required
type of condition in CamelCase or in foo.example.com/CamelCase.
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
maxLength: 316
createdAt string
CreatedAt is when the bucket was created in Garage
format: date-time
globalAlias string
GlobalAlias is the assigned global alias
incompleteUploadBytes integer
IncompleteUploadBytes is the total bytes in incomplete multipart uploads
format: int64
incompleteUploadParts integer
IncompleteUploadParts is the count of parts in incomplete multipart uploads
format: int64
incompleteUploads integer
IncompleteUploads is the count of incomplete multipart uploads
format: int64
keys []object
Keys contains keys with access to this bucket
keyId string
KeyID is the access key ID
name string
Name is the key name
permissions object
Permissions granted to this key
owner boolean
Owner permission
read boolean
Read permission
write boolean
Write permission
lifecycleRules []object
LifecycleRules summarises lifecycle rules currently applied to the bucket in Garage. Spec is the source of truth for rule contents; this list reports id and enabled state only.
id string required
ID of the rule.
status string required
Status is Enabled or Disabled.
enum: Enabled, Disabled
localAliases []object
LocalAliases tracks per-key local aliases for this bucket
alias string
Alias is the local alias name
keyId string
KeyID is the access key ID that owns this alias
keyName string
KeyName is the friendly name of the key
managedKeyGrants []string
ManagedKeyGrants lists the access key IDs this bucket's spec.keyPermissions last granted access to. Used to revoke grants when a keyRef is dropped from the spec, without disturbing grants made via a GarageKey's bucketPermissions/allBuckets or by hand.
observedGeneration integer
ObservedGeneration is the last observed generation
format: int64
phase string
Phase represents the current phase
enum: Pending, Creating, Ready, Deleting, Failed, Unknown
quotaUsage object
QuotaUsage shows current quota consumption
objectCount integer
ObjectCount is the current object count
format: int64
objectLimit integer
ObjectLimit is the configured object limit (0 = unlimited)
format: int64
objectPercent integer
ObjectPercent is the percentage of object quota used
format: int32
sizeBytes integer
SizeBytes is the current size in bytes
format: int64
sizeLimit integer
SizeLimit is the configured size limit in bytes (0 = unlimited)
format: int64
sizePercent integer
SizePercent is the percentage of size quota used
format: int32
size string
Size is the current bucket size
websiteConfig object
WebsiteConfig shows the current website configuration details
errorDocument string
ErrorDocument is the configured error document
indexDocument string
IndexDocument is the configured index document
websiteEnabled boolean
WebsiteEnabled indicates if website hosting is currently enabled
websiteUrl string
WebsiteURL is the computed website URL (if website hosting is enabled)

No matches. Try .spec.bucketId for an exact path