Configuration Explanation
Note: This document only explains the important parameters. Some parameters, due to their similar or identical functions, are not elaborated upon here.
All non-third-party services can customize the service name
<service>.nameto change the service name and the domain name exposed by the ingress (except for the portal's main domain).All non-third-party services can define deployments and most deployment-related attributes of the StatefulSet, such as labels, annotations, replicas, serviceAccount, environments, resources, volumeMounts, livenessProbe, readinessProbe, startupProbe, lifecycle, stdin, tty, volumes, nodeSelector, tolerations, affinity, securityContext, etc.
This document explains the important configuration items in the CSGHub Helm Chart, including global configuration, core service configuration, built-in components, and the priority of each parameter. It is suitable for deployment, operation and maintenance, and secondary development personnel.
1. Global Parameter
1.1 Release edition
global:
edition: "ce" or "ee"
This specifies the deployment version, either Community or Enterprise edition. Different versions will affect the image tag, enabled features, and dependencies.
1.2 Global Ingress
global:
ingress:
domain: "example.com"
useTop: false
tls:
enabled: false
secretName: "<kubernetes tls secret name>"
service:
type: "LoadBalancer" or "NodePort"
-
ingress
-
domain
The base domain used by the CSGHub system. All services will generate their final access domains based on this.
-
useTop
Whether to directly use the top-level domain.
-
true: The main CSGHub service directly uses the top-level domain (e.g.,
example.com). -
false: Services use subdomains (default
csghub.example.com).
-
-
tls
- enabled
- true:To enable HTTPS encrypted access, you must provide a secretName.
- false: HTTPS encrypted access is not enabled.
- enabled
-
service
-
type
Specifies how the csghub Ingress is exposed externally. Optional values are
LoadBalancerorNodePort.Note: This value needs to be specified during deployment. Modifying the
svctype after deployment will affect access.This field is referenced via a YAML anchor (&type), which will affect
ingress-nginx.controller.service.type.
-
-
Priority:
global.ingress < ingress < <service>.ingress
1.3 Global Image
global:
image:
registry: "opencsg-registry.cn-beijing.cr.aliyuncs.com"
tag: "v1.11.0"
pullPolicy: "IfNotPresent"
pullSecrets:
- acr-pull-secret
-
registry
This parameter overrides the image repositories for all images in the Helm chart. Modifying it is generally not recommended, as it defaults to relying on the original image repository of the image to pull relevant images. This might be docker.io, etc. If used in China, it can be set to
opencsg-registry.cn-beijing.cr.aliyuncs.com. -
tag
This is used to define the version number of the csghub image. If the image namespace belongs to opencsghq, the template will automatically complete identifiers such as edition based on whether the tag is compliant. For example, the tag in the example will be output as
v1.11.0-ce/v1.11.0-eeduring actual rendering. -
pullPolicy
Image pull policy.
-
pullSecrets
Configure the pull key to pull images from the private image repository.
Priority:
global.image < image < <service>.image
1.4 Global Persistence
global:
persistence:
storageClass: "hostpath"
accessModes: ["ReadWriteOnce"]
size: "10Gi"
-
storageClass
The default storage class used by all StatefulSets.
-
accessModes
The default access modes used by all StatefulSets.
-
Size
The default storage volume size used by all StatefulSets when creating PVCs.
Priority:
global.persistence < <service>.persistence
1.5 PostgreSQL、Redis、Mongo、Object Storage、Registry 等 external 配置
Each component allow:
<service>:
enabled: true or false
external: {}
-
enabled
- true: Enables the built-in service component; in this case, the external configuration will not take effect.
-
external
When enabled is set to false, the connection information for the corresponding external service component is set via external.
Priority:
global.service < <service>.service
1.6 Global ChartContext
chartContext:
isBuiltIn: true
-
isBuitIn
The default value is true. Its main purpose is to achieve seamless integration of dataflow, runner, and csgship chart, and to indicate whether the chart is deployed independently or bundled with the csghub main service.
2. CSGHub Core Configuration
2.1 Image(Core service image)
image:
registry: "opencsg-registry.cn-beijing.cr.aliyuncs.com"
tag: "v1.11.0"
pullPolicy: "IfNotPresent"
pullSecrets:
- acr-pull-secret
This parameter functions similarly to global.image, but its scope is limited to services started using the csghub-server/csghub-portal image.
Priority:
global.image < image(Here) < <service>.image
2.2 Logging
logging:
level: "info" or "warning" or "debug" or "error"
Used to set the log level for all services started from the csghub-server image. Global control over log levels.
3. Portal
3.1 Image
portal:
repository: "opencsghq/csghub-portal"
Other configurations can be ignored; they are inherited from global.image and image.
Priority:
global.image < image < portal.image
3.2 Ingress
Without going into details, it functions the same as global.ingress, but it cannot declare ingress.service.type, and all other parameters have higher priority than global.image.
3.3 Docs
portal:
docs:
domain: "docs.example.com"
or
portal:
docs:
host: "192.168.18.19"
port: 8003
This configuration is used to link the CSGHub document center to an externally deployed document instance (CSGHub does not have a built-in document center).
Currently, two configuration methods are provided (choose one):
- domain
Specifies the domain name of the deployed external document center instance.
- host and port
If no domain name is configured, you can directly specify the host and port of the document center instance.
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"
This parameter defines the database connection information for the Portal. Compared to global.postgresql.external, it includes a database parameter. Because this parameter cannot be specified globally, using the same database for all components is discouraged, and Helm charts haven't internally adapted for it.
Standard parameter settings are not detailed here.
Priority:
global.postgresql.external < portal.postgresql