# Default values for gitdata. nameOverride: "" fullnameOverride: "" image: repository: gitdata # 留空则用 Chart.appVersion 作为 tag tag: "" pullPolicy: IfNotPresent imagePullSecrets: [] serviceAccount: create: true name: "" annotations: {} # --------------------------------------------------------------------------- # 运行时配置。全部通过 Figment 的 APP_* 环境变量注入(见 docs/技术架构.md §12)。 # config.env -> ConfigMap(非敏感) # secret.env -> Secret(敏感);生产建议改用 existingSecret + 外部密钥管理 # --------------------------------------------------------------------------- # 非敏感配置(string->string,值会被转成 APP_* 环境变量) config: env: APP_REDIS__URL: "redis://redis-master:6379" APP_S3__ENDPOINT: "" APP_S3__BUCKET: "" APP_S3__REGION: "us-east-1" APP_S3__PATH_STYLE: "true" # 读写库/副本、配额等其余段均可在此覆盖,例如: # APP_DATABASE__REPLICAS: '[{url="postgres://readonly@pg:5432/gitdata"}]' # Web Push:默认关闭;开启前必须同时提供 APP_PUSH__VAPID_PUBLIC_KEY(此处) # 与 APP_PUSH__VAPID_PRIVATE_KEY(secret.env)。密钥生成见 config/default.toml。 APP_PUSH__ENABLED: "false" APP_PUSH__VAPID_PUBLIC_KEY: "" APP_PUSH__VAPID_SUBJECT: "mailto:ops@example.com" # 事件投递:消息事件写入 event_outbox,由 apihost 内嵌 relay 投递到 RocketMQ。 APP_ROCKETMQ__ENABLED: "true" APP_ROCKETMQ__NAME_SERVER: "rocketmq-namesrv:9876" APP_ROCKETMQ__TOPIC_PREFIX: "gitdata" # 认证中心:浏览器走 OIDC,服务间走 gRPC(x-rpc-key)。 APP_OAUTH__ENABLED: "true" APP_OAUTH__ISSUER: "https://auth.gitdata.ai" APP_OAUTH__CLIENT_ID: "gitdata-web" APP_OAUTH__REDIRECT_URI: "https://gitdata.ai/api/v1/auth/callback" APP_OAUTH__AUDIENCE: "gitdata.ai" APP_OAUTH__GRPC_ENDPOINT: "http://kenoauth:18082" RUST_LOG: "info" # 敏感配置(渲染为 Secret)。注意 AppConfig 的 Debug 会带出密钥, # 切勿在任何日志里 {:?} 打印配置。 secret: # 留空则不创建 Secret,仅使用 existingSecret create: true existingSecret: "" env: APP_DATABASE__URL: "postgres://postgres:CHANGE_ME@postgres:5432/gitdata" APP_OAUTH__RPC_KEY: "" # 与 KenOAuth auth.oauth.rpc_key 一致,>=32 字节 APP_INTERNAL__SERVICE_KEY: "" # /api/v1/internal/* 服务密钥,>=32 字节 APP_POW__MAC_KEY: "" # base64 >=32 字节 APP_AUTH__TOTP_ENCRYPTION_KEY: "" # base64 >=32 字节(实测必填) APP_S3__ACCESS_KEY_ID: "" APP_S3__SECRET_ACCESS_KEY: "" APP_PUSH__VAPID_PRIVATE_KEY: "" # base64url 32 字节 P-256 标量,Web Push 签名私钥 podSecurityContext: fsGroup: 10001 securityContext: runAsNonRoot: true runAsUser: 10001 allowPrivilegeEscalation: false capabilities: drop: ["ALL"] nodeSelector: {} tolerations: [] affinity: {} podAnnotations: {} podLabels: {} # --------------------------------------------------------------------------- # 组件 # --------------------------------------------------------------------------- migrate: enabled: true # pre-install / pre-upgrade hook Job resources: requests: { cpu: 100m, memory: 128Mi } limits: { memory: 512Mi } extraEnv: [] apihost: enabled: true replicaCount: 2 port: 3000 resources: requests: { cpu: 250m, memory: 256Mi } limits: { memory: 1Gi } autoscaling: enabled: false minReplicas: 2 maxReplicas: 8 targetCPUUtilizationPercentage: 70 targetMemoryUtilizationPercentage: 0 # Empty map renders no `behavior:` block (k8s default scaling policy). behavior: {} maxSurge: 1 maxUnavailable: 0 podAntiAffinity: soft # soft | hard | "" topologySpreadConstraints: [] extraEnv: [] pdb: enabled: true minAvailable: 1 oauth: enabled: false image: harbor.gitdata.me/app/kenoauth:latest pullPolicy: IfNotPresent replicaCount: 1 httpPort: 18081 grpcPort: 18082 # Secret containing config.yaml (mounted at /app/config). Empty = env-only config. existingSecret: "" extraEnv: [] resources: requests: { cpu: 100m, memory: 128Mi } limits: { memory: 512Mi } kenshell: # KenShell 是 Git 数据面:对象库、引用、pack、LFS、smart HTTP 与 SSH 都由它提供。 endpoint: "http://kenshell:50091" rpcKey: "" timeoutSecs: 3600 # 对外克隆地址(展示用),指向 KenShell 的 HTTP/SSH 入口 httpCloneBaseUrl: "" sshCloneHost: "" sshClonePort: 22 # --------------------------------------------------------------------------- # 存储:apihost 使用的本地仓库/对象缓存目录(bare 仓库已迁到 KenShell) # --------------------------------------------------------------------------- persistence: repos: enabled: true size: 50Gi storageClassName: "" # "" = 默认 StorageClass accessModes: ["ReadWriteMany"] existingClaim: "" mountPath: /opt/gitdata # --------------------------------------------------------------------------- # Ingress:同源 TLS 终结,全部路径 -> apihost。 # git smart HTTP(*.git)由 KenShell 自己的入口接管,不在本 chart 内。 # --------------------------------------------------------------------------- ingress: enabled: true controller: nginx className: nginx host: gitdata.example.com annotations: {} tls: enabled: true secretName: "" # 留空 = -tls clusterIssuer: "" # 填 cert-manager ClusterIssuer 自动签发 # 大文件 push / 长 RPC proxyBodySize: "0" # 0 = 不限制 proxyReadTimeout: 3600 proxySendTimeout: 3600 proxyConnectTimeout: 60 metrics: # OTLP 推送(无 scrape 端点,见 §13) otlpEndpoint: ""