Skip to content
/ api Public

Centralized API contracts, CRDs, and Protobuf definitions for OtterScale.

License

Notifications You must be signed in to change notification settings

otterscale/api

Repository files navigation

OtterScale API

Go Reference License Buf

ConnectRPC service definitions and generated Go stubs for multi-cluster Kubernetes management.

Architecture

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"]
Loading

🚀 Quick Start

# Use as dependency
go get github.com/otterscale/api@latest

# Generate from proto (contributors only)
make generate
import (
    linkv1 "github.com/otterscale/api/link/v1"
    resourcev1 "github.com/otterscale/api/resource/v1"
    runtimev1 "github.com/otterscale/api/runtime/v1"
)

⚙️ Services

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

🔑 Features

  • 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.yaml from proto definitions
  • Feature gating — Per-RPC feature flags via custom MethodOptions extension

About

Centralized API contracts, CRDs, and Protobuf definitions for OtterScale.

Resources

License

Stars

Watchers

Forks