配置说明
说明:此文档仅对重要参数加以解释说明,部分参数因作用相似或雷同,这里不加以赘述。
- 所有非第三方服务均可以自定义服务名
<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)。
- true:CSGHub主服务直接使用顶级域名(如
-
tls
- enabled
- true:启用 HTTPS 加密访问,开启 HTTPS 必须提供 secretName。
- false: 不启用 HTTPS 加密访问。
- enabled
-
service
-
type
指定 csghub Ingress 的对外暴露方式,可选值
LoadBalancer或NodePort。注意:此值需要在部署时指定,部署后修改 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.image和image。
优先级设定:
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
用于收集推理、微调等实例的后台分析数据,默认关闭。