From 159a75b7108221ba85c3786125c21de744ba17f9 Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Fri, 18 Sep 2026 17:40:24 +0000 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=20sandbox=20ESO=20=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infrastructure/openbao/README.md | 3 ++- infrastructure/sandbox-cluster/README.md | 3 ++- platform/sandbox-external-secrets/README.md | 13 ++++++++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/infrastructure/openbao/README.md b/infrastructure/openbao/README.md index d8ee994..c807bab 100644 --- a/infrastructure/openbao/README.md +++ b/infrastructure/openbao/README.md @@ -96,7 +96,8 @@ Sandbox 集群使用独立的 `auth/kubernetes-sandbox`。其 API 地址、公 ESO role 与只读 `kv/k8s/opensandbox-api` policy 全部由 Terraform 管理;CA 位于 `terraform/certs/sandbox-kubernetes-ca.crt`。集群重建并轮换 CA 后,先更新该文件并 apply,再让 Flux 恢复 ESO reconciliation。该 backend 不保存 reviewer JWT,而是使用 -ESO 的短期登录 JWT 执行 TokenReview。 +ESO 的短期登录 JWT 执行 TokenReview。该组资源已于 2026-09-18 apply,随后复验 plan +为 zero-diff。 ## DNS diff --git a/infrastructure/sandbox-cluster/README.md b/infrastructure/sandbox-cluster/README.md index 1fde90e..e0bfeaa 100644 --- a/infrastructure/sandbox-cluster/README.md +++ b/infrastructure/sandbox-cluster/README.md @@ -18,7 +18,8 @@ Flux 管理以下 Kubernetes 资源: - Kata Containers 和 CI 专用的 `block-plain` RuntimeClass; - SPIRE Agent、SPIFFE CSI Driver 与 workload identity 声明; - vmagent、kube-state-metrics、kubelet/cAdvisor scrape 配置和告警; -- OpenSandbox controller/server;CI Pool 与 runner 调度器由 runner 项目接入。 +- sandbox External Secrets Operator、OpenSandbox controller/server;CI Pool 与 runner + 调度器由 runner 项目接入。 同一个对象只能有一个 owner。Ansible 不直接部署上述集群内 workload;Flux 不管理 LXC、K3s datastore 或 K3s 本身。 diff --git a/platform/sandbox-external-secrets/README.md b/platform/sandbox-external-secrets/README.md index 775f417..027972d 100644 --- a/platform/sandbox-external-secrets/README.md +++ b/platform/sandbox-external-secrets/README.md @@ -4,6 +4,17 @@ `ClusterSecretStore/openbao` 读取 OpenBao KV v2 中共享的 OpenSandbox API key。它不复用 homelab 集群的 ESO Pod、ServiceAccount 或 Kubernetes auth backend。 +## 当前状态 + +- OpenBao `auth/kubernetes-sandbox`、backend config、`external-secrets` role 与 + `sandbox-external-secrets` policy 已于 2026-09-18 由 Terraform 创建;apply 后 plan + 为 zero-diff; +- `kv/k8s/opensandbox-api` 已由本机 `spiffe://ddupan.top/dev/panxiao81` 身份生成并写入, + 值未输出或落盘; +- sandbox ESO operator、`ClusterSecretStore/openbao` 与 OpenSandbox `ExternalSecret` + 由 Flux 管理; +- homelab runner 对同一 key 的投影不在本目录,留给 runner 项目管理。 + OpenBao 的 `auth/kubernetes-sandbox`、对应 role、policy、sandbox API 地址与公开 CA 完全由 `infrastructure/openbao/terraform/` 管理。CA 文件提交到 Git 是刻意设计:CA 是公开信任材料,版本化后集群重建造成的 trust root 变化会产生可审计的 Terraform diff。 @@ -12,7 +23,7 @@ ESO 使用 TokenRequest 生成短期 ServiceAccount JWT。OpenBao 未配置长 `token_reviewer_jwt`,而是使用登录 JWT 调用 sandbox TokenReview;因此 `external-secrets` ServiceAccount 仅额外绑定内建 `system:auth-delegator`。 -## 部署顺序 +## 重建顺序 1. 在 OpenBao 写入 OpenSandbox API key: