ci: build linux application image
Some checks failed
ci / openapi (push) Has been cancelled
ci / proto (push) Has been cancelled
ci / image (push) Has been cancelled
ci / deployment (push) Has been cancelled
ci / test (ubuntu-latest) (push) Has been cancelled
ci / test (windows-latest) (push) Has been cancelled
ci / race (push) Has been cancelled
ci / integration (push) Has been cancelled

This commit is contained in:
youfak 2026-08-07 21:11:36 +08:00
parent 4f0245a7ec
commit d6ac783c1d
6 changed files with 22 additions and 1 deletions

View File

@ -29,6 +29,13 @@ jobs:
- shell: pwsh
run: ./scripts/verify-proto.ps1
image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Linux application image
run: docker build --file deploy/docker/Dockerfile --tag proxy-pool:ci .
deployment:
runs-on: ubuntu-latest
env:

View File

@ -22,7 +22,7 @@ func TestCIValidatesProtocolAndDeploymentAssets(t *testing.T) {
if !ok {
t.Fatal("ci workflow has no jobs")
}
for _, name := range []string{"openapi", "proto", "deployment", "test", "race", "integration"} {
for _, name := range []string{"openapi", "proto", "image", "deployment", "test", "race", "integration"} {
if _, exists := jobs[name]; !exists {
t.Errorf("ci workflow has no %s job", name)
}
@ -30,6 +30,7 @@ func TestCIValidatesProtocolAndDeploymentAssets(t *testing.T) {
for _, required := range []string{
"./scripts/verify-openapi.ps1",
"./scripts/verify-proto.ps1",
"docker build --file deploy/docker/Dockerfile --tag proxy-pool:ci .",
"docker compose -f deploy/docker-compose.yml config --quiet",
"docker compose -f deploy/docker-compose.test.yml config --quiet",
"go run ./deploy/tools/configcheck deploy/config/local.yaml",

View File

@ -377,6 +377,8 @@ Gateway 热路径。`platform/logging` 以 JSON `slog` 输出进程级致命错
CI 另有独立 Deployment job在占位凭据下渲染 Compose并使用 `kubectl kustomize`
渲染 Kubernetes base 和单副本 development mTLS Overlay该 job 同时展开测试 Compose、
校验本地 Compose 配置。它不启动容器、不访问真实存储或密钥。
独立 Image job 会构建 Linux 多阶段应用镜像,覆盖 Dockerfile、Linux 交叉编译与运行时层;
容器服务编排和业务运行链路仍需在具备镜像网络的环境中验证。
development Overlay 已挂载独立 Controller/Gateway/Checker TLS Secret、启用 Checker 和最小
网络策略,并从固定开发证书派生 `gateway-a`、`checker-a` 身份且 HPA 锁为单副本,不能代替生产证书轮换。
控制面 TLS 叶证书和信任根已在每次新握手时从文件加载,短暂文件不一致时保留最后一次有效材料;

View File

@ -114,6 +114,9 @@ SPIFFE URI 解析器X.509-SVID 叶证书必须且只能包含一个 URI SAN
生产环境仍必须通过独立 Overlay 为每个弹性 Worker 注入唯一 SPIFFE URI且容器端到端
启动仍待具备镜像网络的环境验证。
GitHub Actions 另行执行 Dockerfile 的 Linux 多阶段镜像构建;该门禁证明镜像可以构建,
不替代 Controller/Gateway/Checker 与真实 Redis/PostgreSQL 的容器运行验证。
运维手册已覆盖管理面/活动池恢复顺序、发布与兼容回滚、Secret 轮换、容量计算,以及
主机内核、文件描述符、NAT/conntrack 的只读基线和证据采集要求;这些文档不替代真实环境
的备份恢复、驱逐或容量演练。

View File

@ -286,3 +286,9 @@ Routing 自上而下匹配,首条命中停止;支持 Gateway 与 Extract 两
- development mTLS Overlay 的 ConfigMap 采用 Kustomize 内容哈希,渲染契约要求三个工作负载
都引用同一版本化名称,因此配置变更进入 Pod 模板并触发滚动。外部固定名称 Secret 不含内容哈希,
它们的轮换需要平台侧 reloader 或受控显式滚动;这一限制已写入运行手册。
## Linux 镜像构建审计2026-08-07
- GitHub Actions 现在在 Linux Runner 执行 Dockerfile 多阶段构建,覆盖目标平台 Go 编译和最小
运行时层。该 job 依赖 Runner 镜像网络;它不启动 Compose 服务,因此不能作为 mTLS、存储、
探针或优雅停机端到端证据。

View File

@ -2,6 +2,8 @@
## 2026-08-07
- GitHub Actions 新增 Linux Dockerfile 镜像构建 job覆盖多阶段交叉编译和运行时镜像层
本机不具备基础镜像网络,因此未将其替代为本地 Compose 运行验证。
- 已校正 `proxy-loadgen` 架构文档HTTP、CONNECT 长连接和 Extract 都已实现;仅故障注入、
进程级资源采样和代表性集群报告仍未完成。
- Kubernetes 开发 mTLS Overlay 恢复 ConfigMap 内容哈希:配置更新会重写 Controller、Gateway