-
Notifications
You must be signed in to change notification settings - Fork 119
Update Seaweedfs to v3.96 and fix s3 auth #1361
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
Caution Review failedThe pull request is closed. WalkthroughBumps SeaweedFS chart/app versions, updates values (removes allInOne.replicas, changes COSI sidecar image, toggles an s3 enableAuth flag), adjusts several Helm templates (topology key pluralization, new volume max arg, quoting for S3 ingress host, corrected include path), relocates volume-related templates under volume/, adds PVC retention policy and an API server label, and updates upgrade hook gating via deployed version 2. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User as Helm Operator
participant Helm as Helm Chart
participant CM as ConfigMap seaweedfs-deployed-version
participant K8s as Kubernetes
User->>Helm: helm upgrade/install
Helm->>CM: Read data.version
alt version < "2"
Helm->>K8s: Run pre-upgrade hook (annotations/steps)
else version >= "2"
Helm-->>K8s: Skip pre-upgrade hook
end
Helm->>K8s: Apply templates (incl. volume StatefuISet)
note over K8s: Volume StatefulSet<br/>PVC retention: Delete on delete/scale
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
Tip 🔌 Remote MCP (Model Context Protocol) integration is now available!Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats. 📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 💡 Knowledge Base configuration:
You can enable these sources in your CodeRabbit configuration. 📒 Files selected for processing (11)
✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @kvaps, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request focuses on updating the SeaweedFS application to version 3.96 and resolving an issue related to S3 authentication. A major part of this change involves a significant refactoring of the Helm chart's template structure, organizing files into more logical subdirectories. Additionally, it includes updates to the COSI sidecar image and minor enhancements to the all-in-one deployment configuration.
Highlights
- SeaweedFS Version Update: The SeaweedFS application's appVersion was updated to 3.96, and the corresponding Helm chart version was updated to 4.0.396.
- S3 Authentication Fix: The default setting for S3 authentication (s3.enableAuth) was changed from true to false, addressing an authentication issue.
- Helm Chart Refactoring: The Helm chart's template files were extensively reorganized into new, logical subdirectories (e.g., all-in-one, cert, cosi, filer, master, s3, sftp, shared, volume) to improve structure and maintainability.
- COSI Sidecar Image Update: The COSI sidecar image was updated to a newer version: v20250711-controllerv0.2.0-rc1-80-gc2f6e65.
- All-in-One Deployment Enhancements: The all-in-one deployment configuration was enhanced by correcting a topologySpreadConstraints reference, adding support for configuring volume.max, and removing a fixed replicas value for greater flexibility.
- Helm Hook Versioning Update: The Helm hook versioning logic was updated from '1' to '2', which controls when specific update hooks are executed during chart upgrades.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request updates SeaweedFS to version 3.96, refactors the Helm chart templates for better organization, and includes several fixes. The version update is reflected in Chart.yaml
. The template refactoring moves component-specific templates into subdirectories, which improves maintainability. Fixes include correcting a typo in topologySpreadConstraints
, ensuring s3.ingress.host
is quoted, and fixing scoping issues in volume-servicemonitor.yaml
after the refactoring. A change to disable S3 authentication by default is also included.
My review identifies one issue in the all-in-one-deployment.yaml
where the logic for setting the -volume.max
parameter is incorrect, preventing a valid configuration (maxVolumes: 0
) from being applied. A code suggestion is provided to fix this. Overall, the changes are good and improve the chart.
{{- if and (.Values.volume.dataDirs) (index .Values.volume.dataDirs 0 "maxVolumes") }} | ||
-volume.max={{ index .Values.volume.dataDirs 0 "maxVolumes" }} \ | ||
{{- end }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The condition to add the -volume.max
argument checks for the truthiness of the maxVolumes
value. This is problematic because if maxVolumes
is set to 0
, the condition evaluates to false, and the argument is not added. According to the comment in values.yaml
, 0
is a valid and meaningful value for auto-configuration.
The condition should check for the key's existence rather than the value's truthiness. The suggested change correctly handles maxVolumes: 0
.
{{- if and .Values.volume.dataDirs (hasKey (first .Values.volume.dataDirs) "maxVolumes") }}
-volume.max={{ (first .Values.volume.dataDirs).maxVolumes }} \
{{- end }}
Signed-off-by: Andrei Kvapil kvapss@gmail.com
What this PR does
Release note
Summary by CodeRabbit
New Features
Bug Fixes
Changes
Chores