mirror of
https://github.com/whyour/qinglong.git
synced 2026-09-20 16:07:11 +08:00
feat(ql3): close cluster alpha milestone
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
| Cluster Integration Candidate | amd64/arm64 集群测试节点 | OS 漏洞策略、SBOM 与镜像库存复核、non-root identity;Admin 额外通过产品 facade smoke | 导入隔离 registry/测试节点,进行多组件集成;不作为 production HA release |
|
||||
| Public Release Set | 生产用户 | 受保护 tag、六镜像 multi-arch digest(Local Application/operator + Cluster 四角色)、签名/attestation、私有发布证据、catalog、Local/Cluster 部署与回退闭环 | 尚未实际发布;只能由受保护 release workflow 生成 |
|
||||
|
||||
只有 `Local Alpha Trial Kit` 可以称为本阶段“用户可试运行产物”。单个 headless runtime 和 Cluster archive 都只是工程候选;后者还不满足正式 Kubernetes deployment-lock 的 GHCR immutable digest 与 catalog provenance。
|
||||
`Local Alpha Trial Kit + Local milestone index` 是本阶段的用户可试运行产物;`Cluster Integration Candidate + Cluster milestone index` 是集群部署者可下载、可离线验真的集成产物。单个 headless runtime、单个 Cluster archive 或没有 milestone index 的部分矩阵产物都只是工程中间件。Cluster milestone 仍不满足正式 Kubernetes deployment-lock 的 GHCR immutable digest 与 catalog provenance。
|
||||
|
||||
## 当前阶段实物(2026-08-27)
|
||||
|
||||
@@ -28,12 +28,14 @@ ADR-0506 现要求 `qinglong/alpha-local-trial-kit@v2` 额外包含 `verificatio
|
||||
|
||||
## 生成
|
||||
|
||||
在 GitHub Actions 手动运行 `QingLong 3.0 CI`,选择目标 `next` 提交并设置 `produce_alpha_artifacts=true`。普通 push/PR 不上传大镜像,避免每次开发提交都制造伪里程碑和额外存储成本。
|
||||
在 GitHub Actions 手动运行 `QingLong 3.0 CI`,选择目标 `next` 提交,设置 `produce_alpha_artifacts=true`,并明确选择 `alpha_artifact_scope=local|cluster|all`。普通 push/PR 不上传大镜像,避免每次开发提交都制造伪里程碑和额外存储成本。
|
||||
|
||||
成功后同一次 run 生成、保留 30 天:
|
||||
|
||||
- `ql3-alpha-<commit>-local-amd64` 与 `ql3-alpha-<commit>-local-arm64`;
|
||||
- `ql3-alpha-<commit>-local-milestone`;
|
||||
- `ql3-alpha-<commit>-control-<arch>`、`control-ai-<arch>`、`admin-<arch>`、`worker-<arch>`。
|
||||
- `ql3-alpha-<commit>-cluster-milestone`。
|
||||
|
||||
Local artifact 含:
|
||||
|
||||
@@ -43,7 +45,7 @@ Local artifact 含:
|
||||
- 与实际只读镜像 inventory 对账过的 CycloneDX SBOM;
|
||||
- 面向 Local 用户的 README 与覆盖全部内容文件的 `SHA256SUMS`。
|
||||
|
||||
Cluster artifact 仍是每个角色一个 native Docker archive 和各自 manifest。
|
||||
Cluster artifact 是每角色/架构一个六文件闭包:native Docker archive、精确 CycloneDX SBOM、workflow-bound verification evidence、README、`qinglong/alpha-cluster-image@v1` manifest 和覆盖全部内容文件的 `SHA256SUMS`。完整 CI 成功后,八个 bundle 由 `qinglong/alpha-cluster-milestone@v1` 小型索引闭合;索引本身不重复存放大 archive。
|
||||
|
||||
任何 required job 失败时不上传对应产物。artifact 名和 archive 内的 `ci-*` tag 都表示 commit-bound candidate,不能改名后冒充 `v3.x` release。
|
||||
|
||||
@@ -82,4 +84,4 @@ Cluster candidate 必须先导入隔离 registry 并重新绑定该 registry 的
|
||||
|
||||
## 里程碑判定
|
||||
|
||||
一次用户阶段里程碑只有同时记录以下事实才成立:源码 commit、版本、两种 Tier-1 架构的 Application/operator、完整 CI run、artifact 名与 digest、fresh setup→首 Owner→active→stop 的目标 Profile smoke、已知限制和回退路径。仅有源码、`dist/`、单元测试数字、Dockerfile、单个 headless runtime 或“理论上可构建”都不算用户可用产物。
|
||||
一次 Local 用户阶段里程碑只有同时记录以下事实才成立:源码 commit、版本、两种 Tier-1 架构的 Application/operator、完整 CI run、artifact 名与 digest、fresh setup→首 Owner→active→stop 的目标 Profile smoke、已知限制和回退路径。一次 Cluster 集成里程碑还必须精确闭合四角色乘两架构、同一 run/attempt 和八个独立主体。仅有源码、`dist/`、单元测试数字、Dockerfile、单个 headless runtime 或“理论上可构建”都不算阶段可用产物。
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# QingLong 3.0 Cluster Alpha Integration Milestone
|
||||
|
||||
本目录是一次完整 Cluster Alpha integration milestone 的闭合索引,不包含八个大体积 Docker archive。`manifest.json` 精确列出同一次 GitHub Actions run 生成并离线复核的 control、control-ai、admin、worker 在 amd64、arm64 上的八个 artifact。只有该索引和目标 artifact 同时存在,才可把这次运行称为阶段性 Cluster 集成产物。
|
||||
|
||||
## 成熟度边界
|
||||
|
||||
- `maturity` 固定为 `cluster_integration_candidate_not_public_release`;
|
||||
- 适用于隔离 registry、临时 Kubernetes/K3s 节点和非生产数据库上的集成验证;
|
||||
- 不提供公开 GHCR tag、不可变 catalog selection、Cosign 签名、GitHub attestation、生产 HA、升级或长期支持承诺;
|
||||
- 低配路由器/NAS 应选择 Local Alpha Trial Kit,不能部署四个 Cluster 角色。
|
||||
|
||||
任何单角色或单架构 artifact 提前上传都只是中间文件。缺少 `ql3-alpha-<sourceRevision>-cluster-milestone`、完整 CI 未成功、run/attempt 不一致或索引审计失败时,不得作为阶段交付物。
|
||||
|
||||
## 选择并验证下载物
|
||||
|
||||
1. 在本目录执行 `sha256sum --check SHA256SUMS`。
|
||||
2. 确认 `manifest.json`:
|
||||
- schema 为 `qinglong/alpha-cluster-milestone@v1`;
|
||||
- `sourceRevision` 为目标完整 40 位提交;
|
||||
- workflow event/job 为 `workflow_dispatch` / `cluster-alpha-milestone`;
|
||||
- 对应 run ID/attempt 的完整 `QingLong 3.0 CI` 成功;
|
||||
- `artifacts` 恰好包含四角色乘两架构的八项。
|
||||
3. 按节点架构和需要的角色下载 artifact;一个可运行的完整 Cluster 测试部署通常需要 control、admin、worker,启用 AI 才增加 control-ai。
|
||||
4. 对每个 bundle 执行其 `SHA256SUMS`,并核对 bundle `manifest.json` 的 digest 等于 milestone `bundleManifest.sha256`。
|
||||
5. 使用隔离 registry 导入 Docker archive,再以导入后的 immutable digest 更新测试 deployment lock;不要直接依赖 archive 内的 `ci-*` tag。
|
||||
|
||||
持有同版本源码与 Node.js 24 时可离线复审:
|
||||
|
||||
```sh
|
||||
node scripts/ql3-cluster-alpha-milestone.cjs \
|
||||
--mode=audit \
|
||||
--milestone=/absolute/path/to/ql3-alpha-cluster-milestone
|
||||
|
||||
node scripts/ql3-cluster-alpha-bundle.cjs \
|
||||
--mode=offline-audit \
|
||||
--bundle=/absolute/path/to/one-cluster-bundle
|
||||
```
|
||||
|
||||
这两个命令不访问 Docker 或网络;它们验证闭合文件集、长度、SHA-256、SBOM identity、workflow evidence、角色/架构集合和八个主体互不复用。它们不会重新执行漏洞扫描或 Kubernetes live gate。
|
||||
|
||||
## 部署与回退
|
||||
|
||||
Cluster candidate 只应进入临时命名空间、隔离 registry 和可删除数据库。回退方式是删除测试 workload 与测试数据、撤销临时 credential,并回到原 deployment lock。生产 CloudNativePG、跨主机 STONITH/DR、CSI custody、外部 ingress TLS/IdP 和正式升级仍必须由 Public Release Set 的 catalog-bound deployment ceremony 证明。
|
||||
Reference in New Issue
Block a user