Bosca / Kubernetes

The Controller

One secure path to every cluster

Studio never talks to a cluster directly. One service — the kubernetes-controller — holds the credentials, streams the live state, and gates every operation. It's how the console stays fast, live, and safe.

The broker

Between you and the cluster

Every list, watch, apply, and delete flows through the kubernetes-controller. It stores each cluster's kubeconfig encrypted, decrypts it in memory only when it makes a call, and keeps a warm client per cluster — dropped the moment a credential rotates. Because it's the single door to your clusters, it's also the single place for connection pooling and access control.

  • One service between Studio and every kube-apiserver.
  • Kubeconfigs decrypted in memory, never written to disk.
  • A warm client per cluster, dropped on rotation.
  • One place for health probes and the admin gate.
request path
1studioGraphQL + your token
2servervalidates · checks admin
3controllerdecrypts kubeconfig in memory
4clusterkube-apiserver call

Live streaming

Live over one connection

The controller holds a persistent connection open to the browser. A pod's logs ride a Kubernetes watch and arrive as it writes them; pod metrics and cluster capacity are sampled on a live interval — metrics have no watch to ride — and pushed the same way. Streams open when you land on a page and close when you leave; switch clusters and they follow, reconnecting if a connection blips.

  • Pod logs, pod metrics, and cluster capacity, all streamed live.
  • Logs ride Kubernetes watches; metrics sample on a live interval.
  • Open on page land, closed on leave, following the cluster.
  • Auto-reconnect, with the stream's state always in view.
live streams
pod logsas the pod writes them
pod metricsCPU · memory, live
cluster capacityevery few seconds

Security model

Admin-gated, at every layer

Every operation against a cluster — read, write, or stream — is gated to a Bosca administrator, checked on the server before the request ever reaches the controller, then checked again there. Even a live stream re-checks that you're still an admin while it stays open. And the kubeconfig never leaves the server: it's encrypted at rest and decrypted only in the controller's memory.

  • Every read, write, and stream is gated to an admin, server-side.
  • Kubeconfigs are encrypted at rest and never sent to the browser.
  • Rotate or remove a credential; in-flight connections drop.
  • Three independent admin checks — resolver, stream, and controller.
security
kubeconfig · encrypted, never returned
admin gate · resolver, stream, controller
live streams · admin re-checked as they run

Keep exploring

More on Kubernetes