跳到主要内容

配置说明

说明:此文档仅对重要参数加以解释说明,部分参数因作用相似或雷同,这里不加以赘述。

  • 所有非第三方服务均可以自定义服务名<service>.name,用以更改服务名称以及 ingress 暴露的域名(portal 主域名除外)。
  • 所有非第三方服务均可以定义 deployment,statefulset 的绝大部署相关属性,例如 labels, annotations, replicas, serviceAccount, environments, resources, volumeMounts, livenessProbe, readinessProbe, startupProbe, lifecycle, stdin,tty, volumes, nodeSelector, tolerations, affinity, securityContext 等等。

本文档用于说明 CSGHub Helm Chart 中的重要配置项,包括全局配置、核心服务配置、内置组件以及各项参数的优先级说明。适用于部署、运维及二次开发人员。

1. Global 全局配置

1.1 edition 发行版

global:
edition: "ce" or "ee"

用于指定部署版本,为社区版或企业版。不同版本会影响镜像 tag、启用的功能以及依赖项。

1.2 Ingress 访问配置

global:
ingress:
domain: "example.com"
useTop: false
tls:
enabled: false
secretName: "<kubernetes tls secret name>"
service:
type: "LoadBalancer" or "NodePort"

说明:

  • domain

    CSGHub 系统使用的基础域名,所有服务都会基于此生成最终访问域名。

  • useTop

    是否直接使用顶级域名。

    • true:CSGHub主服务直接使用顶级域名(如 example.com)。
    • false:服务使用子域名(默认 csghub.example.com)。
  • tls

    • enabled
      • true:启用 HTTPS 加密访问,开启 HTTPS 必须提供 secretName。
      • false: 不启用 HTTPS 加密访问。
  • service

    • type

      指定 csghub Ingress 的对外暴露方式,可选值 LoadBalancerNodePort

      注意:此值需要在部署时指定,部署后修改 svc 类型的方式会影响访问。

      此字段通过 YAML 锚点引用(&type),会影响 ingress-nginx.controller.service.type

优先级设定:

global.ingress < ingress < <service>.ingress

1.3 Image 全局镜像配置

global:
image:
registry: "opencsg-registry.cn-beijing.cr.aliyuncs.com"
tag: "v1.11.0"
pullPolicy: "IfNotPresent"
pullSecrets:
- acr-pull-secret
  • registry

    此参数会覆盖 helm chart 中所有镜像的镜像仓库,通常不建议修改,默认会依赖镜像的原镜像仓库拉取相关镜像。可能是 docker.io 等。如果是国内使用可以设置为opencsg-registry.cn-beijing.cr.aliyuncs.com

  • tag

    用来定义 csghub 镜像的版本号。如果镜像 namespace 属于 opencsghq,模板会根据 tag 是否合规自动补全 edition 等标识。例如示例中的 tag 在实际渲染时会输出为v1.11.0-ce/v1.11.0-ee

  • pullPolicy

    镜像拉取策略。

  • pullSecrets

    配置拉取秘钥从私有镜像仓库拉取镜像。

优先级设定:

global.image < image < <service>.image

1.4 Persistence 全局存储

global:
persistence:
storageClass: "hostpath"
accessModes: ["ReadWriteOnce"]
size: "10Gi"
  • storageClass

    所有 Statefulset 默认使用的存储类。

  • accessModes

    所有 Statefulset 默认使用的访问模式。

  • Size

    所有 Statefulset 创建 PVC 默认的存储卷大小。

优先级设定:

global.persistence < <service>.persistence

1.5 PostgreSQL、Redis、Mongo、Object Storage、Registry 等 external 配置

每个组件均支持:

<service>:
enabled: true or false
external: {}
  • enabled

    • true:启用内置服务组件,此时 external 配置不生效
  • external

    当 enabled 设置为 false 时,通过 external 设置对应外置服务组件的连接信息。

优先级设定:

global.service < <service>.service

1.6 ChartContext 上下文配置

chartContext:
isBuiltIn: true
  • isBuitIn

    默认为 true,主要作用是为了实现 dataflow,runner,csgship chart 的无缝集成,标识 chart 是独立部署还是和 csghub 主服务捆绑部署。


