Shuttle Repo Structure¶
Hand-written Go project (no Kubebuilder). No api/, no controllers/, no CRDs, no Kustomize, no
PROJECT file.
shuttle/
├── cmd/
│ └── agent/
│ └── main.go # Manager wiring, runnable registration, signal handling
├── internal/
│ ├── runner/
│ │ ├── desiredstate.go # Desired State Runnable
│ │ ├── snapshot.go # Snapshot Runnable
│ │ └── capacity.go # Capacity Runnable
│ ├── apply/
│ │ ├── namespace.go # Namespace + isolation resources
│ │ ├── workload.go # Deployment, Service, ConfigMap, Secret, PDB
│ │ ├── routing.go # HTTPRoute, future SecurityPolicy
│ │ └── garbage.go # Garbage collection
│ ├── client/
│ │ └── starbase.go # HTTP client for Starbase API
│ ├── config/
│ │ └── config.go # Env var parsing
│ └── types/
│ └── types.go # Shared structs
├── deploy/
│ ├── rbac.yaml # ClusterRole, ClusterRoleBinding, ServiceAccount
│ ├── deployment.yaml # Shuttle Deployment manifest
│ └── servicemonitor.yaml # ServiceMonitor for vmagent
├── Dockerfile
├── Makefile
├── go.mod
├── go.sum
├── .dockerignore
├── .gitignore
└── README.md