kubewarden/go-wasi-policy-template
GitHub: kubewarden/go-wasi-policy-template
基于 Go 和 WASI 的 Kubewarden 策略开发模板,用于实现 Kubernetes 资源的注解管理准入控制。
Stars: 0 | Forks: 1
[](https://github.com/kubewarden/community/blob/main/REPOSITORIES.md#stable)
这是一个使用 Go 编写的普通 WASI 策略模板。该策略随后使用官方 Go 编译器进行编译。
## 已知限制
由于 Go 编译器尚未成熟支持 [WASI](https://wasi.dev/) 而导致的技术限制:
* 该策略需要 Go 1.21 或更高版本。目前该版本尚未发布,因此需要使用基于 [`master`](https://github.com/golang/go) 构建的 Go 编译器
* 策略的大小比 TinyGo 生成的要大
* 此策略要求 Kubewarden 支持新的 `wasi` 执行模式。与传统 `wapc` 模式相比,此模式的评估时间较慢。
一旦 [这个](https://github.com/golang/go/issues/42372) Go issue 得到解决,该策略将被重写以使用传统的 Kubewarden 策略接口。
## 用法
此策略可以检查任何类型的 Kubernetes 资源并确保:
* 资源未使用用户定义的注解列表
* 资源始终包含用户定义的注解字典
策略配置包含以下条目:
* `requiredAnnotations`:一个字典,包含必须在资源内定义的注解列表。如果未定义,这些注解将由策略添加
* `forbiddenAnnotations`:不允许的注解列表。如果资源包含这些注解中的任何一个,准入请求将被拒绝
### 示例
给定以下配置:
```
requiredAnnotations:
cc-center: marketing
priority: low
forbiddenAnnotations:
- team
- squad
```
所有的 Kubernetes 资源都将具有以下注解:
* `cc-center`,值为 `marketing`
* `priority`,值为 `low`
同时,将不允许创建设置了 `team` 或 `squad` 注解的资源。
标签:AI工具, EVTX分析, Go, Go 1.21, Kubernetes 策略, Kubewarden, Ruby工具, WaPC, WASI, WebAssembly, 准入控制器, 子域名突变, 数据科学, 日志审计, 标签治理, 注解管理, 策略即代码, 策略模板, 聊天机器人安全, 资源验证