Skip to content

feat(bucket): extend bucket application with locking, storage pool selection, and user management #2116

Open

Description

@kvaps

Summary

Extend the bucket application and SeaweedFS configuration to support object locking, storage pool selection, and flexible user access management.

Tasks

1. Add WORM for the default pool in SeaweedFS

Currently, -worm BucketClass is generated for each named storage pool, but the default (main) pool also needs a WORM-enabled BucketClass.

2. Rename BucketClass suffix worm → lock

Rename the -worm suffix to -lock across all generated BucketClass resources for consistency and clarity.

3. Extend the bucket application values schema

The bucket application should support the following configuration:

locking: true|false       # provisions bucket from the `-lock` BucketClass
storagePool: <name>       # selects a specific BucketClass (by storage pool name)
users:
  <name>:                 # creates a BucketAccess with the appropriate BucketAccessClass
    readonly: true|false
  <name>:
    readonly: true|false

Details:

  • locking: true — creates BucketClaim referencing the -lock BucketClass (with object lock enabled)
  • storagePool — allows selecting a specific storage pool's BucketClass instead of the default
  • users — replaces the current hardcoded pair of BucketAccess resources (default + readonly) with a dynamic map, where each entry creates a BucketAccess in the corresponding BucketAccessClass (readwrite or readonly depending on the readonly flag)

Current State

  • BucketClass with -worm suffix is generated per pool in packages/extra/seaweedfs/templates/storage-pool-bucket-classes.yaml
  • Bucket app (packages/apps/bucket/) currently has empty values.yaml and hardcodes a single BucketClaim + two BucketAccess resources (default and readonly)

Activity

  1. github-actions commented on May 2, 2026

    @github-actions

    This issue has had no activity for 60 days and was marked lifecycle/stale.
    It will be closed in 14 days unless commented or labelled lifecycle/frozen.

  2. added
    lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale
    on May 2, 2026
  3. dosubot commented on Aug 1, 2026

    @dosubot

    Hi, Andrei Kvapil (@kvaps). I'm Dosu, and I'm helping the cozystack team manage their backlog and am marking this issue as stale.

    Issue Summary

    • You proposed expanding the SeaweedFS/bucket setup to support object locking, storage-pool selection, and dynamic user management.
    • The suggested changes include adding a WORM/lock-enabled BucketClass for the default pool, renaming generated -worm BucketClass resources to -lock, and driving BucketClaim/BucketAccess creation from locking, storagePool, and users values.
    • The issue has not had recent maintainer or author activity beyond an automated github-actions stale notice after 60 days of inactivity.

    Next Steps

    • If this is still relevant on the latest version of the cozystack repository, please comment here to keep the discussion open.
    • Otherwise, this issue will be automatically closed in 7 days.

    Thanks for your understanding and contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

kind/featureCategorizes issue or PR as related to a new featurelifecycle/staleDenotes an issue or PR has remained open with no activity and has become staletriage/acceptedIndicates an issue is ready to be actively worked on

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions