-
Notifications
You must be signed in to change notification settings - Fork 6
docs: Add comprehensive documentation, examples, and project roadmap #40
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
Added three key documentation files to guide operator development and usage: - architecture-decisions.md: Documents critical architectural understanding of RustFS unified cluster model, erasure coding behavior, and valid/invalid multi-pool use cases. Includes warnings about storage class mixing pitfalls. - multi-pool-use-cases.md: Comprehensive guide covering valid multi-pool scenarios (capacity expansion, geographic distribution, spot instances, hardware migration) with concrete examples and anti-patterns to avoid. - DEVELOPMENT-NOTES.md: Development workflow documentation including build commands, testing procedures, and contribution guidelines. These docs prevent common misconfigurations and establish architectural understanding for contributors.
Moved examples from deploy/rustfs-operator/examples/ to project root examples/ directory for better visibility and accessibility. New examples added: - cluster-expansion-tenant.yaml: Demonstrates capacity expansion and gradual hardware migration using multiple pools - geographic-pools-tenant.yaml: Multi-region deployment with topology constraints for compliance and disaster recovery - hardware-pools-tenant.yaml: Heterogeneous disk sizes within same storage class for efficient capacity utilization - spot-instance-tenant.yaml: Cost optimization using spot instances with appropriate tolerations and affinity rules - production-ha-tenant.yaml: Production-ready HA setup with topology spread constraints and resource limits - README.md: Comprehensive guide with usage instructions, architectural warnings, and kubectl verification commands Enhanced existing examples: - simple-tenant.yaml: Added documentation for all scheduling fields - minimal-dev-tenant.yaml: Corrected port references - custom-rbac-tenant.yaml: Clarified RBAC patterns - multi-pool-tenant.yaml: Fixed syntax and structure All examples include: - Inline documentation explaining configuration choices - Architectural warnings about RustFS unified cluster behavior - kubectl verification commands for testing - Best practices for production deployments Removed: - deploy/rustfs-operator/examples/multi-pool-tenant.yaml (moved to examples/) - deploy/rustfs-operator/examples/simple-tenant.yaml (moved to examples/)
Added CHANGELOG.md following Keep a Changelog format to track all notable
changes to the RustFS Kubernetes Operator.
Documented changes include:
- Multi-pool scheduling enhancements (2025-11-08)
- Required environment variables additions (2025-11-05)
- Critical port corrections (console: 9090→9001, IO: 90→9000)
- Volume path standardization (/data/{N} → /data/rustfs{N})
- Architecture corrections and clarifications
- Example improvements and bug fixes
- Documentation of valid vs invalid multi-pool use cases
Key architectural facts documented:
- Unified cluster architecture (all pools form ONE erasure-coded cluster)
- Uniform data distribution across ALL volumes
- No storage class awareness or intelligent placement
- Performance limited by slowest storage class
- External tiering via lifecycle policies
Verification against RustFS source code, Helm charts, and official
documentation ensures accuracy.
Test status: 25 tests passing, backward compatibility maintained.
Added ROADMAP.md outlining development plans from v0.2.0 through v1.0.0 and beyond. This document serves as a foundation for community discussion and priority alignment. Key sections: - Current status (v0.1.0) with completed features and known issues - v0.2.0 (Q1 2026): Core stability with Secret management, status conditions, improved error handling, and integration tests - v0.3.0 (Q2 2026): Advanced lifecycle management, pool operations, TLS automation, and monitoring integration - v0.4.0 (Q3 2026): Enterprise features including multi-tenancy, security hardening, compliance, and advanced networking - v1.0.0 (Q4 2026): Production ready with stability guarantees, complete documentation, and ecosystem integration - Post-1.0: Future considerations (GitOps, multi-cluster, AI/ML optimization) Also includes: - Technical debt tracking - Community and contribution goals - Release schedule (quarterly pre-1.0, monthly post-1.0) - Success metrics and contribution guidelines Target 1.0 release: Q4 2026 This roadmap is a living document open to community input and feedback.
Shahab96
commented
Nov 13, 2025
Enhanced CLAUDE.md with critical information from recent documentation:
Critical Architectural Understanding:
- Added prominent warning about RustFS unified cluster architecture
- Clarified that all pools form ONE cluster, not separate clusters
- Documented valid vs invalid multi-pool use cases
- Reference to architecture-decisions.md for detailed ADRs
RustFS-Specific Standards:
- Service ports verified against source (IO: 9000, Console: 9001)
- Volume path patterns (/data/rustfs{N})
- Required environment variables
- Credential requirements
Enhanced Documentation:
- Updated CRD validation rules (2-server, 3-server requirements)
- SchedulingConfig with flatten pattern
- Persistence config details
- New spec fields: image_pull_policy, pod_management_policy
Development Context:
- Known issues and TODOs with specific line numbers
- Documentation structure (CHANGELOG, ROADMAP, docs/, examples/)
- All 10 examples organized by category
- Development priorities from ROADMAP (without timelines)
- Test coverage: 25 tests passing
Verification Standards:
- Sources for verifying RustFS behavior
- Warning against inventing features
This provides comprehensive guidance for future development sessions.
bestgopher
approved these changes
Nov 13, 2025
Collaborator
|
Is this ready to be merged? |
Collaborator
Author
Yes |
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.
Summary
This PR adds comprehensive documentation, reorganizes examples, and establishes a project roadmap to guide development toward v1.0. These additions provide critical architectural understanding, prevent common misconfigurations, and create a foundation for community discussion.
Changes
📚 Documentation (
docs/)architecture-decisions.md (469 lines)
multi-pool-use-cases.md (430 lines)
DEVELOPMENT-NOTES.md (224 lines)
📋 Examples Reorganization
Moved examples from
deploy/rustfs-operator/examples/to project rootexamples/for better visibility.New Examples Added:
cluster-expansion-tenant.yaml- Capacity expansion and hardware migrationgeographic-pools-tenant.yaml- Multi-region deployment with topology constraintshardware-pools-tenant.yaml- Heterogeneous disk sizes (same storage class)spot-instance-tenant.yaml- Cost optimization using spot instancesproduction-ha-tenant.yaml- Production HA with topology spread constraintsREADME.md- Comprehensive usage guide with kubectl verification commandsEnhanced Existing Examples:
simple-tenant.yaml- Added scheduling field documentationminimal-dev-tenant.yaml- Corrected port referencescustom-rbac-tenant.yaml- Clarified RBAC patternsmulti-pool-tenant.yaml- Fixed syntax and structureAll examples include:
📝 CHANGELOG.md (175 lines)
Following Keep a Changelog format:
/data/{N}→/data/rustfs{N})🗺️ ROADMAP.md (346 lines)
Establishes clear development path toward v1.0:
Core Stability
Advanced Features
Enterprise Features
Production Ready
Also includes:
Statistics
Testing
Impact
Discussion Points
This PR is intended to facilitate discussion around:
Feedback welcome on all aspects! 🙏