ConnectRPC service definitions and generated Go stubs for multi-cluster Kubernetes management.
graph LR
Client["Console / CLI"] -->|ConnectRPC| Gateway
subgraph OtterScale Control Plane
Gateway --> LinkService
Gateway --> ResourceService
Gateway --> RuntimeService
end
LinkService -->|mTLS| Agent
ResourceService -->|Tunnel| Agent
RuntimeService -->|Tunnel| Agent
Agent -->|client-go| K8s["K8s API Server"]
# Use as dependency
go get github.com/otterscale/api@latest
# Generate from proto (contributors only)
make generateimport (
linkv1 "github.com/otterscale/api/link/v1"
resourcev1 "github.com/otterscale/api/resource/v1"
runtimev1 "github.com/otterscale/api/runtime/v1"
)| Service | Proto Package | Methods | Transport |
|---|---|---|---|
| Link | otterscale.link.v1 |
ListLinks · Register · GetAgentManifest |
Unary |
| Resource | otterscale.resource.v1 |
Discovery · Schema · List · Get · Describe · Create · Apply · Delete · Watch |
Unary + Server Stream |
| Runtime | otterscale.runtime.v1 |
PodLog · ExecuteTTY · WriteTTY · ResizeTTY · PortForward · WritePortForward · Scale · Restart |
Unary + Server Stream |
- Link — Agent registration and mTLS certificate provisioning
- Resource — Full CRUD + Watch for native resources and CRDs
- Runtime — Log streaming, interactive exec, port-forward, scale, rolling restart
- OpenAPI — Auto-generated
openapi.yamlfrom proto definitions - Feature gating — Per-RPC feature flags via custom
MethodOptionsextension