kube-noob

io.github.aashishmahajan由 GitHub 帳號 aashishmahajan 發布v0.7.1更新於 Nov 7, 2026

Kubernetes, OpenShift, ROSA HCP, Helm and RHACS audit, debugging and cited docs. No AI inside.

概覽

AI 產生的概覽

針對 Kubernetes、OpenShift、ROSA HCP、Helm 與 RHACS 的離線優先稽核、除錯與附引用文件工具,本身不含模型。

可以做什麼
  • 驗證、稽核、紅隊演練並修復 Kubernetes/OpenShift 清單,也可依藍圖產生清單或 Helm chart
  • 檢索並讀取附引用的本機知識片段、規則說明、API 棄用歷程與 OpenShift 升級風險
  • 診斷貼上的事件、日誌、告警與准入拒絕,並判斷錯誤是否為已知問題或工單
  • 產生准入策略、比對 RHACS 策略、分析漏洞與建置日誌、進行威脅建模與暴露路徑分析
  • 離線評估 NetworkPolicy,並維護含已確認修復的本機事件紀錄
  • 提供學習路徑、課程、練習、測驗與答案評分
適用情境
適合處理 Kubernetes、OpenShift、ROSA HCP、Helm 或 RHACS 的情境,需要確定性、可引用的稽核與除錯且資料留在本機時使用。適用於設計審查、清單強化、拒絕與升級問題以及培訓,而非一般雲端工作。
執行需求
以 stdio 在本機執行,透過 uvx 從 kube-noob 的 PyPI 套件安裝(需 Python 3.11.4+)。選用的即時叢集存取使用你現有的 kubectl/oc 環境,預設關閉(KUBE_NOOB_CLUSTER_ENABLED);網路查詢預設關閉(KUBE_NOOB_WEB_ENABLED)。未宣告帳號或 API 金鑰。
安裝前請注意
即時叢集工具為唯讀且不讀取 Secret,但作用於 kubectl/oc 目前指向的環境,使用前請先確認。網路查詢與任何模型呼叫都需手動開啟,管理員鎖(KUBE_NOOB_OFFLINE)可覆寫它們。修復與策略工具只回傳 YAML 與差異,不會實際套用,使用前請審閱輸出。貼上的日誌與清單會傳送給所用 MCP 用戶端的模型。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 kube-noob,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[kube-noob - No AI inside. Works with yours.]

kube-noob

[ci] [OpenSSF Scorecard] [PyPI] [License]

No AI inside. Works with yours. kube-noob is a Kubernetes, OpenShift, ROSA HCP, Helm and RHACS/StackRox expert in a box: audit rules, read-only-first playbooks, cited docs and graded exercises. Claude, OpenShift Lightspeed or any MCP client calls it as tools; the CLI runs it with no AI at all. No network calls unless enabled. Browse the rules, the demos and the recordings at kube-noob.com.

Two questions it answers that other tools do not, offline, from files you already have:

bash
kube-noob policy reach --from web/frontend --to shop/payments --port 9090 -f examples/netpol-admin-tiers.yamlkube-noob policy explain -f examples/denial-multi.txt

Which policy governs this traffic? AdminNetworkPolicy → NetworkPolicy → BaselineAdminNetworkPolicy, in cluster order, naming the tier, policy and rule that decided. A checker reading NetworkPolicy alone gives a wrong answer wherever a platform team set cluster-wide guardrails, not a narrower one. Which system denied this pod? One pass across Pod Security, SCC, Kyverno, Gatekeeper, VAP and RHACS, with the smallest fix. reach exits 1 when denied; both say what they could not determine.

