配置说明
说明: 此文档仅对重要参数加以解释说明,部分参数因作用相似或雷同,这里不加以赘述。
- 所有非第三方服务均可以自定义服务名
<service>.name,用以更改服务名称以及 gateway API 暴露的域名(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 Gateway API 访问配置
global:
gateway:
external:
domain: "csghub.example.com"
# public: "public.example.com"
tls:
enabled: false
secretName: "<kubernetes tls secret name>"
service:
type: "LoadBalancer" or "NodePort"
nodePorts:
http: 30080
https: 30443
gitssh: 30022
-
gateway
-
external
-
domain
默认
csghub.example.com。CSGHub 对外访问使用的域名,这里和之前的版本有所不同,不再使用基础域名。
-
例如:如果最终通过 http://csghub.example.com 进行访问,这里配置
csghub.example.com即可。 -
其他服务域名根据当前域名的基础域名进行生成,例如
casdoor.example.com。 -
如果你指定的域名是二级域名,例如
example.com, 则最终会引用csghub.example.com,自动追加前缀。
-
-
public
默认
nil。当使用独立域名访问推理、微调、MCP、SPACE 等实例的时候,需要用到独立域名分配给每个服务。
默认是
<domain>,如果需要修改请指定单独域名,例如public.exmaple.com,这里最终会以泛域名形式进行引用。此处不可直接指定泛域名。
-
-
tls
-
enabled
默认
false。- true:启用 HTTPS 加密访问,开启 HTTPS 必须提供 secretName。
- false: 不启用 HTTPS 加密访问。
-
secretName
默认
nil。指定所要使用的域名证书,请确保域名证书至少包含 public 泛域名,例如:
-
public 未指定,domain 指定为
csghub.example.com,则域名证书至少要包含*.csghub.example.com。 -
public 指定
public.example.com,则域名证书至少要包含*.public.example.com。
-
-
-
service
-
type
默认
LoadBalancer。指定 Gateway API Controller 的对外暴露方式,可选值
LoadBalancer或NodePort。注意:此值需要在部署时指定,部署后修改 svc 类型的方式可能会影响访问。
-
nodePorts (仅 type = NodePort 有效)
-
http
默认
30080。指定 80 端口对应的 NodePort 端口。
-
https
默认
30443。指定 443 端口对应的 NodePort 端口。
-
gitssh
默认
30022。指定 22 端口对应的 NodePort 端口。
-
-
-
优先级设定:
global.gateway < gateway < <service>.gateway
1.3 Image 全局镜像配置
global:
imageRegistry: "opencsg-registry.cn-beijing.cr.aliyuncs.com/opencsghq"
image:
registry: "opencsg-registry.cn-beijing.cr.aliyuncs.com"
tag: "v1.11.0"
pullPolicy: "IfNotPresent"
pullSecrets:
- acr-pull-secret
-
imageRegistry
默认
docker.io。指定 envoyGateway 的全局镜像仓库。如果是国内使用可以设置为
opencsg-registry.cn-beijing.cr.aliyuncs.com/opencsghq。 -
registry
默认
docker.io。此参数会覆盖 helm chart 中所有镜像的镜像仓库,通常不建议修改,默认会依赖镜像的原镜像仓库拉取相关镜像。可能是 docker.io 等。如果是国内使用可以设置为
opencsg-registry.cn-beijing.cr.aliyuncs.com(envoyGateway 不受此参数限制,请参考imageRegistry)。 -
tag
用来定义 csghub 镜像的版本号。如果镜像 namespace 属于 opencsghq,模板会根据 tag 是否合规自动补全 edition 等标识。例如示例中的 tag 在实际渲染时会输出为
v1.11.0-ce/v1.11.0-ee。 -
pullPolicy
默认
IfNotPresent。镜像拉取策略。
-
pullSecrets
默认
nil。配置拉取秘钥从私有镜像仓库拉取镜像。
优先级设定:
global.image < image < <service>.image
1.4 Persistence 全局存储
global:
persistence:
storageClass: "hostpath"
accessModes: ["ReadWriteOnce"]
size: "10Gi"
-
storageClass
默认
nil。所有 Statefulset 默认使用的存储类。
-
accessModes
默认
ReadWriteOnce。所有 Statefulset 默认使用的访问模式。
-
Size
默认
10Gi。所有 Statefulset 创建 PVC 默认的存储卷大小。
优先级设定:
global.persistence < <service>.persistence
1.5 PostgreSQL、Redis、Mongo、Object Storage、Registry 等 external 配置
每个组件均支持:
<service>:
enabled: true or false
external: {}
-
enabled
- true:启用内置服务组件,此时 external 配置不生效
- false: 禁用此服务组件。
-
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"
默认 info。
用于设置以 csghub-server 镜像启动的所有服务的日志级别。全局控制日志级别。
3. Portal 前端
3.1 Image 镜像设置
portal:
repository: "opencsghq/csghub-portal"
其他配置可忽略,继承自global.image和image。
优先级设定:
global.image < image < portal.image
3.2 Gateway API访问配置
不做赘述,作用同global.gateway,但无法声明gateway.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,通常不建议修改,因为这涉及到 Gateway API 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 构建镜像时的更多参数。
-
model
-
registry
默认
nil。用于指定启动推理实例时拉取指定架构镜像的容器镜像仓库。默认使用 OpenCSG ACR。
-
deployTimeout
默认 60,单位秒。
指定部署模型推理实例的超时时间。
-
-
knative.serving.domain
默认
example.com。用于定义暴露 ksvc 服务的默认内部域名 ,无须配置 DNS 解析,仅内部路由使用。
-
rbac
-
create
默认
true。指定是否创建 runner 创建相关资源所需的 Kubernetes 权限。
-
-
logcollector
-
enabled
默认
false。指定是否启用 logcollector服务,如果要保留 7 天内的 ksvc 实例日志,需要开启此服务。
-
loki.address
默认
nil。定义存储日志的 loki 服务地址,如果未设置默认使用 csghub loki 实例。
-
-
gpuModelLabel
-
typeLabel
默认
nvidia.com/gpu.product。调度器可以根据这个字段判断节点的 GPU 类型,从而调度需要特定型号 GPU 的 Pod。
-
capacityLabel
默认
nvidia.com/gpu。Pod 可以在
resources.requests或resources.limits中引用这个 label 来申请 GPU。
-
-
applicationEndpoint
默认
auto。默认由程序自动生成
http://kourier-internal.kourier-system.svc.cluster.local,即 knative serving ingress 暴露地址。 -
networkInterface
默认
nil。当使用 LWS 做多机多卡推理实例部署时,指定通信网卡。
-
storageClassName
默认
nil。指定存储类用于 Space 等申请持久化存储。
-
knative.serving.autoscaler
-
enableScaleToZero
默认
true。启用 KSVC 服务实例 Pod 自动关闭。
-
scaleToZeroGracePeriod
默认
60m。设置 KSVC 服务实例 Pod 自动关闭的容忍时间。
-
8. Dataflow(内建子Chart)
数据处理工具。Dataflow Helm Chart 可单独部署,也可和 CSGHub Helm Chart 捆绑部署(通过设置 global.chartContext: true),此 Chart 一共包含如下组件:
- dataflow
- label studio
- celery worker
- postgresql(捆绑部署时默认不启用)
- redis(捆绑部署时默认不启用)
- mongo
- envoy-gateway(捆绑部署时默认不启用)
- 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 捆绑部署(通过设置 global.chartContext: true),此 Chart 一共包含如下组件:
- agentic
- billing
- casdoor
- frontend
- megalinter-server
- megalinter-worker
- postgresql
- redis
- secscan
- web
所有组件无特殊以及额外配置。
10. 其他服务
除 csghub-server 服务外,基于同镜像的衍生服务还有如下:
- accounting
- user
- dataviewer
- mirror
- temporalWorker
- aigateway
他们具有极度相似的 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"
- "csghub_xnet"
定义数据库初始化时创建的数据,仅在数据库初始化时有效。
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 服务已经就绪(即可以通过 Gateway API 进行访问)。
11.9.2 其他配置
无特殊需要注意配置,这里不在赘述。
12 Third-party Dependencies
以下组件仅做说明,实际使用中基本无须修改,保持默认配置即可。
12.1 EnvoyGateway
默认使用的 envoyGateway 控制器。可通过envoy.enabled控制是否启用。
请不要修改默认配置,否则可能会导致服务访问异常。
12.2 Loki
日志存储查询引擎。因使用强度并不高,这里采用了最小化部署。
12.2.1 Gateway API
loki:
gateway:
enabled: false
basicAuth: {}
# username: ""
# password: ""
如果 loki 和 runner chart 中的 logcollector 不属于同一实例,则需要开启 loki gateway,但是 logcollector 暂不支持 basicAuth 验证。
12.3 Tempo
Trace 日志收集工具。启用会极大影响性能。如无特殊需要不建议开启。
12.4 Prometheus
用于收集推理、微调等实例的后台分析数据,默认关闭。