✨ API Server Added - #281
Conversation
f84219d to
14ff8a7
Compare
🧪 CI InsightsHere's what we observed from your CI run for fa85f2b. 🟢 All jobs passed!But CI Insights is watching 👀 |
|
@mergify squash |
✅ Pull request squashed successfully |
* 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev>
95ab381 to
5dfd46e
Compare
|
@mergify rebase |
❌ Base branch update has failedDetailsGit reported the following error: |
|
@mergify squash |
✅ Pull request squashed successfully |
* 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock and init API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev>
5dfd46e to
9fd3e92
Compare
* 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock and init API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev>
9fd3e92 to
5a7e75e
Compare
* 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock and init API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev>
5a7e75e to
e75c872
Compare
* 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock and init API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev>
e75c872 to
751c12a
Compare
* 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock and init API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev>
751c12a to
fa85f2b
Compare
|
This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days. |
d825746 to
1b45093
Compare
|
@mergify squash |
✅ Pull request squashed successfully |
* ✨ API Server Added (openebs#281) * ✨ Adding API Server (openebs#281) * 🚧 Adding API Server (openebs#281) * 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock and init API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add get signle node API Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🚧 Adding new endpoints... Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🚧 Add get task status api Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add new endpoints to internal servicer Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Lock file update Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ♻️ Use deployment instead of statefulset for controller Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add API Server to Chart Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🎨 Better gRPC access log Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✏️ Add internal port env to api server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ⚡ Change VolumeStats Fields Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✏️ Some typing fixes Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ⚡ Improve internal gRPC client Managing connections and support for AIO client Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🔀 Apply openebs#344 Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add version to api server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Update rawfile/orchestrator/k8s.py Co-authored-by: Tiago Castro <tiagolobocastro@gmail.com> Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ⚡ Add node status indicator to API Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server
0aa86b1 to
c6b4d7b
Compare
There was a problem hiding this comment.
⚠️ Not ready to approve
There are multiple confirmed runtime-breaking issues (API task routes calling gRPC without request/iterating protobuf maps incorrectly, internal task kwargs proto mismatch) plus Helm template condition bugs that can render unexpected/invalid resources.
Pull request overview
Adds an HTTP API server (FastAPI) to expose node/pool/volume/task visibility by calling a newly-extended internal gRPC service, and updates configuration + Helm deployment to run the API server alongside the controller.
Changes:
- Introduces a FastAPI API server (
/v1/nodes/...) and Pydantic response models to surface node/pool/volume/task information. - Extends the internal gRPC proto/service with pool stats, volume stats, and task listing RPCs; updates internal client utilities (stub caching + shutdown).
- Refactors gRPC request logging into a parameterized decorator class and updates Helm to deploy the API server container.
File summaries
| File | Description |
|---|---|
| rawfile/utils/volume_manager.py | Minor refactor to return stats dict directly. |
| rawfile/utils/remote.py | Adds internal gRPC client stub/channel caching and shutdown helper. |
| rawfile/utils/logs.py | Replaces function decorator with GRPCLogger class for gRPC access/error logging. |
| rawfile/rawfile.py | Adds API server start path; moves internal gRPC port/signature to top-level config usage. |
| rawfile/rawfile_servicer.py | Switches internal gRPC calls to shared stub helper + auth metadata. |
| rawfile/protos/internal.proto | Adds internal RPCs/messages for pools/volumes/tasks stats. |
| rawfile/orchestrator/k8s.py | Reads node DaemonSet name from top-level node_ds; adds get_all_nodes(). |
| rawfile/internal/internal_pb2.pyi | Regenerated typing stubs for new internal proto messages. |
| rawfile/internal/internal_pb2.py | Regenerated protobuf module for new internal proto messages. |
| rawfile/internal/internal_pb2_grpc.py | Regenerated gRPC stubs; adds new RPC methods. |
| rawfile/internal_svc.py | Implements new internal RPC handlers for pools/volumes/tasks. |
| rawfile/csi/csi_pb2_grpc.py | Regenerated CSI gRPC stubs with updated generator version string. |
| rawfile/config/model.py | Adds APICmd, top-level internal_* + node_ds, and validation for API/CSI modes. |
| rawfile/bd2fs.py | Updates to new GRPCLogger decorator usage. |
| rawfile/api_server/v1/routes/nodes/volumes.py | New API endpoints for volume stats by node/pool. |
| rawfile/api_server/v1/routes/nodes/tasks.py | New API endpoints for task listing by node. |
| rawfile/api_server/v1/routes/nodes/init.py | New API endpoints for node listing + pool stats fanout via async gRPC. |
| rawfile/api_server/v1/routes/init.py | API v1 router wiring. |
| rawfile/api_server/v1/models/nodes.py | Pydantic models/type aliases for nodes/pools/volumes/tasks. |
| rawfile/api_server/v1/models/init.py | Exports API models. |
| rawfile/api_server/init.py | FastAPI app creation + uvicorn.run entrypoint helper. |
| pyproject.toml | Adds FastAPI + uvicorn deps. |
| deploy/helm/rawfile-localpv/values.yaml | Adds capabilities.apiServer and reshapes comments/formatting. |
| deploy/helm/rawfile-localpv/templates/node-plugin/daemonset.yaml | Renames env vars for moved settings (INTERNAL_*, NODE_DS). |
| deploy/helm/rawfile-localpv/templates/controller/service.yaml | Adds API server port and conditionally renders controller service. |
| deploy/helm/rawfile-localpv/templates/controller/deployment.yaml | Switches controller workload to Deployment; adds API server container. |
| deploy/helm/rawfile-localpv/README.md | Documents new capabilities.apiServer.enabled. |
| .pre-commit.sh | Adjusts version sync script formatting/grep behavior. |
Copilot's findings
Files not reviewed (1)
- rawfile/internal/internal_pb2.py: Generated file
Comments suppressed due to low confidence (2)
deploy/helm/rawfile-localpv/templates/controller/deployment.yaml:2
- The controller Deployment currently renders when
($cap.apiServer)is non-empty, which will be truthy even ifcapabilities.apiServer.enabledis false. This makes it hard to disable the controller workload via values and can deploy it unexpectedly.
deploy/helm/rawfile-localpv/templates/controller/deployment.yaml:30 - This template block uses
$cap.apiServer.enabled; ifcapabilities.apiServeris unset, Helm will error when accessing.enabled. Since the guard at the top can be made nil-safe via$api := $cap.apiServer | default dict, use$api.enabledconsistently here too.
- Files reviewed: 27/29 changed files
- Comments generated: 10
Note
Your feedback helps us improve the quality of this feature.
Please use 👍 or 👎 to tell us whether this assessment is correct.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Tick the box to add this pull request to the merge queue (same as
|
|
@mergify squash |
✅ Pull request squashed successfully |
* ✨ API Server Added (openebs#281) * ✨ API Server Added (openebs#281) * ✨ Adding API Server (openebs#281) * 🚧 Adding API Server (openebs#281) * 🚧 Adding API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Fix Lock and init API Server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add get signle node API Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🚧 Adding new endpoints... Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🚧 Add get task status api Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add new endpoints to internal servicer Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 📦 Lock file update Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ♻️ Use deployment instead of statefulset for controller Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add API Server to Chart Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🎨 Better gRPC access log Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✏️ Add internal port env to api server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ⚡ Change VolumeStats Fields Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✏️ Some typing fixes Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ⚡ Improve internal gRPC client Managing connections and support for AIO client Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🔀 Apply openebs#344 Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ✨ Add version to api server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Update rawfile/orchestrator/k8s.py Co-authored-by: Tiago Castro <tiagolobocastro@gmail.com> Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * ⚡ Add node status indicator to API Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * Merge branch 'develop' into add-api-server * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev> * 🐛 Fix some typos and reviews Signed-off-by: Muhammed Hussain Karimi <info@karimi.dev>
f2e025e to
f1af729
Compare
|
@tiagolobocastro I will merge it for now, For openapi.json file, It's a bit complicated, I have to call I wanted to call it in release in the CI and put openapi.json and openapi.yaml files in the release files |
|
@mergify queue |
|
Deprecation notice: This pull request comes from a fork and was queued with |
Merge Queue Status
This pull request spent 22 seconds in the queue, including 22 seconds running CI. Waiting for
All conditions
ReasonPull request #281 has been dequeued merge conditions no longer match. Blocked by:
HintYou should look at the reason for the failure and decide if the pull request needs to be fixed or if you want to requeue it. Requeued — the merge queue status continues in this comment ↓. |
❌ The pull request has been removed from the queue
|
Merge Queue Status
Required conditions to enter a queue
|
|
@mergify requeue |
Merge Queue Status
This pull request spent 22 seconds in the queue, including 10 seconds running CI. Required conditions to merge
|
No description provided.