Skip to content

项目概览

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

系统上下文图

工作流程

设计亮点

  1. 无 Operator 依赖 - 不需要部署额外的控制器
  2. 任意资源监控 - 通过 GVR 参数指定,不限于特定类型
  3. 原子性退出 - CEL 评估为 true 时立即退出,触发业务容器启动
  4. 信号处理 - 支持 SIGINT/SIGTERM 优雅退出

代码统计

目录文件数核心功能
cmd/1入口、参数解析、informer 创建
cel/2CEL 条件定义、表达式评估
api/v1alpha1/4CRD 类型(备选方案)

基于代码自动生成的文档