# quick-deploy.yaml — AIOps 快速部署 (ConfigMap + Deployment, 含 Service) # 部署: kubectl apply -f quick-deploy.yaml # 注意: 此文件自包含, 不依赖其他 YAML --- apiVersion: v1 kind: ConfigMap metadata: name: aiops-config namespace: devops data: config.yaml: | mode: release port: "8080" log_level: info database: driver: mysql host: 10.10.10.75 port: 3306 user: root password: aiops_root_2026 dbname: aiops charset: utf8mb4 max_conn: 100 max_idle: 10 redis: driver: redis host: 10.10.10.75 port: 6379 password: "" db: 0 jwt: secret: "aiops-jwt-secret-key-2026" expire_hour: 24 --- apiVersion: apps/v1 kind: Deployment metadata: name: aiops namespace: devops labels: app.kubernetes.io/name: aiops app.kubernetes.io/component: app spec: replicas: 1 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 selector: matchLabels: app.kubernetes.io/name: aiops app.kubernetes.io/component: app template: metadata: labels: app.kubernetes.io/name: aiops app.kubernetes.io/component: app spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - name: aiops image: aiops:embed imagePullPolicy: IfNotPresent ports: - containerPort: 8080 # ── 环境变量 (优先级高于 config.yaml) ── env: - name: TZ value: Asia/Shanghai - name: MODE value: "release" - name: PORT value: "8080" - name: LOG_LEVEL value: "info" - name: DATABASE_DRIVER value: "mysql" - name: DATABASE_HOST value: "10.10.10.75" - name: DATABASE_PORT value: "3306" - name: DATABASE_USER value: "root" - name: DATABASE_PASSWORD value: "aiops_root_2026" - name: DATABASE_DBNAME value: "aiops" - name: DATABASE_CHARSET value: "utf8mb4" - name: DATABASE_MAX_CONN value: "100" - name: DATABASE_MAX_IDLE value: "10" - name: REDIS_DRIVER value: "redis" - name: REDIS_HOST value: "10.10.10.75" - name: REDIS_PORT value: "6379" - name: REDIS_PASSWORD value: "" - name: REDIS_DB value: "0" - name: JWT_SECRET value: "aiops-jwt-secret-key-2026" - name: JWT_EXPIRE_HOUR value: "24" volumeMounts: - name: config mountPath: /app/config.yaml subPath: config.yaml readOnly: true - name: uploads mountPath: /app/uploads - name: data mountPath: /app/data resources: requests: cpu: 100m memory: 256Mi limits: cpu: "1" memory: 1Gi volumes: - name: config configMap: name: aiops-config - name: uploads emptyDir: {} - name: data emptyDir: {} --- apiVersion: v1 kind: Service metadata: name: aiops namespace: devops spec: type: NodePort selector: app.kubernetes.io/name: aiops ports: - port: 8080 targetPort: 8080 nodePort: 30080