One DevOps platform for your Kubernetes cluster — explained in plain terms.
Part 1 · what it is → Part 2 · how it works
Part 1
The problem
To run software for a team you normally bolt together five separate products: a login system, an alarm system, a way to run code, a record of who did what, and ops tooling.
Each one is its own install, its own bill, its own thing to maintain.
The idea
curl -sSL https://starling-ex.frakma.io/install.sh | bash
In one sentence
A home router bundles wifi, firewall, and DHCP into one box you plug in once. Starling EX bundles the team-software essentials into one thing you install once.
What you get
Everyone logs in with your existing Google / GitHub accounts. No new passwords.
Describe a job in a file; the cluster runs it. "Serverless," git-friendly.
Every action recorded: who, when, what, how long, outcome.
Problems route to Slack & PagerDuty automatically.
Your AI assistant can safely inspect what's running.
See it all in a read-only web console behind sign-in.
Part 2
One level deeper — for engineers.
The shape of it
Everything lands in the starling-ex namespace on Kubernetes 1.27+.
The engine
Describe a job in a small file: which image to run and how it's triggered. Apply it, and Starling keeps the cluster matching that description — you never run the steps by hand.
cat <<'EOF' | kubectl apply -f -
apiVersion: starling.frakma.io/v1
kind: StarlingFunction
metadata:
name: resize-images
spec:
image: ghcr.io/acme/resize:1.4
trigger:
http:
path: /resize
EOF
Now POST to /resize and your image runs. Edit the file, re-apply — Starling reconciles the difference.
Make it yours
Everything is declarative CRDs and Helm values — no forking. Tune sign-in, scaling, triggers, alerts and tooling to fit your stack.
Override replicas, resources, ingress host, image tags, namespace via values.yaml or --set.
Plug Dex into Google, GitHub, OIDC, LDAP or SAML — bring your own identity provider.
HTTP, cron, or event triggers per StarlingFunction; set autoscaling and concurrency.
Define your own AlertRule / AlertChannel and register custom MCP tools for your agents.
helm upgrade starling-ex oci://ghcr.io/.../starling-ex \
--set replicas=3 \
--set ingress.host=starling.acme.dev \
--set dex.connectors[0].type=oidc
Know what's happening
The umbrella: can you tell what the system is doing and why from the outside, without new code?
Follow one request as it hops across services — see where time is spent and what failed in the chain.
Time-stamped records of discrete events — the detail you read when something breaks.
Most platforms make you wire all three up yourself, per service.
How Starling EX solves it
Operator & functions expose Prometheus endpoints out of the box — scrape into Grafana, no extra agents.
Requests carry OpenTelemetry trace context end-to-end (gateway → function → tool call) to any OTLP backend.
Structured JSON logs, plus the Firestore audit log: every tool call with key, cost, latency & outcome — queryable.
One install gives you all three correlated by request — no per-service plumbing.
Commercial Tiers
Every API and CLI tool call logged: user, tool, cost, latency, outcome. Queryable and SIEM-exportable.
AI-agent accessible tools: list_helm_releases, describe_helm_release, and helm_release_history.
Declarative CRDs route critical cluster and compliance events to Slack channels and PagerDuty services.
Redis-backed rate limiting per scope bounds the blast radius of any leaked keys or runaway AI agents.
AI-Native Stack
Traditional DevOps stacks are designed for humans. Starling EX includes the structured rails, tool registries, and safeguards that autonomous AI SREs require to operate safely.
Exposes cluster state to LLMs using standard Model Context Protocol.
Throttles AI actions to prevent loops or API abuse.
Trace agent tool calls with precise cost/latency analysis.
Market Comparison
| Feature | Starling EX (Self-Hosted) | Proprietary SaaS Alternatives |
|---|---|---|
| Login SSO | Dex OIDC (Free/Self-hosted) | Auth0 / Okta (high per-seat costs) |
| Serverless | StarlingFunction (No cold starts/egress) | AWS Lambda / Vercel (egress lock-in) |
| Observability | Prometheus + OTel (zero ingestion fee) | Datadog / NewRelic (heavy volume charges) |
| Lock-in | None (Apache-2.0 base) | Full vendor dependency |
Plans & Pricing
Up to 3 users, Dex SSO, Function CRDs, email alerts, community support.
Up to 10 users, Slack & PagerDuty alerts, per-key rate limits, basic audit log.
Up to 50 users, full Helm-aware MCP tools, Firestore audit log, OTel tracing.
Enterprise plan: Unlimited seats, SAML, SIEM export, 99.9% SLA (Talk to us).
How gating works
The operator and Helm charts are Apache-2.0 and run in Community mode by default. Activating Startup, Growth, or Enterprise features is as simple as generating an offline-verifiable JWT license key.
Try it
# 1 — pick a cluster
kubectl config use-context my-cluster
# 2 — run the installer (or `helm install` directly)
curl -sSL https://starling-ex.frakma.io/install.sh | bash
# 3 — sign in through Dex
open https://starling-ex.your-cluster.example/
One platform. One command. Your cluster.
starling-ex.frakma.io · github.com/warble-platform/starling-ex
By WarbleCloud / Frakma