Skip to content

S3 Bucket (Infrastructure)#

Low-level infrastructure API for provisioning an S3-compatible bucket via NooBaa (ODF) with explicit control over the ObjectBucketClaim namespace, provider config, and optional public route exposure.

Note

This is a private infrastructure API intended for platform engineers. Cloud users should use the S3 Bucket public API instead.

API Details#

Field Value
API Group infrastructure.stakater.com
Version v1
Kind XS3Bucket
Scope Cluster-scoped
Claim Kind S3Bucket

Spec Parameters#

All parameters are nested under spec.parameters.

Required#

Field Type Default Description
namespace string openshift-storage Namespace where the ObjectBucketClaim will be created. Must exist and be writable by NooBaa.

Optional#

Field Type Default Description
kubernetesProviderConfigName string kubernetes-provider Name of the Kubernetes provider config to use for creating the ObjectBucketClaim and reading back the OBC-generated Secret.
publicRouteName string "" Name of an additional NooBaa S3 Route exposing the bucket via a publicly-routable ingress shard (e.g. s3-public, created by the odf-instance chart). When set, the composition observes that Route and surfaces its externally-reachable host in status.bucket.endpoint. Leave empty on clusters where NooBaa's default internal Route is the only S3 endpoint.

Top-level fields#

Field Type Description
managementPolicies string[] Crossplane management policy. Defaults to ["*"].
providerConfigRef.name string Reference to an AWS ProviderConfig (used for NooBaa's S3 API).

Status Fields#

status.bucket carries non-sensitive bucket metadata only. Credentials live in the OBC-generated <claim-name> Secret in the target namespace; they are surfaced to cloud-tier consumers via the api-syncagent related resources on the cloud-tier PublishedResource — not here.

Field Type Description
status.bucket.name string Provisioned bucket name (as assigned by NooBaa)
status.bucket.endpoint string S3 endpoint hostname

Examples#

Minimal (private, internal endpoint only)#

apiVersion: infrastructure.stakater.com/v1
kind: XS3Bucket
metadata:
  name: my-bucket
spec:
  parameters:
    namespace: openshift-storage

With a public ingress route#

apiVersion: infrastructure.stakater.com/v1
kind: XS3Bucket
metadata:
  name: app-bucket
spec:
  parameters:
    namespace: openshift-storage
    publicRouteName: s3-public