# configmap.yaml — 后端配置 (ConfigMap) + 敏感信息 (Secret) # ---------------------------------------------------------------------------- # ConfigMap aiops-config: # - 内含 config.yaml,DB/Redis 连接信息以环境变量占位(${VAR})。 # - 后端 Deployment 将其挂载到 /app/configs/config.yaml(viper 搜索路径 ./configs)。 # # Secret aiops-secret: # - 存放 MySQL 密码与 JWT 密钥(明文敏感信息不放 ConfigMap)。 # - 由 backend Deployment / mysql StatefulSet 以环境变量注入。 # # 部署: kubectl apply -f configmap.yaml # ---------------------------------------------------------------------------- --- apiVersion: v1 kind: ConfigMap metadata: name: aiops-config namespace: devops labels: app.kubernetes.io/name: aiops app.kubernetes.io/component: backend data: config.yaml: | # AIOps 后端配置 # DB/Redis 连接通过环境变量注入(见 backend Deployment 的 env 段)。 # 敏感字段 (password / jwt) 由 Secret aiops-secret 提供。 # 注意: viper.AutomaticEnv 默认不替换嵌套键中的点(.),如需 DATABASE_HOST -> # database.host 生效,请在 backend 启动时设置: # viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_")) mode: release port: "8080" log_level: info # ---- 数据库 (MySQL) ---- database: driver: mysql host: "${DB_HOST}" # -> mysql (k8s Service) port: 3306 user: "${DB_USER}" # -> aiops password: "${DB_PASSWORD}" # <- Secret aiops-secret (database-password) dbname: "${DB_NAME}" # -> aiops charset: utf8mb4 max_conn: 100 max_idle: 10 # ---- Redis ---- redis: driver: redis # redka(内嵌) / redis(外部) host: "${REDIS_HOST}" # -> redis (k8s Service) port: 6379 password: "${REDIS_PASSWORD}" # 本环境 Redis 无密码,留空 db: 0 # ---- JWT ---- jwt: secret: "${JWT_SECRET}" # <- Secret aiops-secret (jwt-secret) expire_hour: 24 # ---- WebSocket ---- websocket: read_buffer_size: 1024 write_buffer_size: 1024 --- apiVersion: v1 kind: Secret metadata: name: aiops-secret namespace: devops labels: app.kubernetes.io/name: aiops type: Opaque stringData: # MySQL 业务账号密码 database-password: "aiops_pass_2026" # MySQL root 密码(StatefulSet 初始化用) mysql-root-password: "aiops_root_2026" # JWT 签名密钥(生产请替换为强随机值) jwt-secret: "aiops-jwt-secret-change-in-production-2026"