ARGUS

Every cluster watched. Every incident explained. Nothing changed without you.

A self-hosted console for Kubernetes fleets. ARGUS reads every cluster you run, turns a pile of failing pods into one incident with its cause and evidence, and proposes the fix: a pull request when Git owns the object, a reviewed change when it doesn’t.

Named for the watchman who never closed all his eyes at once.

Open source, AGPL-3.0 · v0.2.0 · Helm charts for Kubernetes 1.29 and later

Your clusters already report every failure; the trouble is that they report each one separately, in their own vocabulary, and briefly. ARGUS turns that into what broke, why, and what to do about it, across every cluster — and then stops, because nothing in your clusters changes until a person approves it.

Runs on and alongside

  • Kubernetes
  • OpenShift
  • Rancher
  • Argo CD
  • Flux
  • Helm
ARGUS4 clustersCrashLoopBackOffpayments-api · prod-eu · 3 pods · 11 mingrouped ×3lifecycledetectedinvestigatingdiagnosedawaiting youroot causeConfigMap payments-config has no DATABASE_URL,which the container reads on start.7 evidenceApprove fixOpen a PRdry run passed

Why it exists

The evidence is in the cluster. Putting it together is the job.

Most outages leave a clear trail. The hours go on collecting it from five places, on the clusters it happened in, while it is still there.

Today

  • One node fails and every pod on it raises its own alert
  • The warning that explained it has aged out before anyone reads it
  • kubectl, dashboards, Argo, Helm and a runbook in five tabs
  • A hand-patched fix that the next GitOps sync quietly reverts

With ARGUS

  • One incident per cause, with what it took down listed under it
  • Changes and events kept, and every incident’s history recorded
  • The cluster, its map, its Git source and its metrics on one page
  • The fix proposed where it will survive: a pull request against your repository

What it does

One console, from fleet view to fixed

Incidents with a cause

Faults that persist become incidents, grouped by what caused them. Each comes with a root cause in one sentence, the read-only calls behind it, and what was ruled out.

The whole fleet on one screen

Open incidents and their trend, who is waiting on whom, every node, capacity, certificate expiries, upgrade readiness, and each application with the version every cluster runs.

A map of every namespace

Ingress to Service to workload to pods, with incidents placed on the objects they are about. Open anything with its events, logs, metrics and YAML.

GitOps and Helm, understood

Argo CD and Flux sync and health with the failure parsed into a plain cause, drift against Git, and Helm releases with the incidents open against each.

Checks before things break

Posture checks with NSA/CISA and CIS labels, network policy coverage, certificate runways, upgrade blockers and node drain impact. Exceptions can live in Git.

Metrics, cost and rightsizing

CPU, memory, request rate, errors and latency per workload, traffic between workloads and cost per namespace, from the Prometheus you already run. Rightsizing from measured p95 usage becomes a change you approve.

Fixes that wait for you

Every change is signed, dry-run, bound to the object’s current version and approved by a person. Hands-off mode exists, and it is off by default.

Your AI tools, on the same evidence

Claude Code, Cursor and other MCP clients get the read-only tools ARGUS’s own investigations use, scoped to what you can see and recorded in the audit log.

Yours, on your infrastructure

Self-hosted, with your database, your sign-in and your choice of model. Clusters dial out to ARGUS; nothing in your network listens for us.

The loop

Four questions, answered in order

  1. Notice

    Every cluster, continuously. A problem has to persist before ARGUS calls it an incident, so nobody is woken for noise.

    Always on

  2. Group

    One bad config behind twelve crash-looping pods is one incident, not twelve alerts.

    Fleet-wide

  3. Explain

    The root cause in plain words, with the evidence that led to it — and what the investigation could not read, so a thin answer says so.

    Read-only

  4. Fix

    A pull request, a change to the cluster, or both. Proposed, dry-run, approved by a person, then watched until it holds.

    Your approval

