配置说明
说明:此文档仅对重要参数加以解释说明,部分参数因作用相似或雷同,这里不加以赘述。
- 所有非第三方服务均可以自定义服务名
<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 等申请持久化存储。
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
用于收集推理、微调等实例的后台分析数据,默认关闭。