agentic-sre
Health Uyari
- License — License: NOASSERTION
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Basarisiz
- rm -rf — Recursive force deletion command in .github/workflows/publish-runs.yml
- rm -rf — Recursive force deletion command in .github/workflows/release.yml
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Self-healing layer for Kubernetes in a 30 MB binary — detect, fix, re-verify, report. Apache-2.0.
Srenix — self-healing for Kubernetes
Your cluster breaks at 3 AM. Srenix finds the fault, applies a policy-bounded fix, re-verifies, and posts one report to Slack — no dashboard, no pager, no 30 MB of YAML archaeology.


One ~30 MB Go binary on a distroless base. 16 Kubernetes probes · 14 read-only analyzers · 30 cloud probes (AWS / GCP / Azure) · 5 auto-fixers — every fix policy-bounded, GitOps-aware, and re-verified after it runs. Source-available and free for non-commercial use. Patent pending.
Try it in 30 seconds (no cluster, no install, no RBAC)
git clone https://github.com/srenix-ai/agentic-sre.git
cd agentic-sre
go run ./cmd/srenix diagnose --snapshot examples/sample-cluster
• Ceph Storage: 🟢 HEALTHY 1 cluster(s): rook-ceph@rook-ceph OK (11.5% used)
• Cluster Nodes: 🟢 HEALTHY All 4 nodes ready
• PostgreSQL: 🟢 HEALTHY 1 CNPG cluster(s): main@data (3/3 ready, primary=main-1)
• Storage Claims: 🟢 HEALTHY All 3 PVCs bound
Diagnostics (3):
🔎 Secret `billing/billing-svc-secrets` missing key `STRIPE_API_KEY` (referenced by
Deployment/billing-svc in ns billing). Owning ExternalSecret: `billing/billing-svc-secrets`
— add data/template entry exposing `STRIPE_API_KEY`, or remove the env reference if unused.
🔎 ExternalSecret `billing/billing-svc-secrets` not Ready: error processing spec.data[0]
(key: shared/billing/config), err: cannot find secret data for key: "stripe_api_key".
🔎 ExternalSecret `billing/old-payment-gateway` not Ready: error processing spec.data[0]
(key: shared/legacy/payments), err: vault path not found.
That's the headline: a precise diagnosis — which Secret, which key, which Deployment, which Vault path — from a read-only snapshot, on your laptop.
Then run it against your own cluster:
srenix snapshot capture --out ./my-cluster # read-only; never modifies state
srenix diagnose --snapshot ./my-cluster # diagnose offline
srenix diagnose --live # or straight against the live cluster
How it works
flowchart LR
A[🔍 Detect<br/>16 K8s probes<br/>30 cloud probes] --> B[🧠 Diagnose<br/>14 analyzers<br/>root cause + hint]
B --> C{Recognized &<br/>policy-allowed?}
C -->|yes| D[🔧 Remediate<br/>5 policy-bounded fixers<br/>GitOps-aware]
C -->|no| E[📋 Precise remediation<br/>hint for a human]
D --> F[✅ Re-verify<br/>probe again,<br/>prove the fix]
F --> G[📣 Report<br/>Slack / Alertmanager /<br/>OpenProject ticket]
E --> G
Two ways to run it:
- Zero-trust offline mode — point it at a captured
kubectl get … -o jsonsnapshot. No install, no RBAC, no write permissions. - In-cluster live mode — Helm-installed CronJob with two narrowly-scoped ClusterRoles (read-only + tightly-bounded write); posts to Slack on a schedule. Optional operator (
AgenticSRECRD) manages the whole deployment.
helm repo add srenix https://srenix-ai.github.io/agentic-sre
helm repo update
helm install srenix srenix/agentic-sre \
--namespace agentic-sre --create-namespace \
--set slackWebhookSecretName=srenix-slack-webhook
Why it's safe to let it fix things
Most "auto-remediation" tools ask you to trust an LLM with kubectl. Srenix doesn't:
- The hot path is LLM-free and deterministic. Detection, diagnosis, and fixing are pure Go — same input, same output, every time.
- Fixers only touch a closed catalog of known-safe patterns (stale Error pods, stuck Jobs on renamed Secret keys, stale-revision RS pods, terminal CertificateRequests, TLS secret mismatch). Never auto-applied: edits to Secrets, ConfigMaps, or generic CRDs.
- GitOps-aware: fixers skip anything managed by Argo/Flux/Helm rather than fight a reconcile loop; paused/suspended workloads are respected.
- Every fix is re-verified by re-running the probe, and reported either way.
- Narrow RBAC by construction: two ClusterRoles you can read in one sitting; the container is distroless (
nonroot, no shell, no package manager).
Full catalog — every probe, analyzer, and fixer with symptom, root cause, and why the fix is safe: docs/FAILURE_MODES.md.
What's in the box
| Layer | Coverage |
|---|---|
| K8s probes (16) | Ceph, PostgreSQL (CNPG + Zalando), critical workloads, nodes, PVCs, external endpoints, node pressure, system DaemonSets, pending pods, CrashLoopBackOff, etcd, failed mounts, Kong, HPA, ArgoCD sync, Velero backups |
| Analyzers (14) | Secret/key/ExternalSecret/image-pull/cert/TLS classes + drift: GitOps, workload-state, RBAC, config, capacity, security |
| Cloud probes (30) | 10 each for AWS / GCP / Azure — RDS, EBS, EKS, IAM, ALB, ACM, KMS, S3, VPC and equivalents. Off by default, opt-in per provider, per-probe toggles |
| Fixers (5) | Policy-bounded, GitOps-aware, re-verified. Opt-in for anything that mutates routing |
| Investigator | On CRITICAL findings, a read-only Layer-2 deep-dive (DNS, HTTP, TLS, describe, events) attaches a one-line root cause to the alert |
| Sinks | Slack (3-channel routing, per-severity repeat intervals), Alertmanager, OpenProject tickets via MCP, 6 Grafana dashboards |
Current version and the full shipped/planned matrix: STATUS.md · What's next: ROADMAP.md
Community vs Enterprise
Everything above is source-available, free for non-commercial use, and works standalone — probes, analyzers, fixers, cloud probes, deterministic investigator, Helm chart, operator. Running it against clusters that serve your business is commercial use and needs a paid licence.
Srenix Enterprise (commercial binary) adds the AI layer on the same safety contract: an LLM-backed Investigator, T0 narration → T1 fix proposals → T2 multi-step planning → T3 dual-approval break-glass runbooks — every action policy-bounded, Ed25519-signed, hash-chain audited — plus a curated Verified Signature Library regression-tested monthly. Details: docs/SRENIX_OVERVIEW.md · Contact: srenix.ai/contact or [email protected].
Docs
| Start here | Deep dives |
|---|---|
| SRENIX_OVERVIEW.md — the two-pager | FAILURE_MODES.md — full fix catalog |
| SETUP_GUIDE.md — install, Helm values, RBAC | AI_TIERS.md — Layer-2 + T0–T3 spec |
| DEMO_GUIDE.md — storyboarded failure scenarios | DASHBOARDS.md — 6 Grafana dashboards |
| AI_USAGE.md — why the hot path is LLM-free |
Why I built this
Srenix came out of the same on-call loop I kept living: a 3 AM page, twenty minutes of kubectl archaeology, and a root cause that was almost always mundane — a stale Secret key, a stuck ExternalSecret, a cert that didn't renew. I wanted something that did that triage for me deterministically — with a fix catalog narrow enough that I'd actually trust it to run unattended — and posted one honest report instead of paging a human. That's Srenix. If it catches something for you, I'd genuinely like to hear about it in Discussions.
— Salil, maintainer
Community
Questions, war stories, and "it flagged something weird" reports: GitHub Discussions. Bugs and feature requests: Issues. If Srenix saved you a page, a ⭐ helps other on-call engineers find it.
License & security
Srenix is source-available, not open source. The engine and default signature library are licensed under PolyForm Noncommercial 1.0.0 — free to read, modify and run for any non-commercial purpose; commercial use requires a paid licence ([email protected]). The Verified Signature Library ships separately under a commercial license.
Srenix is patent pending — see NOTICE.
To report a vulnerability: [email protected] (SECURITY.md).
Which versions are Apache-2.0?
Srenix changed licence in August 2026. The boundary is exact:
| Versions | Licence |
|---|---|
Everything up to and including v0.2.0-alpha.9 (tagged 2026-07-03) |
Apache License 2.0 |
Everything after v0.2.0-alpha.9 |
PolyForm Noncommercial 1.0.0 |
That covers every v1.x tag through v1.26.3, the v0.1.0-alpha.1 re-baseline, and all nine v0.2.0-alpha.* tags.
If you already have an Apache-2.0 version, you keep it. A copyright licence, once granted to a recipient, is not revocable by the licensor changing terms later. Those releases remain Apache-2.0 for everyone who received them — including the patent grant in Apache-2.0 §3 — and they remain fetchable from the Go module proxy, which mirrors public modules permanently:
# still works, still Apache-2.0, indefinitely
GOPROXY=proxy.golang.org go mod download github.com/srenix-ai/[email protected]
Nothing in the relicence attempts to revoke that, and nobody needs to uninstall anything.
What the new licence does cover is everything from the next release onward: new probes, analyzers, fixers, cloud coverage, and every fix and improvement after v0.2.0-alpha.9. If you want those, and you're using Srenix commercially, you need a paid licence — contact [email protected].
Note that the patent-pending status (see NOTICE) attaches to the architecture, not to a particular copy of the source. Holding an Apache-2.0 copy is not, by itself, a defence to a patent claim over reimplementing the covered design in a competing product — though Apache-2.0 §3 does grant its recipients a patent licence for the versions they received.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi