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
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:
parent
4f0245a7ec
commit
d6ac783c1d
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@ -29,6 +29,13 @@ jobs:
|
|||||||
- shell: pwsh
|
- shell: pwsh
|
||||||
run: ./scripts/verify-proto.ps1
|
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:
|
deployment:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
|
|||||||
@ -22,7 +22,7 @@ func TestCIValidatesProtocolAndDeploymentAssets(t *testing.T) {
|
|||||||
if !ok {
|
if !ok {
|
||||||
t.Fatal("ci workflow has no jobs")
|
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 {
|
if _, exists := jobs[name]; !exists {
|
||||||
t.Errorf("ci workflow has no %s job", name)
|
t.Errorf("ci workflow has no %s job", name)
|
||||||
}
|
}
|
||||||
@ -30,6 +30,7 @@ func TestCIValidatesProtocolAndDeploymentAssets(t *testing.T) {
|
|||||||
for _, required := range []string{
|
for _, required := range []string{
|
||||||
"./scripts/verify-openapi.ps1",
|
"./scripts/verify-openapi.ps1",
|
||||||
"./scripts/verify-proto.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.yml config --quiet",
|
||||||
"docker compose -f deploy/docker-compose.test.yml config --quiet",
|
"docker compose -f deploy/docker-compose.test.yml config --quiet",
|
||||||
"go run ./deploy/tools/configcheck deploy/config/local.yaml",
|
"go run ./deploy/tools/configcheck deploy/config/local.yaml",
|
||||||
|
|||||||
@ -377,6 +377,8 @@ Gateway 热路径。`platform/logging` 以 JSON `slog` 输出进程级致命错
|
|||||||
CI 另有独立 Deployment job,在占位凭据下渲染 Compose,并使用 `kubectl kustomize`
|
CI 另有独立 Deployment job,在占位凭据下渲染 Compose,并使用 `kubectl kustomize`
|
||||||
渲染 Kubernetes base 和单副本 development mTLS Overlay;该 job 同时展开测试 Compose、
|
渲染 Kubernetes base 和单副本 development mTLS Overlay;该 job 同时展开测试 Compose、
|
||||||
校验本地 Compose 配置。它不启动容器、不访问真实存储或密钥。
|
校验本地 Compose 配置。它不启动容器、不访问真实存储或密钥。
|
||||||
|
独立 Image job 会构建 Linux 多阶段应用镜像,覆盖 Dockerfile、Linux 交叉编译与运行时层;
|
||||||
|
容器服务编排和业务运行链路仍需在具备镜像网络的环境中验证。
|
||||||
development Overlay 已挂载独立 Controller/Gateway/Checker TLS Secret、启用 Checker 和最小
|
development Overlay 已挂载独立 Controller/Gateway/Checker TLS Secret、启用 Checker 和最小
|
||||||
网络策略,并从固定开发证书派生 `gateway-a`、`checker-a` 身份且 HPA 锁为单副本,不能代替生产证书轮换。
|
网络策略,并从固定开发证书派生 `gateway-a`、`checker-a` 身份且 HPA 锁为单副本,不能代替生产证书轮换。
|
||||||
控制面 TLS 叶证书和信任根已在每次新握手时从文件加载,短暂文件不一致时保留最后一次有效材料;
|
控制面 TLS 叶证书和信任根已在每次新握手时从文件加载,短暂文件不一致时保留最后一次有效材料;
|
||||||
|
|||||||
@ -114,6 +114,9 @@ SPIFFE URI 解析器:X.509-SVID 叶证书必须且只能包含一个 URI SAN
|
|||||||
生产环境仍必须通过独立 Overlay 为每个弹性 Worker 注入唯一 SPIFFE URI,且容器端到端
|
生产环境仍必须通过独立 Overlay 为每个弹性 Worker 注入唯一 SPIFFE URI,且容器端到端
|
||||||
启动仍待具备镜像网络的环境验证。
|
启动仍待具备镜像网络的环境验证。
|
||||||
|
|
||||||
|
GitHub Actions 另行执行 Dockerfile 的 Linux 多阶段镜像构建;该门禁证明镜像可以构建,
|
||||||
|
不替代 Controller/Gateway/Checker 与真实 Redis/PostgreSQL 的容器运行验证。
|
||||||
|
|
||||||
运维手册已覆盖管理面/活动池恢复顺序、发布与兼容回滚、Secret 轮换、容量计算,以及
|
运维手册已覆盖管理面/活动池恢复顺序、发布与兼容回滚、Secret 轮换、容量计算,以及
|
||||||
主机内核、文件描述符、NAT/conntrack 的只读基线和证据采集要求;这些文档不替代真实环境
|
主机内核、文件描述符、NAT/conntrack 的只读基线和证据采集要求;这些文档不替代真实环境
|
||||||
的备份恢复、驱逐或容量演练。
|
的备份恢复、驱逐或容量演练。
|
||||||
|
|||||||
@ -286,3 +286,9 @@ Routing 自上而下匹配,首条命中停止;支持 Gateway 与 Extract 两
|
|||||||
- development mTLS Overlay 的 ConfigMap 采用 Kustomize 内容哈希,渲染契约要求三个工作负载
|
- development mTLS Overlay 的 ConfigMap 采用 Kustomize 内容哈希,渲染契约要求三个工作负载
|
||||||
都引用同一版本化名称,因此配置变更进入 Pod 模板并触发滚动。外部固定名称 Secret 不含内容哈希,
|
都引用同一版本化名称,因此配置变更进入 Pod 模板并触发滚动。外部固定名称 Secret 不含内容哈希,
|
||||||
它们的轮换需要平台侧 reloader 或受控显式滚动;这一限制已写入运行手册。
|
它们的轮换需要平台侧 reloader 或受控显式滚动;这一限制已写入运行手册。
|
||||||
|
|
||||||
|
## Linux 镜像构建审计(2026-08-07)
|
||||||
|
|
||||||
|
- GitHub Actions 现在在 Linux Runner 执行 Dockerfile 多阶段构建,覆盖目标平台 Go 编译和最小
|
||||||
|
运行时层。该 job 依赖 Runner 镜像网络;它不启动 Compose 服务,因此不能作为 mTLS、存储、
|
||||||
|
探针或优雅停机端到端证据。
|
||||||
|
|||||||
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## 2026-08-07
|
## 2026-08-07
|
||||||
|
|
||||||
|
- GitHub Actions 新增 Linux Dockerfile 镜像构建 job,覆盖多阶段交叉编译和运行时镜像层;
|
||||||
|
本机不具备基础镜像网络,因此未将其替代为本地 Compose 运行验证。
|
||||||
- 已校正 `proxy-loadgen` 架构文档:HTTP、CONNECT 长连接和 Extract 都已实现;仅故障注入、
|
- 已校正 `proxy-loadgen` 架构文档:HTTP、CONNECT 长连接和 Extract 都已实现;仅故障注入、
|
||||||
进程级资源采样和代表性集群报告仍未完成。
|
进程级资源采样和代表性集群报告仍未完成。
|
||||||
- Kubernetes 开发 mTLS Overlay 恢复 ConfigMap 内容哈希:配置更新会重写 Controller、Gateway
|
- Kubernetes 开发 mTLS Overlay 恢复 ConfigMap 内容哈希:配置更新会重写 Controller、Gateway
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user