api

package module
v0.8.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2026 License: Apache-2.0 Imports: 5 Imported by: 0

README

OtterScale API

Lint Release npm Go Reference License

Shared type definitions — CRDs (Kubebuilder) + ConnectRPC services (Protobuf) — for the OtterScale multi-cluster Kubernetes platform.

Quick Start

# Go
go get github.com/otterscale/api@latest

# TypeScript
npm install @otterscale/api

# Generate all (proto, CRDs, deepcopy, lint)
make all

# Individual targets
make proto       # buf generate (Go + TypeScript + OpenAPI)
make manifests   # controller-gen CRDs
make generate    # controller-gen deepcopy
make lint        # golangci-lint

API Groups

CRDs (Kubebuilder)
Group Kind Scope Purpose
tenant.otterscale.io/v1alpha1 Workspace Cluster Namespace isolation with RBAC, quotas, network policies
apps.otterscale.io/v1alpha1 SimpleApp Namespaced Unified Deployment + Service + PVC abstraction
addons.otterscale.io/v1alpha1 Module Cluster Installed platform addon from a template
addons.otterscale.io/v1alpha1 ModuleTemplate Cluster Reusable addon blueprint (FluxCD HelmRelease / Kustomization)
ConnectRPC Services (Protobuf)
Package Service Key RPCs
otterscale.link.v1 LinkService Register, ListLinks, GetAgentManifest
otterscale.resource.v1 ResourceService Discovery, Schema, List, Get, Create, Apply, Delete, Watch
otterscale.runtime.v1 RuntimeService PodLog, ExecuteTTY, PortForward, Scale, Restart
Generated Outputs (make proto)
Plugin Output Description
protocolbuffers/go *.pb.go Go protobuf types (opaque API)
connectrpc/go *.connect.go Go ConnectRPC clients/handlers
bufbuild/es ts/src/ TypeScript protobuf types (@otterscale/api)
connect-openapi openapi/openapi.yaml OpenAPI spec

Toolchain

Tool Version Installed via
buf v1.66.0 make proto (auto-downloads)
controller-gen v0.20.1 make manifests / make generate (auto-downloads)
golangci-lint v2.10.1 make lint (auto-downloads)

Feature Gating

RPCs are annotated with otterscale.api.feature method options for runtime feature gating:

rpc Register(RegisterRequest) returns (RegisterResponse) {
  option (otterscale.api.feature) = {name: "link-enabled"};
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// optional otterscale.api.Feature feature = 7777777;
	E_Feature = &file_feature_proto_extTypes[0]
)

Extension fields to descriptorpb.MethodOptions.

View Source
var File_feature_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type Feature

type Feature struct {
	XXX_raceDetectHookData protoimpl.RaceDetectHookData
	XXX_presence           [1]uint32
	// contains filtered or unexported fields
}

func (*Feature) ClearName

func (x *Feature) ClearName()

func (*Feature) GetName

func (x *Feature) GetName() string

func (*Feature) HasName

func (x *Feature) HasName() bool

func (*Feature) ProtoMessage

func (*Feature) ProtoMessage()

func (*Feature) ProtoReflect

func (x *Feature) ProtoReflect() protoreflect.Message

func (*Feature) Reset

func (x *Feature) Reset()

func (*Feature) SetName

func (x *Feature) SetName(v string)

func (*Feature) String

func (x *Feature) String() string

type Feature_builder

type Feature_builder struct {
	Name *string
	// contains filtered or unexported fields
}

func (Feature_builder) Build

func (b0 Feature_builder) Build() *Feature

Directories

Path Synopsis
addons
v1alpha1
Package v1alpha1 contains API Schema definitions for the addons v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the addons v1alpha1 API group.
apps
v1alpha1
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group.
link
v1
resource
v1
runtime
v1
tenant
v1alpha1
Package v1alpha1 contains API Schema definitions for the tenant v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the tenant v1alpha1 API group.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL