frozenprocess/peacha

GitHub: frozenprocess/peacha

Peacha 是一个基于浏览器的 Kubernetes 与 Calico 网络策略在线演练场,让用户无需准备集群即可学习、编写和测试网络策略的实际效果。

Stars: 0 | Forks: 0

# Peacha,在线策略演练场 Peacha 是一个基于浏览器的演练场,用于学习和测试 Kubernetes `NetworkPolicy`、`ClusterNetworkPolicy` 以及 [Calico](https://www.projectcalico.org/) 网络策略(涵盖 `Calico NetworkPolicy`/`GlobalNetworkPolicy`、tiers 和 HostEndpoints),而无需准备集群。 编写策略,放入一些 pod/namespace/endpoint,即可确切查看它允许或拒绝了哪些连接,这一切都由真正的 Calico 策略引擎进行评估。 试用地址:**https://peacha.frozenspace.eu** ## 功能说明 - **具备真实 schema 校验的 YAML 编辑器。** 基于 Monaco + monaco-yaml,并由内置 Calico CRD 生成的策略 schema 提供支持,因此自动补全和校验与实际的 API 保持一致。 - **真实的评估,而非模拟。** 策略通过 [Telepathy](https://github.com/frozenprocess/telepathy) 运行,这是 Calico 自身策略引擎的进程内构建版本,因此结果能够真实反映 Felix 实际上会如何对数据面进行编程;iptables、nftables、eBPF 和 Windows HNS 均作为支持的渲染目标。 - **可视化连接图。** 以图表而非仅仅是判定结果的形式,查看工作负载之间允许/拒绝的流量。 - **引导式教程。** 内置课程 (`server/tutorials/`) 从 Kubernetes `NetworkPolicy` 基础知识讲起,深入到 Calico 特有的概念:tiers、优先级、staged policies、DNS egress、HostEndpoints、`applyOnForward`、`doNotTrack` 以及 Windows 特定的行为。 - **评分考试(可选)。** 如果配置了私有考试仓库,Peacha 可以根据标准答案对提交的策略进行评分,并追踪每位登录用户的结果。 - **可分享的链接。** 保存场景并通过简短的链接进行分享。 - **可选的 OAuth 登录**(GitHub/Google/Slack),用于保存考试结果,演练场本身完全支持匿名使用。 ## 预期行为 - Peacha 是一款**教学和测试工具**,而非策略管理系统,它不会与实际运行的集群通信,也不会在任何地方应用策略。 - 它是一个**单一的可执行二进制文件**:一个 Go 服务器,用于提供编译后的 React/TypeScript SPA 并在进程内评估策略。无需运行外部策略引擎服务。 - 部分功能(私有考试、OAuth 登录)在未配置时会优雅降级:构建可以在没有考试的情况下成功完成,且不会提供登录选项。 ## 项目布局 ``` cmd/editor/ entrypoint for the Go binary server/ HTTP API, policy evaluation glue, tutorials + exams content web/ React/TypeScript single-page app (the editor UI) third_party/ git submodules: telepathy (policy engine) + calico (upstream source/CRDs) deploy/ Dockerfile + Kubernetes manifests ``` ## 快速开始 需要在本地安装 Go 和 Node。 ``` git clone --recurse-submodules https://github.com/frozenprocess/peacha.git cd peacha make submodules # fetch third_party/ (engine + Calico), if not already cloned recursively make dev # runs the Go server (:8080) and Vite dev server (:5173) together ``` 然后打开 http://localhost:5173。 其他有用的目标,运行 `make`(或 `make help`)获取完整列表: - `make build`,将 SPA 和 Go 二进制文件构建为一个可部署的产物 - `make test`,运行 Go 测试套件 - `make dev-auth`,类似于 `make dev`,但启用了 OAuth 登录(首先将 `.env.auth.example` 复制为 `.env.auth`) - `make image` / `make publish`,构建 Docker 镜像(参见 `deploy/`) ## 许可证 参见 [许可证](LICENSE)。
标签:子域名突变, 日志审计, 自动化攻击, 请求拦截