# GitData actions runner 池的默认值。 # 生产覆盖见 deploy/values/runner-prod.yaml。 nameOverride: "" fullnameOverride: "gitdata-runner" # 调度中心(gitdata 命名空间的 webhook Service)地址。 # 跨命名空间必须写全限定域名: # ..svc.cluster.local: serverUrl: "http://gitdata-webhook.gitdata.svc.cluster.local:3005" image: repository: harbor.gitdata.me/app/gitdata tag: "" pullPolicy: IfNotPresent # act 引擎镜像:提供 gitdata-actions-engine 二进制 + 4 套 Node 运行时 actionsImage: repository: harbor.gitdata.me/app/gitdata-act tag: "" pullPolicy: IfNotPresent imagePullSecrets: [] serviceAccount: create: true name: "" annotations: {} # 注册令牌(APP_RUNNER__REGISTRATION_TOKEN)。 # 生产用 existingSecret:Secret 由 kubectl 直接建在集群里,任何一次 helm upgrade # 都不会把它覆盖或清空(写进 values 的令牌一旦漏传 -f 就会被空值刷掉)。 secret: create: false existingSecret: "gitdata-runner-env" env: {} runner: # 不含 docker:只注册 self-hosted 标签。带 ubuntu-latest 等标签的 workflow # 不会被接单(要接单需要 dockerEnabled + 拉 ghcr.io/catthehacker/ubuntu)。 labels: ["self-hosted"] # 每个副本同时只跑 1 个作业;并发度靠副本数 capacity: 1 dockerEnabled: false workspaceRoot: /var/lib/gitdata-runner credentialPath: /var/lib/gitdata-runner/credential actionsEngineBinary: /opt/gitdata/actions/bin/gitdata-actions-engine actionsCacheDir: /var/lib/gitdata-runner/actions extraEnv: [] resources: requests: { cpu: 500m, memory: 512Mi } limits: { memory: 4Gi } # 仅在 autoscaling.enabled=false 时生效 replicaCount: 3 autoscaling: enabled: true minReplicas: 3 maxReplicas: 6 targetCPUUtilizationPercentage: 70 # 0 = 不启用内存指标 targetMemoryUtilizationPercentage: 0 behavior: {} scheduling: # 排除 master / 控制面节点 excludeControlPlane: enabled: true labelKey: node-role.kubernetes.io/control-plane nodeSelector: {} tolerations: [] affinity: {} # 软性打散:maxSkew=1 + ScheduleAnyway,既不堆在一台,也不禁止单机多副本。 # 扩容时新副本由 kube-scheduler 默认的 LeastAllocated 打分挑当前请求量最小 # 的节点,即"负载由小到大"。 topologySpread: enabled: true maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway podDisruptionBudget: enabled: true minAvailable: 2 networkPolicy: enabled: true # 调度中心所在的命名空间与端口(允许 egress) webhookNamespace: gitdata webhookPort: 3005 # workflow 步骤需要上网(git clone / 包下载 / 拉 action),默认放行全部出站 allowAllEgress: true podSecurityContext: fsGroup: 10001 securityContext: runAsNonRoot: true runAsUser: 10001 allowPrivilegeEscalation: false seccompProfile: type: RuntimeDefault capabilities: drop: ["ALL"] terminationGracePeriodSeconds: 300