Console

2 min read

A web view of one or more running runtimes: their Blueprints, CRDs, worker pools, queues, custom resources and status. For a served CRD it also has a form that sends an intent through the gateway, the same path any other caller takes.

console ──GET /blueprint──▶ runtime   (what is running, and the gateway's address)
console ──intent─────────▶ gateway   (the create form)

The console reads; it never writes to the cluster. It needs no RBAC and no kubeconfig, only the runtimes’ URLs.

What it shows

PageShows
DashboardEvery connected Blueprint: health, CRD, worker and resource counts
BlueprintIts CRDs, how each is reconciled, and each CRD’s state
CRDIts configuration, worker pool, queue and recent reconciles; the gateway’s admission stats when there is one
Custom resourcesEvery CR of the CRD, then one CR’s spec, status, children and events
CreateA form for a served CRD, one input per field the target accepts
DocsThe function reference, rendered

The create form is built from the gateway’s field list for a target (GET /api/v1/schema?target=<name>). The console never sees a CRD schema, spec or metadata: it sends the fields, and the gateway builds the CR and runs admission, as for any intent.

Connecting runtimes

Each runtime serves /blueprint on its health port. The console polls every URL it is given and finds each runtime’s gateway in the response, so a gateway needs no configuration of its own.

inrun console --urls http://localhost:8080,http://localhost:8082

With the runtime manager on (the default), runtimes can also be added, changed and removed from the console itself.

Running it

On your machine (outside a pod), inrun starts the console next to the runtime, on port 8081 (INRUN_CONSOLE_PORT), when the inrun-console binary is installed. inrun console starts it alone; if the binary is missing, it downloads the one from the same release into ~/.inrun/bin.

In a cluster the Helm chart runs it as its own Deployment (console.enabled). It is configured from the environment:

VariableDefaultDoes
INRUN_URLS—Comma-separated runtime URLs
PORT8081Port to serve on
REFRESH_INTERVAL15sHow often each runtime is polled
GATEWAY_TOKEN—Token the create form sends to the gateway
ADMIN_USERNAME, ADMIN_PASSWORDinrun, inrunThe login; set both anywhere but your machine
SESSION_SECRET—Signs the session cookie
NO_LOGINfalseServes the console with no login
ENABLE_RUNTIME_MANAGERtrueAllows adding and removing runtimes from the UI
PUBLIC_DEPLOYMENTfalseShorthand for NO_LOGIN=true and ENABLE_RUNTIME_MANAGER=false

Try it

inrun init --pack intent

Run the pack with inrun, open http://localhost:8081, and create a resource from the served CRD’s form.