GitHub issue
Labelled noktron. That is the entire trigger surface.
Noktron turns a labelled GitHub issue into a manifest change, delivers it the way your team has agreed to accept changes, watches the Argo CD rollout, and verifies health in the cluster — scoped to exactly what changed.
Every agent that writes Kubernetes manifests stops at the pull request. What happens next — does Argo CD actually sync it? does the pod actually come up? is it still healthy two minutes later? — is left to a human staring at a dashboard.
Noktron closes that gap. A run is only SUCCEEDED
when it can name the resources it watched go green, and for how long.
Six stages, two of which no other agent runs at all — and a failure path that goes back into the same agent session instead of into your inbox.
Labelled noktron. That is the entire trigger surface.
Sandboxed pod, manifests only, writes inside the configured paths.
kubeconform + conftest on the rendered output.
Pull request, auto-merge or direct push — your team's rule, per environment.
The change reaches the cluster the way it always does.
Scoped health check on the resources that actually changed.
Pre-flight runs against the rendered output, so what gets validated is what Argo CD will actually apply — not the templates. A failure never reaches your repo; it goes straight back into the same agent session as feedback.
After delivery the observer resolves the Argo CD application down to the individual resources the change actually touched, waits for the sync, and then requires them to be healthy and stay healthy for a stability window. The run records that scope.
A failure is classified before it goes back to the agent — and the agent is explicitly allowed to give up. When a fix is outside the repo's reach, it escalates with copy-pasteable instructions instead of burning iterations.
Everything happens in the issue or the pull request you already have open.
resolve when addressed.Secrets are referenced by name only. Noktron never reads them, and nothing secret belongs in your Git repo.
helm install noktron oci://ghcr.io/fakieheelflip/charts/noktron \
--namespace noktron --create-namespace \
--set github.mode=pat \
--set github.pat.secretRef.name=noktron-github-pat \
--set reconciler.argocd.authTokenSecretRef.name=noktron-argocd \
--set llm.apiKeySecretRef.name=noktron-llm
One Project per config repo. paths is the hard boundary the agent may write inside — and at the same time the scope the verification is resolved against.
apiVersion: noktron.io/v1alpha1
kind: Project
metadata:
name: platform
namespace: noktron
spec:
configRepo: { url: https://github.com/your-org/your-gitops-repo }
auth: { githubAppRef: { name: noktron-github-pat } }
agentProfileRef: { name: default } # ships with the chart
environments:
- name: sandbox
paths: ["apps/**"]
argoApplication: app-sandbox
deliveryMode: manual # manual | auto-merge | direct-push
noktronThat is the trigger. Watch it in the embedded UI.
kubectl -n noktron port-forward svc/noktron 8090:8090
port-forward.
Not in the control plane, not in the observer, not via the agent proxy (ADR-0005). The curated read-only ClusterRole contains no secrets rule, and the proxy refuses to start if one ever appears.
Separate namespace, Pod Security restricted, resource quota, egress NetworkPolicy, no Kubernetes API access by default. Cluster view goes through the scoped, redacting, audited noktronctl proxy.
Tokens, keys, connection strings, JWTs, base64 blobs and Secret data are masked. What was masked — classes and counts, never contents — is visible in the UI.
In the runner pre-flight and again server-side before delivery. The agent can only change files under the environment's configured paths.
Human commits on a work branch survive. A human push pauses automation (HUMAN_TAKEOVER) until @noktron continue.
Iteration, cost and wall-clock budgets, identical-diff guard, circuit breaker, global kill switch. Kill-switch changes, merges, escalations, raw-prompt access and bundle exports land in an append-only audit table.
PostgreSQL holds everything that must outlive a pod.
GitHub webhooks and polling — issue labels, comments, reviews, pushes.
Run lifecycle, agent jobs, prompts, delivery.
Argo CD sync plus in-cluster health verification, scoped to the change.
Internal API for agent pods; REST + SSE for the UI.
noktron.io/v1alpha1
may still change. It is run against a real cluster daily, which is where most of the bugs come from.
Install the chart, declare one project, label one issue — and read the list of resources that went green.