From 0eb3f8172687ec81004511e78c04f0936d60397c Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Sun, 20 Sep 2026 20:28:24 +0000 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=20Nexus=20POC=20=E7=8E=B0?= =?UTF-8?q?=E5=9C=BA=E9=AA=8C=E6=94=B6=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/index.md | 2 +- services/nexus.md | 40 ++++++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/services/index.md b/services/index.md index e8e3cd0..2cface2 100644 --- a/services/index.md +++ b/services/index.md @@ -22,7 +22,7 @@ SPIFFE/SPIRE 已按维护者授权补读 #34;LAN DNS 与 Authelia 已按维护 | [marker](marker.md) | GPU 文档转换 API | `集群内端口 8001` | 配置与部署指南;未附上线记录 | `apps/marker/README.md` | 已有转换示例;部署镜像仍为占位符 | | netboot | PXE 与系统安装 | `192.168.10.127` | 有部署及使用记录 | `apps/netboot/README.md` | 已有客户端启动说明 | | [netbox](netbox.md) | 网络资产与地址管理评估 | `netbox.ad.ddupan.top` | 记录已部署;评估用途 | `apps/netbox/README.md` | 已有浏览与 Git 修改入口指南 | -| [nexus](nexus.md) | CI 包代理与统一制品仓库 POC | `nexus.ad.ddupan.top` | 仅有未提交配置,尚未部署验证 | `apps/nexus/README.md` | 先验收 Ansible/Go,再补 OCI 声明式管理与 BuildKit 测试 | +| [nexus](nexus.md) | CI 包代理与统一制品仓库 POC | `nexus.ad.ddupan.top` | 2026-09-20 已部署并现场验证 Ansible/Go 冷热缓存 | `apps/nexus/README.md` | 补 OCI 声明式管理、BuildKit 与备份恢复测试 | | [openviking](openviking.md) | 上下文检索服务 | `记录端口 1933 / 8020` | 配置与部署指南;未附上线记录 | `apps/openviking/README.md` | 已有导入、任务查询、检索与原文读取指南 | | [ps3netsrv](ps3netsrv.md) | PS3 网络内容服务 | `宿主 TCP 38008;地址未记录` | Docker 运维文档记录运行 | `apps/ps3netsrv/docker-compose.yml` | 已有客户端与内容目录指南 | | [seaweedfs](seaweedfs.md) | S3 对象存储 | `s3.ad.ddupan.top` | zot 文档记录已使用 | `apps/seaweedfs/README.md` | 已有客户端读写指南与备份边界说明 | diff --git a/services/nexus.md b/services/nexus.md index 6fd21cd..48d20e3 100644 --- a/services/nexus.md +++ b/services/nexus.md @@ -1,24 +1,26 @@ --- title: Nexus Repository POC lifecycle: experimental -evidence: configuration -last_reviewed: 2026-09-18 -last_verified: null +evidence: live-verified +last_reviewed: 2026-09-20 +last_verified: 2026-09-20 sources: [] --- # Nexus Repository POC -Nexus Repository Community Edition POC 计划为一次性 CI runner 提供共享的 Ansible Galaxy、 -Go Modules 与 OCI/BuildKit 缓存,减少每个 job 从公网重新下载依赖的时间。当前只有未提交的 -GitOps 与 Terraform 配置,尚未部署、初始化或完成端到端验证;现役 zot 保持不变。 +Nexus Repository Community Edition POC 为一次性 CI runner 提供共享的 Ansible Galaxy 与 +Go Modules 缓存,减少每个 job 从公网重新下载依赖的时间。GitOps 已部署,两个代理链路已 +完成现场冷/热缓存验证;OCI/BuildKit 尚未纳入本轮验收,现役 zot 保持不变。 ## 从哪里使用 -- 计划入口:`https://nexus.ad.ddupan.top`,仅 LAN。 -- 人类管理:POC 首次使用本地管理员;后续正式化优先使用 Samba AD LDAP。Community +- 入口:`https://nexus.ad.ddupan.top`,仅 LAN。 +- 人类管理:当前使用本地管理员,凭据受管于 OpenBao `kv/infra/nexus`;尚未配置 LDAP。 + 后续正式化优先使用 Samba AD LDAP。Community Edition 不提供原生 OIDC/SAML,因此不能把 Authelia OIDC 写成已支持入口。 -- CI 读取:目标是对 public/group repository 开放 LAN 匿名只读。 +- CI 读取:`ansible-public`、Ansible 返回制品 URL 使用的成员 proxy 与 `go-public` 已开放 + LAN 匿名只读;Terraform 明确收窄权限,未使用默认的全仓库匿名角色。 - CI 发布:目标是少量按信任边界划分的本地 service account,凭据由 OpenBao 保存; 当前 POC 尚未创建 publisher 或授予写权限。 @@ -45,8 +47,9 @@ ansible-galaxy collection install -r collections/requirements.yml \ -p .ansible/collections ``` -预期首次请求从上游获取 collection,第二次在全新 runner 中由 Nexus 返回已缓存内容。 -该预期尚未现场验证;验证时同时记录冷/热耗时和 Nexus 日志,不能只看命令退出码。 +2026-09-20 使用两个全新客户端目录下载 `community.general:11.2.0`:冷缓存 8.49 秒、 +热缓存 1.89 秒,两份 tarball SHA-256 一致。Nexus Ansible format 返回的制品 URL 指向 +成员 proxy,因此匿名角色必须同时具备 group 与该 proxy 的只读权限。 Go POC 使用: @@ -57,6 +60,9 @@ GOPROXY=https://nexus.ad.ddupan.top/repository/go-public/ go mod download 私有 module 的 `GOPRIVATE`、认证和 fallback 需由实际 workflow 明确配置,不能把内部 module 路径意外发送到公共 proxy。 +2026-09-20 使用两个全新 Go module cache 下载 `golang.org/x/text@v0.30.0`:冷缓存 +2.92 秒、热缓存 1.51 秒,均通过 `go-public` 匿名入口完成。 + ## POC 限制 - 单副本、50 GiB OpenEBS RWO PVC,资源上限 2 CPU / 4 GiB。 @@ -83,8 +89,8 @@ WAN,不以重建 PVC 作为排障手段。 ## 运维入口 -实现入口为 homelab-infra 工作区中尚未提交的 `apps/nexus/` 与 -`clusters/homelab/apps/nexus.yaml`。DNS 期望记录位于 `infrastructure/dns/records.yml`。 +实现入口为 homelab-infra 已合并的 `apps/nexus/` 与 +`clusters/homelab/apps/nexus.yaml`。DNS 记录位于 `infrastructure/dns/records.yml`。 源码 README 维护部署、初始化、Terraform、验收与恢复边界。 部署依赖 Envoy Gateway、OpenEBS 和 LAN DNS;Terraform 管理依赖 Nexus 初始化后的受限管理 @@ -92,6 +98,8 @@ WAN,不以重建 PVC 作为排障手段。 ## 当前状态与证据 -2026-09-18 已准备未提交的 Kubernetes、Flux、DNS 与 Terraform POC 配置,并完成本地渲染和 -schema 检查后方可交付;未访问现场、未部署 Nexus、未申请凭据,也未修改或迁移 zot。 -后续状态必须以合并记录、Flux 状态和客户端冷/热缓存验收分别更新,不能仅凭本页推断上线。 +2026-09-20 现场确认 Flux Kustomization Ready、Nexus Pod Ready、50 GiB PVC Bound,HTTPRoute +经 HTTPS 状态 API 返回 200;Samba DNS apply 后复查 `changed=0`。Terraform 已创建 Ansible、 +Go proxy/group 和最小匿名只读角色,二次 plan 为 `No changes`;上述客户端冷/热测试成功。 +实现来源为 homelab-infra PR #103。尚未验证 OCI、BuildKit cache、备份恢复或外部 PostgreSQL, +也未修改或迁移 zot,因此本页的 `live-verified` 仅覆盖已明确列出的 POC 范围。 -- 2.54.0