Skip to content

feat(seaweedfs): add object storage addon for KubeBlocks 1.0 - #3493

Merged
ldming merged 6 commits into
release-1.0from
dev/seaweedfs-release-1.0
Sep 20, 2026
Merged

ldming merged 6 commits into
release-1.0from
dev/seaweedfs-release-1.0

Conversation

@weicao

@weicao weicao commented Sep 19, 2026 •

Copy link
Copy Markdown
Contributor

KubeBlocks 1.0 has no SeaweedFS addon. This change adds SeaweedFS 4.47 with persistent master/volume/filer components and an authenticated S3 gateway, plus standalone and distributed Cluster templates and day-2 examples.

The distributed topology still uses one LevelDB2 filer, so it is not complete HA. Volume scale-in is rejected pending data migration. TLS, backup/restore, rebuild, reconfigure and cross-version upgrades are not implemented. The PR remains a draft until live acceptance is complete.

Chinese design · Usage and limits

Validation completed:

  • Both charts pass Helm lint/render; 12 offline script tests and 10 chart/reference/release-1.0 CRD checks pass on the candidate in child PR fix(seaweedfs): accept gRPC port suffix in master role probe #3494. ShellCheck and the repository ShellSpec entry pass.
  • Follow-up fix at a403d79: static filer filer.toml no longer declares externalManaged: true; the chart test now asserts the component template is retained. This addresses the KB 1.0 setup failure config/script template has no template specified: filer-config when Cluster has no spec.configs; the previous runtime Run is not counted for the new candidate.
  • Child PR fix(seaweedfs): accept gRPC port suffix in master role probe #3494 (f434ad3) also fixes master role detection for the host:9333.19333 address serialized by SeaweedFS 4.47, with leader/follower and invalid-suffix regressions. The test candidate is the child PR head and includes the filer fix; it has not been merged into this development branch.
  • Script tests cover actual Pod FQDN identity, persistent startup, fail-closed credentials and omitted-false master role responses; chart/reference tests cover both topologies, scaling guards and image mappings. Offline schema checks do not execute Kubernetes admission/defaulting or controllers.
  • Coverage limitation: previously inspected ShellSpec run 35424734444 reported 583 examples with zero failures, but kcov reported zero executed lines for the entire repository. The Codecov comment is not evidence of measured product line coverage; only the executed assertions and their outcomes are claimed.
  • Child-candidate Shell Check, ShellSpec, and Check Chart CI passed.
  • Official-image synchronization passed. Docker Hub mirror readback confirms the same manifest digest and both linux/amd64 and linux/arm64.

Candidate and acceptance status:

Input Pin / status
Target branch release-1.0@3c873a8b541d80972d2533fefe8ee745eee1bf11
Development branch dev/seaweedfs-release-1.0@a403d79aa08a0cd5259027d4042e6f3f48201bbc
Test candidate fix/seaweedfs-master-grpc-role@f434ad38b9346ac88f12c9ce2774206bb3be781d; child PR #3494 includes the filer and role-probe fixes
Addon / Cluster chart addons/seaweedfs, addons-cluster/seaweedfs, chart 1.0.0
Initial implementation #3492; product tree from 409ba77b5e909285ff38625158ef7defbc50dd76, plus generated catalog entry
KubeBlocks target release-1.0@7129ad3dc49aeb9edbd0a714e3ad11f1837ac6e8; matching runtime image must be pinned by the test owner
Engine SeaweedFS 4.47, source c5073360007d28385a33426a42ac3e4ec504c5a3; serviceVersion 4.47.0
Engine image chrislusf/seaweedfs:4.47 and apecloud/seaweedfs:4.47; manifest sha256:ce9e796f1fe6f06968f4c04bdaf8f678dad9c8acdfef3d244133d71bfa6bf882
Contract docs 96f3ec13e76daac8c08a98f7adbd23f3f9535f61, addon-api 01–08, 10, 12a/12b
Other open target PRs audited #3441 (PostgreSQL) and #3412 (HugeGraph) excluded: unrelated engines, no required SeaweedFS changes
Runtime Tests candidate kubeblocks-tests #1027 at aa04f49fac46384b9815999334053242109dd97a; offline CI passes. Product-interface review fixes for degraded-volume-read attribution, definition generation readiness, KB role-label convergence and filesystem/engine expansion evidence are landed. The old candidate stopped during smoke; the revised candidate has zero completed acceptance rounds
Platform ct-platform #556 at 10bd8cde8d236ffa6d33385a49ebc6f663fec4b5
Runtime environment The first run was retained after failure; cleanup was reported UNKNOWN. The next package receipt must record exact runtime images, dedicated vcluster, syncer applicability, StorageClass, and Run ID
First runtime attempt Old addon 3196a588: env/static 22/22 passed; smoke stopped at the missing filer template. Platform result BLOCKED / RUNNER / NOT_COUNTED. Role-probe suffix defect confirmed from pinned source and offline regression; the original HTTP response was not preserved
Full acceptance rounds 0; deployment, authenticated S3/data persistence, day-2/failure cases and sustained runs are outstanding

Release integration requires live acceptance on a fixed candidate and final human review. Development-side checks were offline; no local Kubernetes or database was started. Runtime execution and cleanup belong to the test owner.

Reusable source/offline findings: master role probe, omitted false fields, and gRPC port suffixes. This documents no runtime acceptance claim.

@codecov-commenter

codecov-commenter commented Sep 19, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 0.00%. Comparing base (3c873a8) to head (a403d79).

Files with missing lines Patch % Lines
addons/seaweedfs/scripts-ut-spec/startup_spec.sh 0.00% 7 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           release-1.0   #3493   +/-   ##
===========================================
  Coverage         0.00%   0.00%           
===========================================
  Files               71      72    +1     
  Lines             7662    7669    +7     
===========================================
- Misses            7662    7669    +7     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@weicao weicao added chart-release-1.0 Auto release chart when PR merged release-1.0. pick-1.0 Auto cherry-pick to release-1.0 when PR merged labels Sep 19, 2026
@ldming
ldming marked this pull request as ready for review September 20, 2026 07:07
@ldming
ldming merged commit b0a02e8 into release-1.0 Sep 20, 2026
14 of 16 checks passed
@ldming
ldming deleted the dev/seaweedfs-release-1.0 branch September 20, 2026 07:10
@apecloud-bot

Copy link
Copy Markdown
Collaborator

/cherry-pick release-1.0

@apecloud-bot

Copy link
Copy Markdown
Collaborator

🤖 says: Error cherry-picking.

On branch origindest/release-1.0
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

git commit --allow-empty

Otherwise, please use 'git cherry-pick --skip'
Your branch is up to date with 'remotes/origindest/release-1.0'.

You are currently cherry-picking commit b0a02e8.
(all conflicts fixed: run "git cherry-pick --continue")
(use "git cherry-pick --skip" to skip this patch)
(use "git cherry-pick --abort" to cancel the cherry-pick operation)

nothing to commit, working tree clean

@apecloud-bot

Copy link
Copy Markdown
Collaborator

🤖 says: ‼️ cherry pick action failed.
See: https://github.com/apecloud/kubeblocks-addons/actions/runs/35496178411

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

Labels

chart-release-1.0 Auto release chart when PR merged release-1.0. pick-1.0 Auto cherry-pick to release-1.0 when PR merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants