Repository navigation
Open
Labels
area/dev-infrakind/featureAn enhancement / feature request or implementationAn enhancement / feature request or implementation
Description
Defines the boundary that lets storage backends live outside core: the gRPC protocol, the plugin binary, how it is deployed as a sidecar, and a conformance suite every plugin image must pass.
Tracks the "Object-store plugin interface" contract of the Extensible Install Roadmap.
Owner: provider-neutral core workstream (#3161). Consumers: GKE workstream (external GCS plugin image), other providers (for example Azure, #2595).
Specification.
- Protocol. gRPC package
objectstore.v1atapi/objectstore/v1/objectstore.proto(the roadmap'spkg/proto/...path is out of date):
| Service | RPC | Purpose |
|---|---|---|
NodeProvider |
FetchSnapshot |
Download named snapshot files into a local path |
NodeProvider |
UploadSnapshot |
Upload named files from a local path |
ControlProvider |
CleanupSnapshot |
Delete everything under a snapshot URI or prefix |
ControlProvider |
CopySnapshot |
Copy a snapshot from one URI to another |
AssetProvider |
FetchAsset |
Fetch an asset pinned by SHA-256 into an existing file |
- Binary.
objectstore-plugin node|control|healthcheck.nodeservesNodeProviderandAssetProvider;controlservesControlProvider; both serve gRPC health. Document which flags are part of the contract (--socket,--root,--upload-memory-budget,--asset-staging-dir,--asset-staging-capacity,--timeout,--preview) and which are backend-specific (--transfer-service-account,--exchange-*,--actor-jwt-issuer*,--ateapi-*). - Deployment. Native-sidecar initContainer
objectstore-plugin,emptyDirvolumeobjectstore-pluginat/run/objectstore-plugin. atelet:nodemode,node.sock, plus host path/var/lib/ateand anasset-stagingemptyDir. ate-api-server:controlmode,control.sock. - Backend selection.
ATE_STORAGE_BACKEND; backend configuration from the backend's standard environment. An external plugin image may ignoreATE_STORAGE_BACKEND. Align withstorage.backend=externalin ate-setup: install a provider's object store plugin with --component and storage.backend=external #3651. - URI schemes. Each backend serves its own scheme. The plugin refuses asset URLs under a snapshot location.
- Link the sidecar reference page added by ate-setup: install a provider's object store plugin with --component and storage.backend=external #3651 (
docs/reference/object-store-plugin-sidecar.md) as the published form once merged.
Stability. Within a major release, RPCs and fields only gain optional additions; the version skew policy's two-step rule applies where atelet can be newer than the plugin.
Enforcement.
- Proto breaking-change detection (exists:
buf.yaml,hack/verify/proto-breaking.sh). - New: a conformance suite that any plugin image, core or external, runs against a test bucket.
Parent Issue: #3160
Metadata
Metadata
Assignees
Labels
area/dev-infrakind/featureAn enhancement / feature request or implementationAn enhancement / feature request or implementation
Activity