forked from juicedata/juicefs-csi-driver
-
Notifications
You must be signed in to change notification settings - Fork 0
feat: add DaemonSet mount support for StorageClass #1
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implements DaemonSet deployment mode for JuiceFS mount pods when using StorageClass with mount sharing enabled. This provides better resource management and control over which nodes run mount pods. Key features: - Three deployment modes: per-pvc, shared-pod, and daemonset - ConfigMap-based configuration for existing StorageClasses - Node affinity support to control mount pod placement - Reference tracking via DaemonSet annotations - Automatic lifecycle management of DaemonSets - Backward compatibility with existing deployments Configuration: - Enable via STORAGE_CLASS_DAEMONSET=true environment variable - Configure node affinity via ConfigMap or StorageClass parameters - MountSelector dynamically chooses the appropriate mount implementation The implementation includes comprehensive unit tests and documentation to guide users through the configuration process.
- Capitalize 'Mount Pod' and 'Mount Pods' consistently per enhanced-proper-names rule - Fix all occurrences in daemonset-mount.md and mount-pod-configuration.md - Comply with .markdownlint-cli2.jsonc configuration
4b41348 to
bcdffd7
Compare
jonoirwinrsa
reviewed
Sep 2, 2025
|
@elijah-rou is the idea to make a PR into Juice after we merge into our own? |
Author
yes |
wesrobin
reviewed
Sep 2, 2025
| apiVersion: v1 | ||
| kind: ConfigMap | ||
| metadata: | ||
| name: juicefs-daemonset-config |
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.
rename to juicefs-mountpod-config
… support - Implement three mount modes: per-pvc, shared-pod, and daemonset - Add ConfigMap-based configuration for per-StorageClass mount settings - Support DaemonSet deployment with flexible nodeAffinity configuration - Add automatic fallback from DaemonSet to shared pod when node scheduling fails - Rename daemonset_config to mount_config for clarity - Add node compatibility checking before DaemonSet scheduling - Include comprehensive tests for mount selection and fallback behavior - Update documentation with configuration examples and best practices This allows users to optimize mount pod deployment based on their specific needs without modifying existing StorageClasses, with automatic fallback ensuring workloads never fail due to mount pod scheduling issues.
ef35fba to
2645a97
Compare
… ECR - Add ci_release.yml for production releases with auto-versioning - Add ci_update_dev.yml for development and PR builds - Configure Depot for multi-arch builds (amd64/arm64) - Build CSI driver, mount images (CE/EE), and dashboard - Push to ECR with region-specific naming (virginia/london) - Use specific EE image version ee-5.2.8-1305e8c
…ONSET flag - Remove separate STORAGE_CLASS_DAEMONSET environment variable - DaemonSet mode is now automatically available when STORAGE_CLASS_SHARE_MOUNT is enabled - Changed LoadDaemonSetNodeAffinity to assert mount sharing is enabled rather than conditionally check - Updated documentation to reflect the simplified configuration - Updated all tests to work without the removed flag This simplifies the configuration model - when mount sharing is enabled, users can choose between shared-pod (default) and daemonset modes via ConfigMap without needing a separate environment variable.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implements DaemonSet deployment mode for JuiceFS mount pods when using StorageClass with mount sharing enabled. This provides better resource management and control over which nodes run mount pods.
Key features:
Configuration:
The implementation includes comprehensive unit tests and documentation to guide users through the configuration process.