2. CSGHub Core 核心服务配置

2.1 Image(核心服务镜像)

image:
registry: "opencsg-registry.cn-beijing.cr.aliyuncs.com"
tag: "v1.11.0"
pullPolicy: "IfNotPresent"
pullSecrets:
- acr-pull-secret

此参数作用和 global.image作用类似,但是作用域仅局限在以 csghub-server/csghub-portal 镜像启动的服务。

优先级设定:

global.image < image(Here) < <service>.image

2.2 Logging 日志

logging:
level: "info" or "warning" or "debug" or "error"

用于设置以 csghub-server 镜像启动的所有服务的日志级别。全局控制日志级别。

3. Portal 前端

3.1 Image 镜像设置

portal:
repository: "opencsghq/csghub-portal"

其他配置可忽略,继承自global.imageimage

优先级设定:

global.image < image < portal.image

3.2 Ingress 访问配置

不做赘述,作用同global.ingress,但无法声明ingress.service.type,其他所有参数优先级高于global.image

3.3 Docs 文档中心设置

portal:
docs:
domain: "docs.example.com"

或者

portal:
docs:
host: "192.168.18.19"
port: 8003

此处配置用于链接 CSGHub 文档中心到外部部署的文档实例( CSGHub 无内置文档中心)。

目前提供两种配置方式(二选一):

  • domain

    指定部署的外部文档中心实例的域名。

  • host and port

    如果没有配置域名的情况下,可以直接指定文档中心实例的 host 和 port。

3.4 PostgreSQL 配置

portal:
postgresql:
host: "<postgresql host>"
port: "<postgreql port>"
database: "<postgresql csghub portal database>"
user: "<postgresql user>"
password: "<postgresql password>"
timezone: "Etc/UTC"
sslmode: "prefer"

用于定义 Portal 的数据库连接信息,相对于global.postgresql.external多了database参数,因为此参数无法全局指定,所有组件使用同一个数据库是不建议的行为,helm chart 内部也未做适配。

标准参数设定,不做赘述。

优先级设定:

global.postgresql.external < portal.postgresql

3.5 ObjectStore 配置

portal:
objectStore:
endpoint: "<object store endpoint>"
accessKey: "<object store access key>"
secretKey: "<object store secret key>"
bucket: "<object store public bucket>"
region: "<object store region>"
secure: "<object store tls>"
encrypt: "<object store server encrypt>"
pathStyle: "<object store path style>"

用于定义 Portal 的对象存储连接信息,相对于global.objectStore.external多了bucket参数,因为此参数无法全局指定,所有组件使用同一个数据库是不建议的行为,helm chart 内部也未做适配。

优先级设定:

global.objectStore.external < portal.objectStore

4. Server 后端

4.1 gitlabShell

server:
gitlabShell:
sshPort: 22

用于定义使用git over ssh克隆时的 ssh 服务的端口号。LoadBalancer模式下默认为 22,NodePort模式下默认为30022,通常不建议修改,因为这涉及到 Ingress Controller TCP 暴露规则的调整。

4.2 multiSync 多源同步

server: 
multiSync:
enabled: true
proxy: "<proxy to connect internet>"
  • enabled

    默认 true,表示启用多源同步。

  • proxy

    默认 nil,用于指定多源同步时连接互联网使用的网络代理。

4.3 SwaggerAPI 配置

server:
swaggerAPI
enabled: false
  • enabled

    默认 false,不启用 swaggerAPI 辅助实例。

5. RProxy 配置

rproxy:
coredns:
enabled: true
image:
repository: "coredns/coredns"
tag: "1.11.1"
nginx:
enabled: true
image:
repository: "nginx"
tag: "latest"

此部分内容不做过多解释。coredns 和 nginx 是v1.12.0之前版本辅助 rproxy 做流量转发的组件,自v1.12.0开始,这两个组件废弃,不再使用。

6. Notifier 配置

6.1 SMTP 配置

notifier:
smtp:
host: "<smtp host>"
port: "<smtp port>"
username: "<smtp username>"
password: "<smtp password>"

配置 notifier 发件服务器。

6.2 FeiShu 配置

