pvc-explorer-agent
A lightweight HTTP file-browser agent that mounts a PersistentVolumeClaim and exposes its contents over a simple REST API.
The agent is the container image that the pvc-explorer operator deploys as ephemeral pods. It has an embedded Vue UI for standalone browser-based use and an API that the operator proxies through to the web dashboard.
By default the agent has no authentication and is only reachable through the controller proxy, which enforces Basic Auth and role checks. Never expose the agent port directly.
Relationship to the Operator
The operator is responsible for:
- Creating agent pods from the agent container image
- Configuring them with the target PVC name and mount path
- Proxying API requests from the web UI to the agent
- Scaling agents to zero when idle
The agent itself has no awareness of the operator — it simply mounts a PVC and serves an HTTP API.
Features
- HTTP file browser endpoints for listing, downloading, editing, and uploading files
- Read-only fallback — watches the Kubernetes API for other pods using the same PVC; if a conflict is detected, write endpoints are disabled
- Embedded Vue UI for standalone browser-based use
/healthzprobe for readiness checks- Optional Bearer token auth via
AUTH_TOKENenvironment variable
Container Images
OCI images are published at ghcr.io/pvc-explorer-operator/pvc-explorer-agent:
| Tag | Description |
|---|---|
<version> | Specific release (e.g. v0.1.0) |
dev | Mutable development image from main |
latest | Latest stable release |
Images are multi-arch (linux/amd64, linux/arm64), cosign-signed with BuildKit provenance and SBOM artifacts.
Quick Start
Run the agent locally with a demo dataset:
make run-agent ROOT=./testdata/demo PVC=demo-pvcThe repository includes a small demo dataset in ./testdata/demo for local UI and API testing.
Repository
- Source: github.com/pvc-explorer-operator/pvc-explorer-agent
- License: Apache 2.0