Commit da71fec
authored
docs: Add comprehensive documentation, examples, and project roadmap (#40)
* docs: Add comprehensive architecture and multi-pool documentation
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.
* examples: Add comprehensive Tenant CRD examples and reorganize structure
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/)
* docs: Add comprehensive CHANGELOG documenting all changes
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.
* docs: Add comprehensive project ROADMAP for discussion
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.
* remove timelines
* remove target release timeline
* remove release schedule
* docs: Update CLAUDE.md with comprehensive project context
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.
* docs: Update ROADMAP with correct discussion and issue tracker links
* docs: Remove community chat placeholder from ROADMAP1 parent c02cf39 commit da71fec
File tree
17 files changed
+4041
-41
lines changed- deploy/rustfs-operator/examples
- docs
- examples
17 files changed
+4041
-41
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
0 commit comments