پرش به مطلب اصلی

تنظیمات bucket claim

تب Settings نسخه‌گذاری (versioning)، سیاست حذف claim، و سهمیهٔ همان باکت را کنترل می‌کند. این‌ها روی bucket claim در namespace تنظیم می‌شوند — از کنسول یا با kubectl.

توجه

DeleteWithContents هنگام حذف claim، همهٔ آبجکت‌ها را پاک و باکت را حذف می‌کند — فوری و غیرقابل بازگشت. گزینه‌های Delete و Retain داده را از دست نمی‌دهند.

تنظیم از کنسول​

تب Settings در کنسول

  1. وارد workspace شوید و یک namespace را باز کنید.
  2. در ناوبری namespace، از گروه Object Storage روی Bucket claims بزنید.
  3. claim موردنظر را باز کنید.
  4. تب Settings را انتخاب کنید.
  5. در صورت نیاز گزینه‌ها را تغییر دهید:
    • Enable versioning — نگه داشتن نسخه‌های قبلی آبجکت‌ها
    • When this claim is deleted — رفتار هنگام حذف claim
    • Max size / Max objects — سقف حجم یا تعداد آبجکت‌ها (خالی = نامحدود)
  6. روی Save settings بزنید و در صورت نیاز تأیید کنید.
  7. برای لغو تغییرات ذخیره‌نشده، Revert را بزنید.

گزینه‌های حذف claim​

گزینه در کنسولمعنی ساده
Delete — delete the bucket if it is emptyباکت فقط اگر خالی باشد حذف می‌شود (پیش‌فرض معمول)
Retain — release the bucket, destroy nothingclaim قطع می‌شود؛ باکت و داده‌ها می‌مانند و ممکن است namespace دیگری با همان نام claim بگیرد
DeleteWithContents — purge every object, then deleteهمهٔ آبجکت‌ها پاک و باکت حذف می‌شود
توجه

با Retain، باکت آزادشده در workspace می‌ماند. هر namespace دیگری می‌تواند با ساخت claim هم‌نام، همان باکت (و داده‌هایش) را بگیرد — بدون هشدار جداگانه در آن لحظه.

نکته

سهمیه فقط روی همین باکت اعمال می‌شود. خالی کردن هر دو فیلد Max، سهمیه را برمی‌دارد. مقدار اندازه یک کمیت کوبرنتیز است (مثلاً 10Gi)؛ عدد بدون واحد به‌معنی بایت است.

تنظیم با kubectl​

همان فیلدها روی S3BucketClaim:

zsh
❯ kubectl -n <namespace> apply -f - <<EOF
❯ apiVersion: oss.tapsicloud.com/v1alpha1
❯ kind: S3BucketClaim
❯ metadata:
❯ name: app-data
❯ spec:
❯ versioning: true
❯ deletionPolicy: Delete
❯ quota:
❯ maxSize: 10Gi
❯ maxObjects: 100000
❯ EOF

<namespace> را با namespace خود جایگزین کنید. فرض بر این است که kubeconfig و context مربوط به workspace شما از قبل تنظیم شده است.

فقط تغییر یک تنظیم​

zsh
# فعال کردن versioning
❯ kubectl -n <namespace> \
patch s3bucketclaim app-data --type=merge -p '{"spec":{"versioning":true}}'
 
# سیاست حذف Retain
❯ kubectl -n <namespace> \
patch s3bucketclaim app-data --type=merge -p '{"spec":{"deletionPolicy":"Retain"}}'
 
# برداشتن سهمیه
❯ kubectl -n <namespace> \
patch s3bucketclaim app-data --type=merge -p '{"spec":{"quota":null}}'

فیلدها​

فیلدمعنی ساده
versioningنگه داشتن نسخه‌های قبلی آبجکت‌ها
deletionPolicyDelete | Retain | DeleteWithContents
quota.maxSizeسقف حجم (کمیت کوبرنتیز؛ خالی = نامحدود)
quota.maxObjectsسقف تعداد آبجکت‌ها (خالی = نامحدود)