notifier:
feiShu:
appId: "<feishu app id>"
appSecret: "<feishu app secret>"

配置 notifier 发送通知到飞书。

7. Runner 配置(内建子Chart)

此部分配置会直接传递到 Runner 子 Chart。

  • region

    默认 region-0,用于标识 runner 所在集群,例如"cn-north",可自定义格式和规则。

  • interval

    默认 60,单位秒,Runner 上报信息到 CSGHub 的时间间隔。

  • namespace

    默认 spaces,部署推理、微调、应用空间所使用的 Kubernetes 命名空间。

  • autoConfigure

    默认 true,指定是否自动配置 Knative Serving、Argo Workflow、LeaderWorkSet 等依赖组件,这些组件是推理、微调、模型评测、应用空间、MCP 等功能必须依赖组件。

  • mergingNamespace

    默认 disable,默认情况下开启 autoConfigure 后,不同种类组件会自动创建不同的 Kubernetes 命名空间,通过此参数做命名空间的适当合并。

    • disable

      不做任何命名空间合并。

    • multi

      适当合并命名空间。

    • single

      全部合并到一个命名空间(不建议)。

  • kymlMode

    默认 create,用于 autoConfigure 创建资源的维护方式。

    • create

      仅创建,如果资源已存在,则跳过。

    • update

      通过 Apply 模式更新资源。

    • replace

      强制替换资源,先删除再重建。

  • userPublicDomain

    默认 true,指定访问推理,微调,应用空间等实例的方式。

    • true: 表示使用单独域名
    • false:使用 subPath方式访问,会导致应用空间,MCP 等功能使用受限。
  • pipIndexUrl

    默认 https://pypi.tuna.tsinghua.edu.cn/simple/,定义应用空间构建镜像时所使用的 PyPi 源。

  • extraBuildArgs

    默认 nil,用于指定 kaniko 构建镜像时的更多参数。

  • modelRegistry

    默认 nil,用于指定启动推理实例时拉取指定架构镜像的容器镜像仓库。默认使用 OpenCSG ACR。

  • knative.serving.domain

    默认 example.com,用于定义暴露 ksvc 服务的默认内部域名,无须配置 DNS 解析,仅内部路由使用。

  • rbac

    • create

      默认 true,指定是否创建 runner 创建相关资源所需的 Kubernetes 权限。

  • logcollector

    • enabled

      默认 false, 指定是否启用 logcollector服务,如果要保留 7 天内的 ksvc 实例日志,需要开启此服务。

    • loki.address

      默认 nil,定义存储日志的 loki 服务地址,如果未设置默认使用 csghub loki 实例。

8. Dataflow(内建子Chart)

数据处理工具。Dataflow Helm Chart 可单独部署,也可和 CSGHub Helm Chart 捆绑部署(通过设置**.Values.global.chartContext: true**),此 Chart 一共包含如下组件:

  • dataflow
  • label studio
  • celery worker
  • postgresql(捆绑部署时默认不启用)
  • redis(捆绑部署时默认不启用)
  • mongo
  • ingress-nginx(捆绑部署时默认不启用)
  • prometheus(捆绑部署时默认不启用)

通过dataflow.enabled开启。默认和 csghub helm chart 捆绑安装,无须额外设置,目前可自定义设置如下:

dataflow:
enabled: true
dataflow:
image: {}
postgresql: {}
redis: {}
mongo: {}
persistence: {}
labelStudio:
image: {}
postgresql: {}
persistence: {}

所有参数定义规则均和前述相同。

9. csgship(内建子Chart)

AI 辅助编码助手后端服务。CSGShip Helm Chart 可单独部署,也可和 CSGHub Helm Chart 捆绑部署(通过设置**.Values.global.chartContext: true**),此 Chart 一共包含如下组件:

  • agentic
  • billing
  • casdoor
  • frontend
  • megalinter-server
  • megalinter-worker
  • postgresql
  • redis
  • secscan
  • web

所有组件无特殊以及额外配置。

10. 其他服务

除 csghub-server 服务外,基于同镜像的衍生服务还有如下:

  • accounting
  • user
  • dataviewer
  • mirror
  • temporalWorker
  • gateway

