# ========================================== # Helm Values - shop-recycle # 全局配置(所有环境共享) # ========================================== # 全局配置 global: # 镜像仓库认证(若启用,Helm 自动生成 imagePullSecret) registry: createSecret: true # 设为 false 则不创建 secret,使用已有的 username: "admin" # harbor.stardance 用户名 password: "Harbor12345" # harbor.stardance 密码 email: "ops@example.com" # 若 registry.createSecret=false,则指定已有的 secret 名称 imagePullSecrets: [] # - name: reg-cred # 副本数 replicaCount: 1 # 镜像配置 image: registry: harbor.stardance namespace: shoprecycle pullPolicy: IfNotPresent tag: "3.0.0" # tag由Jenkins Pipeline动态注入(--set image.tag=xxx) # 环境名称(由Pipeline动态注入) environment: dev # ========================================== # Gateway (API网关) # ========================================== gateway: enabled: true replicaCount: 1 image: name: gateway tag: "3.0.6" port: 8080 containerPort: 8080 protocol: TCP resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "512Mi" cpu: "500m" # JVM参数 javaOpts: "-Xms256m -Xmx512m -XX:+UseG1GC" # Spring Profiles springProfiles: "kubernetes" # 健康检查 livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 20 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 # 服务配置 # 启动探针 - 给 Java 应用充分的启动时间(5分钟才开始检查) startupProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 300 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 60 service: type: ClusterIP port: 8080 targetPort: 8080 annotations: {} # 入口配置 ingress: enabled: false className: "nginx" annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" hosts: - host: "dev.jxfxtd.com" paths: - path: / pathType: Prefix tls: - secretName: gateway-tls hosts: - "dev.jxfxtd.com" # 环境变量 env: SPRING_CLOUD_CONFIG_ENABLED: "true" LOGGING_LEVEL_ROOT: "INFO" # ConfigMap数据 configMap: application.yml: | spring: cloud: gateway: routes: - id: order-service uri: http://shop-recycle-order-service:8081 predicates: - Path=/api/order/** - id: payment-service uri: http://shop-recycle-payment-service:8082 predicates: - Path=/api/payment/** - id: test-order uri: http://shop-recycle-order-service:8081 predicates: - Path=/api/test/** - id: test-payment uri: http://shop-recycle-payment-service:8082 predicates: - Path=/api/test/** management: endpoints: web: exposure: include: health,info # ========================================== # Order Service (订单服务) # ========================================== orderService: enabled: true replicaCount: 1 image: name: order-service tag: "3.0.6" port: 8081 containerPort: 8081 protocol: TCP resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "512Mi" cpu: "500m" javaOpts: "-Xms256m -Xmx512m -XX:+UseG1GC" springProfiles: "kubernetes" livenessProbe: httpGet: path: /health port: 8081 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: /health port: 8081 initialDelaySeconds: 20 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 service: type: ClusterIP port: 8081 targetPort: 8081 annotations: {} env: SPRING_CLOUD_CONFIG_ENABLED: "true" LOGGING_LEVEL_ROOT: "INFO" # ========================================== # Payment Service (支付服务) # ========================================== paymentService: enabled: true replicaCount: 1 image: name: payment-service tag: "3.0.6" port: 8082 containerPort: 8082 protocol: TCP resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "512Mi" cpu: "500m" javaOpts: "-Xms256m -Xmx512m -XX:+UseG1GC" springProfiles: "kubernetes" livenessProbe: httpGet: path: /health port: 8082 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: /health port: 8082 initialDelaySeconds: 20 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 service: type: ClusterIP port: 8082 targetPort: 8082 annotations: {} env: SPRING_CLOUD_CONFIG_ENABLED: "true" LOGGING_LEVEL_ROOT: "INFO" # ========================================== # Web Frontend (前端应用) # ========================================== webFrontend: enabled: true replicaCount: 1 image: name: web tag: "3.0.0" port: 80 containerPort: 80 protocol: TCP resources: requests: memory: "128Mi" cpu: "100m" limits: memory: "256Mi" cpu: "500m" livenessProbe: httpGet: path: /health port: 80 initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 3 service: type: ClusterIP port: 80 targetPort: 80 annotations: {} ingress: enabled: true className: "nginx" annotations: cert-manager.io/cluster-issuer: "letsencrypt-prod" hosts: - host: "dev.jxfxtd.com" paths: - path: / pathType: Prefix tls: - secretName: web-tls hosts: - "dev.jxfxtd.com" env: VUE_APP_API_BASE: "http://shop-recycle-gateway:8080" LOGGING_LEVEL: "info" # ========================================== # 网络策略 # ========================================== networkPolicy: enabled: false policyTypes: - Ingress - Egress # ========================================== # Pod安全策略 # ========================================== podSecurityPolicy: enabled: false # ========================================== # RBAC配置 # ========================================== rbac: create: true # 指定已有的ServiceAccount serviceAccountName: "" # ========================================== # 节点亲和性与污点容限 # ========================================== affinity: {} tolerations: [] # ========================================== # 监控和日志 # ========================================== monitoring: enabled: false # Prometheus ServiceMonitor serviceMonitor: enabled: false interval: 30s logging: # 日志级别 level: INFO # 日志输出格式 format: json