Your AI providerread-only accessYour Git hostpull requests onlyARGUS hubself-hosted, behind your own sign-innoticegroupexplainfixnothing executes without a human approvalYour databaseincidents, evidence and the audit trailprod-euargus agentprod-usargus agentstagingargus agentoutbound

ARGUS runs on your own infrastructure, and every cluster’s agent dials out to it. The agent that reads and the identity that writes are separate, and writing is opt-in per cluster.

Safety

Nothing changes until you say so

Every proposed change goes through the same checks, in the same order, every time.

Hands-off mode is off by default, and most teams leave it that way.

proposed change1The AI reads, and only reads2Its suggestion is checked by ordinary code3A person approves it4Rehearsed against your live cluster5Your cluster decides what it may touchdone, logged, and reversible

Getting started

From an empty cluster to the first incident

  1. 01

    Install the hub

    One helm install with your hostname. It brings up the hub, its Postgres and an agent for the cluster it runs on, which connects by itself within a minute.

  2. 02

    Connect your other clusters

    One helm install of the agent chart per cluster, with a token from the console — or one fleet token for all of them, rolled out by Argo CD or Flux. Agents connect out through the hub’s own address; no inbound access is needed.

  3. 03

    Get it ready for the team

    A short checklist in the console — a model, a second approver, somewhere for incidents to go, your AI tools — that ticks itself off as ARGUS sees each one in place.

GitOps first

The fix lands where it will survive

A change that isn’t in the repository is one the next sync undoes — so that is where ARGUS puts it.
  • A pull request against your sourceWhole files, as a diff, against the commit the controller actually synced. You review it and merge it. Nothing merges itself.
  • Or a change straight to the clusterRestart, scale, resize, roll an image back — for what GitOps does not own, through a separate identity with a narrow grant.
  • Then it watches it landAnd reopens the incident if the symptom comes back. A merged pull request closes its own incident.

Open source

Open source, and supported by us

ARGUS is open source under the GNU AGPL-3.0, with its source on GitHub and its images and charts on Docker Hub. We install, run and support it as part of our Kubernetes, OpenShift and container platform work.
  • Open source

    No licence fee, per cluster or per node

    AGPL-3.0, so the tenth cluster arrives without a conversation about cost. Releases are signed and come with SBOMs and scan reports.

  • Self-hosted

    It runs where your platform runs

    On your infrastructure, against your database, behind your own sign-in.

  • Supported

    Run by the people who built the platform

    With our container platform services, the engineers who put the cluster together are the ones who tune the detectors on it.

Common questions

Worth asking early

Yes, under the GNU AGPL-3.0. The source is on GitHub, and the images and Helm charts are published on Docker Hub with signatures, SBOMs and vulnerability scans. Run it yourself for free, or have us run and support it with our container platform services.
It reads, through a read-only agent that never fetches Secrets and strips credentials before anything leaves the cluster. What it produces is a proposal. A person approves it, and a separate component with narrowly scoped write access is the only thing that ever changes anything.
Yours. A commercial provider you already hold a contract with, or a model you host yourself. Switching is a settings change, not a rebuild, and your incident data goes only where you have decided it may.
No. For anything Argo CD or Flux is syncing, ARGUS opens a pull request instead of patching — because a change that isn’t in the repository is one the next reconcile undoes.
Only if you switch it on, for the namespaces you name, within limits you set. It is off by default, and plenty of teams leave it off and use ARGUS for what it finds and explains.
No. Detection, investigation, the map and the checks work from the Kubernetes API alone. Connect the Prometheus you already run and ARGUS adds metrics, traffic, cost and rightsizing — it suggests which Service to use.
It is built for fleets of two hundred clusters and more: one agent per cluster, one hub, and fleet pages that read stored summaries rather than asking every cluster on every page load.

Documentation

Everything, written down

Install, architecture, cluster agents, the incident flow and the approval model — the operational reference for running ARGUS.

Point it at one cluster and see what it finds

A single cluster, a fortnight, and a read-only start — no autonomy, no write access, just the incidents and the explanations. It is open source and one `helm install`, so the only cost is the afternoon it takes — or let us set it up as part of our container platform work.