From 004375e0cec4597c999797d3d959a3e24de8ad00 Mon Sep 17 00:00:00 2001 From: opsx Date: Mon, 26 Oct 2026 18:55:06 +0000 Subject: [PATCH] =?UTF-8?q?fix(ns):=20=E5=91=BD=E5=90=8D=E7=A9=BA=E9=97=B4?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=20log=20=E2=80=94=E2=80=94=20=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0/Loki=20=E5=AE=9E=E4=BE=8B/Promtail=20=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E6=94=B6=E6=95=9B=E5=88=B0=20log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 按需求:所有 lokistack 相关资源(管理平台副本、Loki 实例、Promtail 采集器) 固定使用 log 命名空间,不提供覆盖开关。 改动: 1. 后端 services/deployment.go Create():k8s-yaml 模式下 namespace 为空时 兜底为 "log",前端漏传也不会跑偏。 2. 前端 DeploymentCard.tsx:命名空间展示 fallback 'loki' → 'log' 3. 前端 DeploymentFormDialog.tsx:输入框 placeholder 'loki' → 'log' (form-schema.ts 的 DEFAULT_VALUES.namespace 原本已是 'log') 未动: kubernetes/install.sh 的 NS="log" 早就是固定值 collector_deployer.go 已自动跟随 loki.Namespace(collector.Namespace 为空时) 资源名不冲突: 平台 lokistack / lokistack-data / lokistack-secrets / lokistack-nodeport Loki 实例 loki / loki-config / loki-data / loki-headless / loki-storage-credentials Promtail promtail-* (DaemonSet) 镜像:lghost/lokistack:latest + v0.1 = sha256:9d15b7ffbb3d --- backend/services/deployment.go | 5 +++++ frontend/src/pages/deployments/components/DeploymentCard.tsx | 2 +- .../pages/deployments/components/DeploymentFormDialog.tsx | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/services/deployment.go b/backend/services/deployment.go index 5882ed0..30e8cdf 100644 --- a/backend/services/deployment.go +++ b/backend/services/deployment.go @@ -96,6 +96,11 @@ func (s *DeploymentService) Create(req *CreateDeploymentRequest) (*models.LokiDe if req.RetentionDays == 0 { req.RetentionDays = DefaultRetentionDays } + // 命名空间固定为 log:平台自身(lokistack)、Loki 实例(loki)、Promtail + // 全部收敛在同一个 log 命名空间,未显式传值时一律兜底为 log。 + if strings.TrimSpace(req.Namespace) == "" && req.Mode == "k8s-yaml" { + req.Namespace = "log" + } // 版本兼容性预检查 if req.Version != "" { if err := ValidateLokiVersion(req.Version); err != nil { diff --git a/frontend/src/pages/deployments/components/DeploymentCard.tsx b/frontend/src/pages/deployments/components/DeploymentCard.tsx index 0ccfc73..8242225 100644 --- a/frontend/src/pages/deployments/components/DeploymentCard.tsx +++ b/frontend/src/pages/deployments/components/DeploymentCard.tsx @@ -79,7 +79,7 @@ export const DeploymentCard = memo(function DeploymentCard({ { label: '版本', value: d.version }, { label: '目标', value: getTargetLabel(d) }, ...(d.mode !== 'host-docker' ? [ - { label: '命名空间', value: d.namespace || 'loki' }, + { label: '命名空间', value: d.namespace || 'log' }, { label: '副本', value: `${d.replicas} · 保留 ${d.retentionDays || 30} 天` }, ] : [{ label: '保留', value: `${d.retentionDays || 30} 天` }]), { label: '存储', value: d.storageConfig?.name || '本地' }, diff --git a/frontend/src/pages/deployments/components/DeploymentFormDialog.tsx b/frontend/src/pages/deployments/components/DeploymentFormDialog.tsx index daa9176..7faf1c9 100644 --- a/frontend/src/pages/deployments/components/DeploymentFormDialog.tsx +++ b/frontend/src/pages/deployments/components/DeploymentFormDialog.tsx @@ -242,7 +242,7 @@ export const DeploymentFormDialog = memo(function DeploymentFormDialog({ 命名空间 * - +