- 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 滚动与长命令换行,修复内容溢出
53 lines
1.4 KiB
Go
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)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|