Quickstart¶
Get Kysira protecting your application in under 15 minutes.
Step 1 — Get your image credentials¶
Log in to app.kysira.ai and navigate to Image Access → Add access. Pick how you deploy:
- Kubernetes / Docker → issues a pull credential (JSON key). Give it a name and copy the key — it is shown only once.
- Google Cloud Run → grant by project number instead (no key). See GCP Cloud Run deployment.
A pull credential grants read access to the Kysira release registry:
The three images you'll use:
| Image | Role |
|---|---|
kysira-inference | ML scoring engine — runs entirely offline, no data leaves your infra |
kysira-ext-proc | Envoy ext_proc adapter — for Istio, Cloud Run Service Extensions, or standalone Envoy |
kysira-nginx-auth-adapter | nginx auth_request adapter — for nginx-based stacks |
Full image paths:
us-central1-docker.pkg.dev/cs-poc-uv5os9gxrjsncireus36uzd/kysira-agent-releases/{kysira-ext-proc,kysira-inference,kysira-nginx-auth-adapter}
Authenticate¶
The JSON key is a Google service-account key. Authenticate Docker with the special username _json_key (the key contents are the password):
# Save the JSON key from the console to kysira-key.json, then:
cat kysira-key.json | docker login -u _json_key --password-stdin https://us-central1-docker.pkg.dev
Verify access — list the tags for an image:
gcloud artifacts tags list \
--package=kysira-inference \
--location=us-central1 \
--repository=kysira-agent-releases \
--project=cs-poc-uv5os9gxrjsncireus36uzd
Or, without gcloud, using skopeo and the key inline:
skopeo list-tags \
--creds "_json_key_base64:$(base64 < kysira-key.json | tr -d '\n')" \
docker://us-central1-docker.pkg.dev/cs-poc-uv5os9gxrjsncireus36uzd/kysira-agent-releases/kysira-inference
Step 2 — Choose your deployment path¶
Best for: stacks where traffic flows through a Google Cloud Application Load Balancer to Cloud Run services.
Kysira integrates as a Service Extensions traffic extension on the ALB. You deploy two Cloud Run services (kysira-ext-proc and kysira-inference) and attach them to your existing load balancer — no changes to your application.
Best for: clusters running Istio, or any cluster with an Envoy-based gateway (Contour, Envoy Gateway, standalone Envoy).
kysira-ext-proc implements the Envoy ext_proc protocol. It sits alongside your application and is called per-request by the Envoy sidecar or gateway — no extra proxy hop in the data path.
Client → Envoy sidecar / gateway
│ ext_proc gRPC
↓
kysira-ext-proc → kysira-inference
│
↓ verdict (CONTINUE or deny)
Deploy both services to your cluster using the image URLs from the Kysira Admin Console.
→ Full Kubernetes deployment guide — Model 2 (Istio) and Model 3 (standalone Envoy)
Best for: clusters where nginx is the ingress controller or reverse proxy.
kysira-nginx-auth-adapter acts as the target for nginx's auth_request directive. nginx calls it on every request; the adapter scores it against kysira-inference and returns 200 (pass) or 403 (block).
Step 3 — Start in shadow mode¶
Regardless of deployment path, start with KYSIRA_MODE=shadow. In shadow mode Kysira scores every request and logs the verdict but never blocks traffic. Run shadow for at least a week to validate scoring quality against your real traffic before switching to active enforcement.
All deployment guides walk through the shadow → active promotion process.
What's next¶
- Kubernetes deployment — all four integration models with full Helm values and config references
- GCP Cloud Run deployment — Service Extensions setup, phase-by-phase (shadow → active)
- Observability — connect Prometheus metrics to Grafana or Datadog
- Troubleshooting — common issues and diagnostics