Files
LokiStack/backend/services/loki_object_store_test.go
T
logan 9f7c522157 feat: K8s 部署清单、Token 接入加固与日志/设置页优化
- kubernetes/: 30Gi PVC、单副本 Recreate、Secret/Service/NodePort/Ingress 清单与部署文档
- 数据安全: kubeconfig/token 统一加密存储,启动迁移历史明文,DB 0600
- Token 接入: 命名空间级最小权限提示、长期 Token、自签证书 TLS 兼容
- 部署: 命名空间级 Token 下跳过 Namespace patch/枚举,节点信息容错
- 日志页: namespace → app → pod 选择顺序与作用域收窄
- 设置页: 拆分为通用/告警/LDAP/镜像源四个 tab
- 弹框: 统一 max-h 滚动与长命令换行,修复内容溢出
2026-10-25 23:44:07 +08:00

53 lines
1.4 KiB
Go

package services
import (
"fmt"
"strings"
"testing"
"opsxloki/models"
)
// TestObjectStoreConfigs 验证 OSS / COS / OBS 生成的 Loki 配置:
// 走 S3 兼容(object_store: s3 + bucketnames),虚拟主机风格,compactor 用本地盘。
func TestObjectStoreConfigs(t *testing.T) {
for _, typ := range []string{"oss", "cos", "obs"} {
t.Run(typ, func(t *testing.T) {
d := &models.LokiDeployment{
Name: "test-loki",
Namespace: "log",
Mode: "k8s-yaml",
Replicas: 1,
RetentionDays: 15,
StorageConfig: &models.StorageConfig{
StorageType: typ,
Bucket: "test-bucket",
Endpoint: "oss-cn-hongkong.aliyuncs.com",
Region: "oss-cn-hongkong",
AccessKey: "AKTEST",
SecretKey: "SKTEST",
PathPrefix: "loki",
},
}
cfg := NewLokiDeployer(d, func(level, message, detail string) {}).generateLokiConfig()
fmt.Printf("---- %s ----\n%s\n", typ, cfg)
if strings.Contains(cfg, "alibabacloud") {
t.Fatal("storage_config still contains alibabacloud")
}
for _, want := range []string{
"object_store: s3",
"bucketnames: test-bucket",
"endpoint: oss-cn-hongkong.aliyuncs.com",
"region: oss-cn-hongkong",
"s3forcepathstyle: false",
"delete_request_store: filesystem",
} {
if !strings.Contains(cfg, want) {
t.Fatalf("missing %q", want)
}
}
})
}
}