Also: 93 rules with strict schemas and 9 red-team scenarios; 67 offline playbooks, read-only steps first; must-gathers triaged into a case draft that says what could not be read; OpenShift bugs with fix versions; hardened manifests and admission policies; 5 tracks, 16 lessons. kube-noob gate puts any of it in CI with SARIF and one exception list, and a design request runs the 7-step protocol (Clarify, Validate, Research, Audit, Calibrate, Generate, Red Team). Answers cite local knowledge as [kn:<doc>#<n>]. All of it: use-cases.md.

Who does the thinking

You useWho answersWhat leaves your machine
The Claude plugin, or any MCP clientThat client's model, calling kube-noob's toolsWhat you send that client; kube-noob sends nothing
The CLIkube-noob's rules, no modelNothing
kube-noob ask (optional)A model you configureYour question, to that model only

Quick start

bash
brew tap aashishmahajan/kube-noob https://github.com/aashishmahajan/kube-noobbrew trust --formula aashishmahajan/kube-noob/kube-noobbrew install kube-noobkube-noob demo --listkube-noob audit -f your-manifests/ --platform openshift --version 4.22kube-noob insight 'paste anything'kube-noob doctor

No Homebrew: uv tool install kube-noob (Python 3.11.4+); install help.

Use with Claude or any MCP client

Claude plugin, in Claude Code (needs uv):

/plugin marketplace add aashishmahajan/kube-noob/plugin install kube-noob@kube-noob

Desktop app, claude.ai chat and the Agent Skill: install.md. Any MCP client:

json
{"mcpServers": {"kube-noob": {"command": "uvx", "args": ["--from", "kube-noob==0.9.0", "kube-noob", "mcp"]}}}

Run on OpenShift

As a token-protected service, loopback-only sidecar or Lightspeed tool: docs/openshift.md. The chart ships NetworkPolicies, written for restricted-v2.

Safe by default

Off until you turn it on: web lookups, live cluster access (read-only, never Secrets), and any model at all. An admin offline: true lock overrides every one of them and nothing later in the config chain can lift it. Config never comes from the current directory. kube-noob doctor shows what the process can reach and exits 1 if the configuration contradicts the lock; every key is in kube-noob.example.yaml, and the generated safety contract lists what each capability tier can do.

Docs

Everything is at kube-noob.com, and in docs/: use cases, architecture, accuracy, guidance, learning, privacy, security, contributing, limits, roadmap, maintenance, governance.

Credits

Notices: THIRD_PARTY_NOTICES.md. Kubernetes, Helm, OpenShift, ROSA, RHACS, StackRox, OpenShift Lightspeed, Claude, Anthropic, GitHub and AWS are trademarks of their respective owners; kube-noob is independent and not endorsed by them. License: Apache-2.0.

來源:README.md,提交 4a926b4

工具

47

kubenoob_run_protocol

Run the 7-step engineering protocol

Clarify -> Validate -> Research -> Audit -> Calibrate -> Generate -> Red Team for a request with existing manifests or a generator blueprint. Returns the Audit & Validation Brief, the production manifest, and Red Team findings with safeguards. Use this first for any design/review request.

輸入參數request必填versionplatformblueprintmanifestsapply_fixes

kubenoob_validate_manifests

Validate manifests

Strict schema validation (Kubernetes 1.35 + OpenShift/OVN-K/StackRox/Gateway API CRDs), apiVersion vs kind, OpenShift-only APIs on vanilla Kubernetes, removed/deprecated APIs, selector wiring.

輸入參數versionplatformmanifests必填

kubenoob_audit_manifests

Audit manifests

Full deterministic audit: security, network exposure, storage access modes, reliability and red-team scenarios. Findings carry rule ids, line numbers, fixes, citations and matching RHACS policy names.

輸入參數stagesversionplatformmanifests必填exceptionsmin_severity

kubenoob_red_team

Red-team manifests

Hostile-auditor scenarios: node crash, zone outage, RWX split-brain, exposure, privilege escalation, upgrade blocking, secret leaks, resource starvation, supply chain.

輸入參數versionplatformmanifests必填

kubenoob_fix_manifests

Apply safe mechanical fixes

Migrates removed APIs, fixes wrong API groups, hardens securityContext, adds Route TLS, unblocks PDBs, reorders EgressFirewall rules, swaps RWO-only classes for RWX claims. Returns the diff log and manual follow-ups. Does not touch any cluster.

輸入參數hardenversionplatformmanifests必填

kubenoob_clarify_requirements

Clarify requirements

Check a (partial) generator blueprint and return blocking questions and stated assumptions.

輸入參數blueprint必填

kubenoob_generate_manifests

Generate production manifests

Deterministic, audited manifests for kubernetes / openshift / rosa-classic / rosa-hcp from a blueprint (name, namespace, image, replicas, port, probes, storage, exposure, egress).

輸入參數blueprint必填

kubenoob_generate_helm_chart

Generate a Helm chart

Same as generate_manifests but packaged as a Helm chart (Chart.yaml v2, values.yaml, values.schema.json, templates). Returns file contents.

輸入參數blueprint必填

kubenoob_search_knowledge

Search local knowledge

BM25 search over the built-in curated knowledge and the ingested corpus (Kubernetes/OpenShift/ROSA/Helm/StackRox docs, Terraform modules, public RHACS Jira insights). Results include chunk ids to cite as [kn:...] plus source URL and license.

輸入參數limitquery必填source

kubenoob_get_knowledge

Read a knowledge chunk or document

Fetch the full text of a chunk id (kn:<doc>#<n>) or every chunk of a document id.

輸入參數id必填

kubenoob_api_history

API removal history and version map

Removed/deprecated Kubernetes APIs relevant to a target version, and the OpenShift->Kubernetes version map.

輸入參數kindversionplatform

kubenoob_explain_rule

Explain an audit rule

Rationale, remediation, citations for a rule id.

輸入參數rule_id必填

kubenoob_list_rules

List audit rules

All rule ids with stage, category and default severity.

無需輸入參數。

kubenoob_diagnose

Diagnose symptoms offline

Match pasted events / describe output / logs / CLI errors or an Alertmanager webhook payload against troubleshooting playbooks, ranked by matching patterns and by the signals the text carries (alert names, reasons); returns the signals, ranked root causes, read-only checks with names filled in, fixes, reported issues for the version and policy denials.

輸入參數text必填limitversionplatform

kubenoob_extract_signals

Extract signals

Read the canonical names in an error: Alertmanager alert names (webhook payload or text), event and ClusterOperator condition reasons, container reasons, admission rules, components and normalised error templates, plus the alerts its words imply. Returns each signal with where it was found, the catalogue entry (components, playbooks, upstream source) and the playbooks it points at. Read-only and offline.

輸入參數text必填

kubenoob_insight

What is this, and what does it say?

Start here for anything the user pastes. Names what the input is (events, pod status, logs, an Alertmanager payload, a policy denial, a ticket, manifests, a Helm template, a build log, a Containerfile, an SBOM or scanner report, a packet trace, must-gather paths, a question; several at once) and runs every analyser that applies: diagnosis with reported issues and team memory, the denial explainer, the audit, the documentation. Returns every finding with its source, read-only next steps and what was not analysed and why. Read-only, local.

輸入參數text必填versionplatform

kubenoob_ticket_changes

What changed in Red Hat Jira

Reconcile the local copy of Red Hat's public Jira: tickets fixed (with fix versions), closed as not a bug, won't fix or duplicate, reopened, given a fix version or opened since a date, with links, and the open tickets per project and verdict. Read-only and local; each sync records the changes.

輸入參數kindslimitsinceproject

kubenoob_known_issues

Is this a reported issue?

Match an error or symptom against the issues listed in the OpenShift release notes (known issues and issues fixed in each update) and, when this install keeps a local copy of Red Hat's public Jira, against those tickets too. Returns the issue id and link, what became of it (fixed and in which version, still open, closed as not a bug, won't fix or a duplicate), the workaround and Red Hat's remarks from the comments; with `version`, only issues that can affect that version.

輸入參數text必填limitversionplatform

kubenoob_upgrade_risks

Known risks for an OpenShift update

Before updating OpenShift from one x.y.z version to another: the risks Red Hat declares for that update in the public update graph (conditional updates, as an OpenShift Update Service serves them), from a bundled snapshot, offline. Each risk has its name, message, link, the version that fixes it and a verdict: applies (declared for every cluster), check (one fact decides it, with the read-only command or must-gather file that shows it) or cannot evaluate offline (its PromQL, as written). Whether the update is in your channel is not checked.

輸入參數archtarget必填current必填

kubenoob_ticket

Look up a Red Hat Jira ticket

One ticket from this install's local copy of Red Hat's public Jira (OCPBUGS, ROX, HOSTEDCP...): its status, what became of it, fix versions and whether `version` already has the fix, the workaround and remarks from the comments, and linked tickets. Local data only; nothing is fetched.

輸入參數key必填version

kubenoob_explain_denial

Why was this denied?

Explain an admission denial policy by policy: Kyverno, OPA Gatekeeper, ValidatingAdmissionPolicy, Pod Security Admission, OpenShift SCC, RHACS, ResourceQuota, LimitRange or RBAC. Returns the policy and rule, the failing field, read-only commands with names filled in, the fix (with a patch for Pod Security and RBAC) and the audit rules that catch it before deploy.

輸入參數text必填platform

kubenoob_policy_generate

Turn audit rules into admission policies

Generate ValidatingAdmissionPolicy (with binding) and/or Kyverno ValidatingPolicy YAML from kube-noob's audit rules, in audit (warn and record) or enforce mode, for a platform. One policy per rule decidable from one object; each names its rule, fix and source. Rules that need other objects or that the API server already enforces are listed with the reason. Nothing is applied.

輸入參數moderulesenginesversionplatformexceptionsexclude_namespaces

kubenoob_policy_migrate_check

Check legacy Kyverno policies for their CEL form

Kyverno 1.20 removes the kyverno.io ClusterPolicy, Policy, CleanupPolicy and legacy PolicyException. Lint them rule by rule against the policies.kyverno.io types: direct, inverted (a deny or a negated pattern: the CEL validation must state what is allowed), manual (JMESPath, API calls, anchors, strategic merge patches) or blocked (no documented CEL equivalent), each with the field path, the target kind, the reason and the Kyverno documentation section (pinned commit). Rules that map directly get a draft CEL policy and a kyverno test fixture skeleton to prove it. Nothing is applied or rewritten.

輸入參數draftspolicies必填

kubenoob_posture_scan

Attack paths in manifests

Rank the paths from an exposure (Route, Ingress, LoadBalancer or NodePort Service) to what a compromised pod could do: node access (privileged, hostPath, host namespaces) or Kubernetes API rights through its ServiceAccount token (read Secrets, exec, create workloads, escalate). Score = exposure x blast radius; every step names the field that proves it, with a fix. Secret objects are dropped unread.

輸入參數topmanifests必填

kubenoob_build_diagnose

Diagnose a failed build log

Read a failed GitHub Actions, Jenkins, Tekton or OpenShift build log: the failing step (and why it is that step), the error line and its template, the cause class (dependency fetch, compile, test, image push, registry auth, quota, timeout, out of memory, permissions) with its evidence, reported issues, team memory and the fix for that CI system. Read-only.

輸入參數log必填versionplatform

kubenoob_rhacs_compare

Compare RHACS policies with kube-noob's rules

Map every policy in an RHACS (StackRox) export to kube-noob rules by name and criteria: overlap (same setting, with severity and scope differences), related (the same risk seen through image, runtime or API-event data), gap (a deploy-time setting kube-noob has no rule for), outside (image contents, runtime behaviour, API events, label conventions) or unexplained (criteria kube-noob does not know). Lists disagreements and the rules no policy covers. Local only.

輸入參數outcomespolicies必填

kubenoob_vuln_report

Assess scanner output: VEX, exploitation, reachability

Read Trivy or Grype JSON, CycloneDX or SPDX SBOMs, or an RHACS image scan into one finding per package, version and CVE (with the fix version); apply Red Hat VEX (a not-affected or already-fixed finding drops out, citing the statement); mark CISA KEV entries; and, with the manifests, rank by exposure, privileges and RBAC reach with each finding's attack path. SBOM packages are matched against Red Hat VEX. Local only.

輸入參數kevtopveximagereports必填productsmanifeststrust_report_vex

kubenoob_threat_model

STRIDE threat model of an application

From manifests: entry points, trust boundaries, data stores and identities, and per element the STRIDE threats with status (open, mitigated, not assessed), the evidence, the kube-noob rules, generated admission policies and RHACS policies that mitigate each, and MITRE ATT&CK for Containers technique ids. Deterministic; Secrets are dropped unread.

輸入參數reportsversionplatformmanifests必填

kubenoob_posture_report

Latest drift and policy report

The newest daily report in this install's data folder: objects added, removed and changed since the previous snapshot (with the fields that changed), findings new and fixed, and open findings by namespace, owner and rule. Local data only.

無需輸入參數。

kubenoob_check_network_policy

Would this traffic be allowed?

Evaluate NetworkPolicies offline: can the source reach the destination on this port? Checks egress from the source and ingress to the destination, names the policy and rule that decide each, says why the other rules did not match, and proposes the smallest NetworkPolicy that would allow it.

輸入參數port必填source必填platformprotocolmanifests必填destination必填default_namespace

kubenoob_incidents

Incidents the watch has seen

Open (or resolved) incidents from the local incident ledger: workload, signal, how often it came back, the diagnosis and what changed before it started. Read this first when asked what is wrong.

輸入參數limitstatusnamespace

kubenoob_incident

One incident in full

An incident with its evidence (redacted), diagnosis, policy denials, reported issues, rollout change, every occurrence, the fixes a person confirmed, and confirmed fixes for the same problem elsewhere.

輸入參數id必填

kubenoob_incident_confirm

Remember the fix for an incident

AFTER the user confirms it worked: store the cause and fix on the incident (and as a learning note), so the next occurrence comes with it. Summaries only; never leaves the machine.

輸入參數id必填fix必填cause必填confirmed_by_user必填

kubenoob_learn_tracks

List learning tracks

Tracks, lessons, exercises and the learner's progress.

輸入參數learner

kubenoob_learn_lesson

Open a lesson

Lesson content with objectives, key points and citations. A shared HTTP server records no progress, so the learner id only selects whose tally to show when one is kept.

輸入參數learnerlesson_id必填

kubenoob_learn_exercise

Get an exercise

Exercise prompt, starter YAML, hints and points.

輸入參數exercise_id必填

kubenoob_learn_submit

Submit an exercise answer

Grade YAML offline with the audit engine; awards credits and returns feedback. A shared HTTP server grades the same way but records nothing, and says so in the result.

輸入參數answer必填learnerexercise_id必填

kubenoob_learn_quiz

Quiz

Fetch a quiz question (no choice) or answer it (choice index). A shared HTTP server marks the answer the same way but records nothing, and says so in the result.

輸入參數choicelearnerquestion_id必填

kubenoob_learn_progress

Learner progress

Credits earned and completed items.

輸入參數learner

kubenoob_grade_answer

Grade a model answer (enforcer + credit system)

Deterministic reward for a completion against a benchmark task: task correctness (audit engine or QA rules), source-attribution credit for valid [kn:...] citations, format, penalties.

輸入參數tasktask_idcompletion必填

kubenoob_learning_summary

Show what kube-noob has learned locally

The user's environment profile (platform, versions, conventions), confirmed troubleshooting notes (cite as [kn:local-N#0]) and the most frequent playbooks/rules. Read this before tailoring advice.

無需輸入參數。

kubenoob_learning_note_add

Remember a confirmed fix

Save a short symptom -> cause -> fix note to the local learning file AFTER the user confirms it worked. Summaries only: credentials, manifests and raw logs are rejected. Never leaves the machine.

輸入參數fix必填tagscause必填symptom必填platformconfirmed_by_user必填

kubenoob_learning_profile_set

Remember the user's environment

Save platform, versions and team conventions the user stated, so later answers fit their setup.

輸入參數platformversionsconventions

kubenoob_config_status

Show configuration

Effective configuration (webEnabled, cluster access, model), version and knowledge stats.

無需輸入參數。

kubenoob_code_report

Assess SAST findings: where the code ships and who runs it

Read the SARIF that Semgrep, Bandit, SpotBugs/FindSecBugs, ESLint or CodeQL wrote (kube-noob has no analysis engine of its own): one finding per file, line and CWE across tools, suppressed and fixed results excluded with the reason, lint kept apart. With Containerfiles, each file is followed into the images that ship it (copied or built; tests and tools are not shipped); with manifests, findings rank by exposure and privileges with the attack path. With scanner reports and dependency files, each language-package vulnerability points at the file and line to change. Local only.

輸入參數topsarifreportsmanifestssource_rootscontainerfilesinclude_qualitydependency_files

kubenoob_containerfile_audit

Audit a Containerfile

Static checks of a Containerfile or Dockerfile: base images pinned by digest, a non-root USER, no credentials in ENV, ARG, LABEL, RUN or copied files, no download piped into a shell, package caches cleaned, a health check or probes, a multi-stage build. Each finding names its fix and source. The CLI (kube-noob build audit) also reads the build context and the built image's layers.

輸入參數manifestscontainerfile必填

kubenoob_analyze_must_gather

Analyse a must-gather

Open an OpenShift must-gather (or oc adm inspect output) safely and say what is wrong, most severe first: the cluster version and update, cluster operators, nodes, machine config pools, OLM operators, pods, warning events and etcd log hints. Each finding has its evidence file, its signals, read-only commands to confirm it, and the known OpenShift bugs and team memory entries that match it for the version the cluster runs. Nothing is extracted or run and Secrets are never read. Local: reads the path you give on this machine.

輸入參數toppath必填case_draft

版本歷史

3
  1. v0.7.1最新Oct 31, 2026
  2. v0.7.0Oct 30, 2026
  3. v0.6.0Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分