How mohamadar77/storage-request-operator works
StorageRequest Operator turns a namespaced StorageRequest into one same-name PVC, observes its lifecycle, and reports readiness and problems in status. On deletion, a finalizer applies the Retain or Delete policy; resize logic handles supported expansion without shrinking volumes. Kubernetes and the installed CSI driver perform provisioning and backend operations—the operator orchestrates rather than provisions storage. The controller excerpt establishes its reconciliation and finalization paths; broader PVC, status, and CSI relationships follow the README architecture, while some runtime wiring is unsampled.
Main entry points: storagerequest_controller.go Request Controller · storagerequest_types.go StorageRequest · finalize.go Deletion Policy · main.go Operator Manager
Components 16
Request API
- StorageRequest
api/v1alpha1/storagerequest_types.go - Spec Validation
api/v1alpha1/validation.go
Reconciliation
- Operator Manager
cmd/main.go - Request Controller
internal/controller/storagerequest_controller.go - Deletion Policy
internal/controller/finalize.go - Claim Health
internal/conditions/conditions.go
PVC Safety
- Ownership Check
internal/storage/identity.go - PVC Builder
internal/storage/pvc_builder.go - Immutable Checks
internal/storage/pvc_validation.go - Resize Planner
internal/storage/resize.go
Kubernetes Storage
- PersistentVolumeClaim
- Storage Control Plane
- CSI Driver
- PV / Backend Volume
Other components
- User / GitOps
- Workload
Connections 17
- User / GitOps → StorageRequest: creates
README.md - StorageRequest → Spec Validation: validates spec
api/v1alpha1/validation.go - Operator Manager → Request Controller: runs
- Request Controller → StorageRequest: reconciles
internal/controller/storagerequest_controller.go - Request Controller → Deletion Policy: finalizes
internal/controller/storagerequest_controller.go - Request Controller → PVC Builder: builds claim
internal/storage/pvc_builder.go - Request Controller → Ownership Check: checks ownership
internal/storage/identity.go - Request Controller → Immutable Checks: checks fields
- Request Controller → Resize Planner: plans resize
internal/controller/storagerequest_controller.go - Request Controller → Claim Health: assesses health
internal/controller/storagerequest_controller.go - Request Controller → PersistentVolumeClaim: creates / observes
README.md - Request Controller → StorageRequest: writes status
README.md - Deletion Policy → PersistentVolumeClaim: retains or deletes
README.md - PersistentVolumeClaim → Storage Control Plane: provisioning delegated
README.md - Storage Control Plane → CSI Driver: uses driver
README.md - CSI Driver → PV / Backend Volume: provisions backend
README.md - Workload → PersistentVolumeClaim: mounts claim
README.md