Skip to content

SeaweedFS

Bucket

s3-bucket.yaml
apiVersion: seaweed.seaweedfs.com/v1
kind: Bucket
metadata:
  name: <NAME>
  namespace: <NAMESPACE>
spec:
  clusterRef:
    name: seaweed-production
    namespace: seaweedfs
  versioning: "Off"
  quota:
    size: "10Gi"
    enforce: false
  reclaimPolicy: Retain

Credentials

s3-credentials.yaml
apiVersion: seaweed.seaweedfs.com/v1
kind: S3Credentials
metadata:
  name: <NAME>-credentials
  namespace: <NAMESPACE>
spec:
  seaweedRef:
    name: seaweed-production
    namespace: seaweedfs
  identityRef:
    name: <NAME>-user
  secretRef:
    name: <NAME>-s3-secret
  reclaimPolicy: Retain

Identity

s3-identity.yaml
apiVersion: seaweed.seaweedfs.com/v1
kind: S3Identity
metadata:
  name: <NAME>-user
  namespace: <NAMESPACE>
spec:
  seaweedRef:
    name: seaweed-production
    namespace: seaweedfs
  account:
    displayName: <DISPLAY-NAME>
    email: <EMAIL>
  reclaimPolicy: Retain
  disabled: false

PolicyBinding

s3-policy-binding.yaml
apiVersion: seaweed.seaweedfs.com/v1
kind: S3PolicyBinding
metadata:
  name: <NAME>-policy-binding
  namespace: <NAMESPACE>
spec:
  seaweedRef:
    name: seaweed-production
    namespace: seaweedfs
  policyRef:
    name: <NAME>-policy
  subjects:
    - kind: S3Identity
      name: <NAME>-user
  reclaimPolicy: Retain

Policy

s3-policy.yaml
apiVersion: seaweed.seaweedfs.com/v1
kind: S3Policy
metadata:
  name: <NAME>-policy
  namespace: <NAMESPACE>
spec:
  seaweedRef:
    name: seaweed-production
    namespace: seaweedfs
  reclaimPolicy: Retain
  statements:
    - effect: Allow
      actions:
        - s3:ListBucket
      resources:
        - <NAME>-media
    - effect: Allow
      actions:
        - s3:GetObject
        - s3:PutObject
        - s3:DeleteObject
      resources:
        - <NAME>-media/*