From 81be4528df049d22a59440311c27badb692abb26 Mon Sep 17 00:00:00 2001 From: IvanHunters Date: Tue, 24 Feb 2026 01:17:41 +0300 Subject: [PATCH 1/2] feat(seaweedfs): add WORM BucketClass with Object Lock parameters Add a BucketClass with -worm suffix that enables S3 Object Lock with COMPLIANCE mode and 365-day default retention. Uses Retain deletion policy to prevent accidental bucket removal. Signed-off-by: IvanHunters --- .../seaweedfs/templates/client/cosi-bucket-class.yaml | 11 +++++++++++ .../seaweedfs/templates/cosi/cosi-bucket-class.yaml | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml b/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml index 76eda0dc..c0e60b54 100644 --- a/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml +++ b/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml @@ -7,6 +7,17 @@ metadata: driverName: {{ .Release.Namespace }}.seaweedfs.objectstorage.k8s.io deletionPolicy: Delete --- +kind: BucketClass +apiVersion: objectstorage.k8s.io/v1alpha1 +metadata: + name: {{ .Release.Namespace }}-worm +driverName: {{ .Release.Namespace }}.seaweedfs.objectstorage.k8s.io +deletionPolicy: Retain +parameters: + objectLockEnabled: "true" + objectLockRetentionMode: COMPLIANCE + objectLockRetentionDays: "365" +--- kind: BucketAccessClass apiVersion: objectstorage.k8s.io/v1alpha1 metadata: diff --git a/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml b/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml index e5503abd..e3cd9cee 100644 --- a/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml +++ b/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml @@ -7,6 +7,17 @@ metadata: driverName: {{ .Values.cosi.driverName }} deletionPolicy: Delete --- +kind: BucketClass +apiVersion: objectstorage.k8s.io/v1alpha1 +metadata: + name: {{ .Values.cosi.bucketClassName }}-worm +driverName: {{ .Values.cosi.driverName }} +deletionPolicy: Retain +parameters: + objectLockEnabled: "true" + objectLockRetentionMode: COMPLIANCE + objectLockRetentionDays: "365" +--- kind: BucketAccessClass apiVersion: objectstorage.k8s.io/v1alpha1 metadata: From 08e755b4d815343670cdefd1b9a312c581173463 Mon Sep 17 00:00:00 2001 From: IvanHunters Date: Tue, 24 Feb 2026 09:36:24 +0300 Subject: [PATCH 2/2] style(seaweedfs): quote objectLockRetentionMode for YAML consistency Quote COMPLIANCE value to match other parameter values in the block. Signed-off-by: IvanHunters --- .../extra/seaweedfs/templates/client/cosi-bucket-class.yaml | 2 +- .../charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml b/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml index c0e60b54..f1389729 100644 --- a/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml +++ b/packages/extra/seaweedfs/templates/client/cosi-bucket-class.yaml @@ -15,7 +15,7 @@ driverName: {{ .Release.Namespace }}.seaweedfs.objectstorage.k8s.io deletionPolicy: Retain parameters: objectLockEnabled: "true" - objectLockRetentionMode: COMPLIANCE + objectLockRetentionMode: "COMPLIANCE" objectLockRetentionDays: "365" --- kind: BucketAccessClass diff --git a/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml b/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml index e3cd9cee..39f929c1 100644 --- a/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml +++ b/packages/system/seaweedfs/charts/seaweedfs/templates/cosi/cosi-bucket-class.yaml @@ -15,7 +15,7 @@ driverName: {{ .Values.cosi.driverName }} deletionPolicy: Retain parameters: objectLockEnabled: "true" - objectLockRetentionMode: COMPLIANCE + objectLockRetentionMode: "COMPLIANCE" objectLockRetentionDays: "365" --- kind: BucketAccessClass