Skip to content

ateapi: resolve CSI controller plugins from CsiDriverConfig in the API store - #3826

Draft
Vu Le (lekhoavu2909) wants to merge 26 commits into
agent-substrate:mainfrom
lekhoavu2909:cdc-pr5-ateapi-plugin
Draft

Vu Le (lekhoavu2909) wants to merge 26 commits into
agent-substrate:mainfrom
lekhoavu2909:cdc-pr5-ateapi-plugin

Conversation

@lekhoavu2909

@lekhoavu2909 Vu Le (lekhoavu2909) commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

Switches internal/volume/csi to ateapi.CsiDriverConfig and updates ate-api-server RPCService.GetPlugin to resolve CSI controller plugins from CsiDriverConfig in PostgreSQL by driver_name, falling back to the Kubernetes CSIDriverConfig CRD while installations transition.

Cached controller plugins are keyed by source, uid, version, endpoint, node socket override, and TLS settings so updates and deletions close and replace stale CSI client connections instead of keeping the first dialed endpoint forever. atelet continues reading the Kubernetes CSIDriverConfig CRD through the updated CSIDriverConfigGetter interface and switches to the Control API in a follow-up PR.

Stacked on #3815

  • switch to ateapi.CsiDriverConfig, add close functions and update...
  • switch RPCService.GetPlugin to Postgres CsiDriverConfig lookup with unit tests

Part of #3754

AI use: AI-assisted, I reviewed and tested it.

Breaking change: no. ate-api-server prefers CsiDriverConfig in PostgreSQL and falls back to the Kubernetes CSIDriverConfig CRD when no API resource is registered for a driver.

  • Tests pass
  • Docs updated

regenerate ateapi.go, and register ExternalVolumeClass in apitool
TestBuild_Annotations.

Signed-off-by: Vu Le <vulk@google.com>
controlapi.ServiceImpl store pass-throughs

Signed-off-by: Vu Le <vulk@google.com>
table truncation and driver_name column test

Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
apitool example

Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
…nd unit tests

Signed-off-by: Vu Le <vulk@google.com>
Signed-off-by: Vu Le <vulk@google.com>
atelet's CRD getter

Signed-off-by: Vu Le <vulk@google.com>
@lekhoavu2909
Vu Le (lekhoavu2909) marked this pull request as ready for review November 12, 2026 23:20
@lekhoavu2909
Vu Le (lekhoavu2909) marked this pull request as draft November 12, 2026 23:20

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant