项目概览
text
# 相关代码:
- cmd/main.go # 程序入口
- cel/ # CEL 表达式引擎
- api/v1alpha1/ # CRD 类型定义(备选方案)一句话定义
Pod Running Control 是一个 Kubernetes init-container,通过监听资源变化并评估 CEL 表达式来阻塞业务容器启动。
技术栈
| 类别 | 技术 |
|---|---|
| 语言 | Go 1.25 |
| 框架 | Kubernetes client-go |
| 表达式引擎 | google/cel-go + k8s.io/apiserver CEL |
| 容器镜像 | distroless/static:nonroot |
| 依赖管理 | Go modules + vendor |
系统上下文图
工作流程
设计亮点
- 无 Operator 依赖 - 不需要部署额外的控制器
- 任意资源监控 - 通过 GVR 参数指定,不限于特定类型
- 原子性退出 - CEL 评估为 true 时立即退出,触发业务容器启动
- 信号处理 - 支持 SIGINT/SIGTERM 优雅退出
代码统计
| 目录 | 文件数 | 核心功能 |
|---|---|---|
cmd/ | 1 | 入口、参数解析、informer 创建 |
cel/ | 2 | CEL 条件定义、表达式评估 |
api/v1alpha1/ | 4 | CRD 类型(备选方案) |