kubewarden/js-policy-template

GitHub: kubewarden/js-policy-template

用于快速搭建 TypeScript/JavaScript 编写的 Kubewarden Kubernetes 准入控制策略的脚手架模板。

Stars: 0 | Forks: 3

# js-policy-template 这是一个模板仓库,你可以用它来搭建一个用 TypeScript 或 JavaScript 编写的 Kubewarden 策略。 别忘了查看 Kubewarden 的 [官方文档](https://docs.kubewarden.io) 以获取更多关于编写策略的信息。 ## 简介 该仓库包含一个用 TypeScript 编写的可运行策略。 该策略会检查 Kubernetes Pod 的 `hostname`(`spec.hostname`),如果该主机名位于拒绝列表中,则拒绝该请求。 拒绝列表可由用户通过策略的运行时设置进行配置。 你可以使用以下结构来表达策略的配置: ``` { "denied_hostnames": [ "bad-host", "forbidden-host" ] } ``` 要将策略构建为 WebAssembly 模块,请运行: ``` make all ``` ## 代码组织 `src/types.ts` - 定义 policySettigns 和 Kubernetes 资源的 TypeScript 接口 - 本策略使用了 [Kubernetes TypeScript 类型](https://github.com/silverlyra/kubernetes-types),它为 TypeScript 提供了 Kubernetes 资源定义。在构建其他 JavaScript/TypeScript 策略时,这可能会很有用。 `src/index.ts` - 包含完整的策略实现: - 解析传入的验证请求 - 提取 Kubernetes 资源和 Pod 主机名 - 执行拒绝列表逻辑 - 验证策略设置 - 执行策略操作 ## 实现细节 用 JavaScript 或 TypeScript 编写的 Kubewarden 策略依赖于 [Kubewarden JavaScript SDK](https://github.com/kubewarden/policy-sdk-js)。该 SDK 提供了用于处理 [Kubewarden 的宿主能力](https://docs.kubewarden.io/reference/spec/host-capabilities/intro-host-capabilities)的辅助函数。 策略使用 Kubewarden 的 [`javy`](https://github.com/bytecodealliance/javy) 插件编译为 WebAssembly。该插件作为 `kubewarden-policy-sdk` 包的一部分安装,可以在以下位置找到: ``` node_modules/kubewarden-policy-sdk/plugin ``` ## 测试 测试 Javy 编译的最终结果非常重要: 即实际的 WebAssembly 模块。 这是通过一组端到端测试完成的。 这些测试使用 Kubewarden 项目提供的 `kwctl` cli 来加载和执行策略。 e2e 测试是使用 [bats](https://github.com/bats-core/bats-core) (Bash 自动化测试系统)实现的。 端到端测试定义在 `e2e.bats` 文件中,可以使用以下命令运行: ``` make e2e ``` ## 所需开发工具 - [TypeScript](https://www.typescriptlang.org) - [Node.js](https://nodejs.org) - Make - [bats (Bash 自动化测试系统)](https://github.com/bats-core/bats-core) - [kwctl](https://github.com/kubewarden/kwctl/releases) - [javy](https://github.com/bytecodealliance/javy)
标签:AI工具, CMS安全, _hostname 校验, JavaScript, JS-SDK, K8s 安全, Kubernetes 策略, Kubewarden, MITM代理, Pod 安全, RDFlib, TypeScript, WebAssembly, 准入控制器, 安全插件, 开发脚手架, 微服务安全, 数据可视化, 文本排版, 策略即代码, 策略模板, 聊天机器人安全, 自动化攻击, 配置校验