The s3store CRD declares an S3-compatible object storage connection. It is referenced by BackupSchedule and BackupRestore resources to centralize endpoint, bucket, and credential configuration — no need to duplicate connection details across multiple resources.

  ---
apiVersion: eevee.bot/v1
kind: S3Store
metadata:
  name: my-minio
  namespace: my-eevee-bot
spec:
  endpoint: https://minio.example.com
  accessId:
    secretKeyRef:
      secret:
        name: minio-creds
      key: accessKeyId
  accessKey:
    secretKeyRef:
      secret:
        name: minio-creds
      key: secretAccessKey
  bucket: eevee-backups
  prefix: prod/
  # region: eu-west-1
  pathStyle: true
  

Specification

Properties

endpoint (string, required)

S3-compatible endpoint URL (e.g. https://s3.amazonaws.com or https://minio.example.com)

accessId (object, required)

Reference to a Kubernetes Secret containing the S3 access key ID.

FieldDescription
secretKeyRef.secret.nameName of the Secret
secretKeyRef.secret.namespaceNamespace of the Secret
secretKeyRef.keyKey within the Secret containing the access key ID

accessKey (object, required)

Reference to a Kubernetes Secret containing the S3 secret access key. Same shape as accessId.

FieldDescription
secretKeyRef.secret.nameName of the Secret
secretKeyRef.secret.namespaceNamespace of the Secret
secretKeyRef.keyKey within the Secret containing the secret access key

bucket (string, required)

S3 bucket name

prefix (string, optional)

Common file prefix within the bucket for all objects managed by this store (e.g. eevee/backups/)

region (string, optional)

S3 region. For AWS, this should match the bucket region (e.g. eu-west-1). For S3-compatible stores (MinIO, Garage, etc.) the region may not matter — the default us-east-1 is used when omitted.

signatureV2 (boolean, optional)

Use S3 v2 signature instead of v4. Set to true for Ceph RADOSGW and older S3-compatible stores that require v2 signatures. Modern stores (AWS S3, MinIO, Garage) support v4 — leave false. Default: false

pathStyle (boolean, optional)

Use path-style addressing (host/bucket) instead of virtual-hosted-style (bucket.host). Set to true for MinIO and similar stores. Default: false

Status

FieldDescription
conditionsStandard Kubernetes condition objects (type, status, reason, message, lastTransitionTime). The Ready condition reflects whether the S3 connection test succeeded.