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 分