他们具有极度相似的 image, postgresql, redis 等配置参数,默认全部继承 csghub-server 的参数。常见自定义参数多为传入专有的 environments 设置。

11. Third-party Components 内置基础设施组件

11.1 PostgreSQL

11.1.1 Databases 数据库

postgresql:
databases:
- "csghub_casdoor"
- "csghub_temporal"
- "csghub_server"
- "csghub_portal"
- "csghub_dataflow"
- "csghub_label_studio"
- "csghub_csgship"

定义数据库初始化时创建的数据,仅在数据库初始化时有效

11.1.2 Parameters 启动参数

postgresql:
parameters:
max_connections: 200
......

用于自定义数据库参数,默认情况下数据库启动时参数均保持默认,可通过此参数进行参数优化。

11.1.3 其他配置

这里不在赘述,均为通用配置。

11.2 Redis

11.2.1 requirePass 启用验证

redis:
requirePass: false

此参数默认未开启,如果未启动 csgship 的情况下可开启,csgship 目前不支持 redis 通过密码验证。

11.3 MinIO

11.3.1 Console 控制台

minio:
console:
enabled: true
service:
port: 9001
protocol: "TCP"

定义 MinIO 服务 UI 的端口是否启用等。

11.3.2 Region 地区

minio:
region: "cn-north-1"

定义 minio 默认的地区。

11.3.3 Buckets 存储桶

minio:
buckets:
- name: "csghub-registry"
policy: "none" # Access policy: none, download, public
- name: "csghub-billing"
policy: "none"
- name: "csghub-server"
policy: "none"
- name: "csghub-portal"
policy: "none"
- name: "csghub-portal-public"
policy: "download"
- name: "csghub-runner"
policy: "none"

定义需要创建的存储桶,不同于postgresql.databases,此参数启动后可修改,并且始终检查存储桶是否创建。

  • name

    存储桶名字

  • policy

    存储桶访问策略。

    • none 默认值,即 private
    • download 允许只读访问
    • public 公开读写

11.3.4 其他配置

其他均为通用配置,这里不在赘述。

11.4 Registry

无特殊需要注意配置,这里不在赘述。

11.5 Gitaly

11.5.1 Storage

gitaly:
storage: "default"

默认定义的 gitaly 存储的名称。

11.5.2 其他配置

其他均为通用配置,这里不在赘述。

11.6 GitlabShell

11.6.1 RBAC 权限

gitlabShell:
rbac:
create: true

是否创建 rbac 权限,主要用户创建包含 ssh keys 密钥对,用于验证git over ssh操作。

11.6.2 其他配置

其他均为通用配置,这里不在赘述。

11.7 Nats

无特殊需要注意配置,这里不在赘述。

11.8 Casdoor

无特殊需要注意配置,这里不在赘述。

11.9 Temporal

11.9.1 Console

temporal:
enabled: false

是否开启 temporal 控制台 UI,默认未开启。因为 OAuth 设置,如果默认开启 UI 时 Casdoor 服务未就绪,会导致 Temporal 整个服务无法就绪。因此如果想要开启此服务,请确保您的 Casdoor 服务已经就绪(即可以通过 Ingress 进行访问)。

11.9.2 其他配置

无特殊需要注意配置,这里不在赘述。

12 Third-party Dependencies

以下组件仅做说明,实际使用中基本无须修改,保持默认配置即可。

12.1 ingress-nginx

默认使用的 ingress 控制器。可通过ingress-nginx.enabled控制是否启用。

请不要修改默认配置,否则可能会导致服务访问异常。

12.2 fluentd

早期默认收集工具,默认已禁用,后期可能考虑移除。

12.3 loki

日志存储查询引擎。因使用强度并不高,这里采用了最小化部署。

12.3.1 Ingress

loki:
ingress:
enabled: false
basicAuth: {}
# username: ""
# password: ""

如果 loki 和 runner chart 中的 logcollector 不属于同一实例,则需要开启 loki ingress,但是 logcollector 暂不支持 basicAuth 验证。

12.4 Tempo

Trace 日志收集工具。启用会极大影响性能。如无特殊需要不建议开启。

12.5 Prometheus

用于收集推理、微调等实例的后台分析数据,默认关闭。