cognis-digital/crossforge
GitHub: cognis-digital/crossforge
crossforge 是一个零依赖的 Python 组合渲染器,将高层 claim 声明式地展开为满足请求的具体 Kubernetes 资源。
Stars: 0 | Forks: 0
# crossforge
**面向平台工程的组合渲染。** 为你的开发人员提供一个简单、高层的
API(即“claim”),并将其*渲染*为满足该请求的具体 Kubernetes
资源 —— 全程声明式,全程使用标准库 Python。
**Cognis Neural Suite** 的一部分。
## 为什么需要
平台团队越来越多地向开发人员提供简单、自助的 API
(“给我一个中等规模的 postgres”),而不是原始的 YAML。crossforge 将这种
模式实现为一个零依赖的渲染器:**definition** 用于声明 claim 的
参数,**composition** 将这些参数映射到资源模板,而 **claim**
就是请求本身。无需安装控制平面,可在 CI 和气隙环境中运行。
## 三份文档
```
# definition.yaml — 你暴露的 API
spec:
claimKind: Database
parameters:
engine: {enum: [postgres, mysql], required: true}
size: {enum: [small, medium, large], default: small}
# composition.yaml — 它如何成为现实
spec:
transforms:
sizeToCpu: {type: map, map: {small: 250m, medium: 500m, large: "2"}}
resources:
- base: {kind: StatefulSet, spec: {... cpu: ${size | sizeToCpu} ...}}
# claim.yaml — 开发者的请求
kind: Database
spec: {parameters: {engine: postgres, size: medium}}
```
## 命令
```
python -m crossforge render --definition def.yaml --composition comp.yaml --claim claim.yaml
python -m crossforge params --definition def.yaml --claim claim.yaml
python -m crossforge validate --definition def.yaml --composition comp.yaml
python -m crossforge mcp # local MCP server (stdio JSON-RPC)
```
## crossforge 的独特之处
- **保留类型的替换。** 整个字符串 `${storageGi}` 会保持为 int 类型;
内联的 `name-${x}` 会进行插值 —— 因此渲染出的 manifest 是有效的,而不是
被字符串化的。
- **转换词汇表。** `map`、`default` 和 `format` 涵盖了常见的
参数到资源的映射,无需编写代码。
- **组合检查。** `validate` 会在你发布之前,捕获引用了
未声明参数或未知 transform 的占位符。
- **原生支持 MCP**(`render` / `validate`)以及一个可选的本地集群 AI 钩子
(默认关闭),可根据描述生成 definition + composition 草稿。
## 测试
```
python -m pytest -q # or: python -m unittest discover -s tests
```
## 互操作性
`crossforge` 可与包含 300 多个工具的 Cognis 套件组合使用 —— JSON 输入/输出以及共享的
兼容 OpenAI 的 `/v1` 主干网络。请参阅 **[INTEROP.md](INTEROP.md)** 了解
套件图谱、组合模式和参考技术栈。
## 集成
通过
[`cognis-connect`](https://github.com/cognis-digital/cognis-connect) 将 `crossforge` 的发现结果转发到 STIX/MISP/Sigma/Splunk/Elastic/Slack/webhooks。请参阅 **[INTEGRATIONS.md](INTEGRATIONS.md)**。
## 许可证
Cognis Open Collaboration License (COCL) 1.0 —— 请参阅 [`LICENSE`](LICENSE)。
© 2026 Cognis Digital LLC. 原创的 Cognis 作品;不包含任何第三方代码、名称或
品牌标识。
## 领域
**主要领域:** AI & ML · **JTF MERIDIAN 部门:** ATHENA-PRIME · SAGE
**主题:** `cognis` `ai` `llm` `machine-learning` `kubernetes`
**Cognis Neural Suite** 的一部分 —— 包含 300 多个开源工具,分布在 JTF MERIDIAN 指挥结构下的 12 个领域中。请参阅 [GitHub 上的套件](https://github.com/cognis-digital) 和 [jtf-meridian](https://github.com/cognis-digital/jtf-meridian) 以了解各个组件是如何组合协同的。
## 使用说明 —— 逐步指南
`crossforge` 通过 **composition** 将高层的 **claim** 渲染为满足该请求的具体 Kubernetes 资源 —— 仅需三份文档,无需控制平面。
1. **安装**(纯标准库,Python 3.10+):
pip install "git+https://github.com/cognis-digital/crossforge.git"
2. **校验**你的 composition 是否与 definition 的参数匹配,然后再进行渲染(如果出现问题会以非零状态退出):
crossforge validate --definition def.yaml --composition comp.yaml
3. **检查解析后的参数**(应用了默认值 + 覆盖值):
crossforge params --definition def.yaml --claim claim.yaml
4. **渲染** claim 为资源(使用 `--out` 写入),或者使用 `explain` 查看应用于每个资源的参数 + transform:
crossforge render --definition def.yaml --composition comp.yaml --claim claim.yaml --out out.yaml
crossforge explain --definition def.yaml --composition comp.yaml --claim claim.yaml
5. **自动化** —— 在 CI 中通过一个 composition 渲染多个 claim:
crossforge render-all --definition def.yaml --composition comp.yaml --claim a.yaml --claim b.yaml --out rendered.yaml
或者将其作为本地 MCP 服务器运行(stdio JSON-RPC):`crossforge mcp`。
标签:Python, 声明式API, 子域名突变, 平台工程, 无后门, 逆向工具, 配置渲染