Skip to main content

Helm values

The chart is charts/gshare. Every key below is documented inline in values.yaml; the overlays in deploy/values/ show complete configurations (incluster.yaml for all-in-one, dockerhub.yaml for production with external data tier, domain.example.yaml with every optional knob).

Top level​

KeyPurpose
global.imageRegistry, global.imagePullSecretsRegistry prefix and pull secrets for every image.
global.namespacessystem (control plane), sessions (workloads) and infra (privileged node jobs).
global.domains, global.sessionUrlSchemeConsole and session domains; https or http.
controlPlane.enabledfalse on a cluster that only runs an operator (attached cluster).
controlPlane.nodeSelectorPin api, worker, frontend, data tier, and backup jobs to nodes.
images.{api,worker,operator,frontend,agent}repository, tag, pullPolicy per component. api and worker share the backend image.
bootstrapAdmin.email, bootstrapAdmin.passwordThe first super_admin; password change forced on first login.
bootstrapLocalClusterRegister the local cluster automatically (all-in-one).
postgres.*, redis.*inCluster deploys them; otherwise host, port, and credential secret. postgres.backup.* is the nightly dump.
storage.poolCapacityGbFleet-wide default pool size when no pool states one.
podDisruptionBudget.enabledminAvailable 1 for api, worker, frontend.
secrets.generateLet the chart create passwords and keys, or bring your own.
ingress.*, ingress.internalPlaneConsole ingress and the whitelisted internal plane attached operators call.
serviceAccounts.*Service-account names for the controller (api/worker) and the operator.
networkPolicy.*Deny-all plus ingress/egress allowlists for the session namespace. Off by default — see below.

api​

KeyDefaultPurpose
replicas2uvicorn replicas.
dbPoolSize, dbMaxOverflow20 / 10SQLAlchemy pool.
buildRegistryRegistry prefix for console-built images.
auditRetentionDays1800 disables pruning.
nodeStaleSec300Silence before a node goes offline.
seedSessionImagestrueSeed the boanlab/gshare-session catalog.
gpuPackingbinpackbinpack or spread for fractional placement.
volumeReclaimGraceHours24Keep a deleted volume's data this long.
forwardedAllowIps*Peers uvicorn trusts to set X-Forwarded-* (--forwarded-allow-ips); narrow to the ingress controller's addresses where possible.
trustedProxyHops1Proxies that append to X-Forwarded-For before the api (GSHARE_TRUSTED_PROXY_HOPS); 2 with a load balancer in front of the ingress.

worker​

replicas, resources, gracePeriodSec (grace window after credit exhaustion before a session is paused or yielded), yieldReservationTtlSec.

operator​

KeyPurpose
clusterIdThe cluster this operator reports as (clu_local for the all-in-one install).
controlPlaneUrlWhere callbacks go when the control plane is elsewhere.
internalJwtSecret, internalJwtTokenTtlSecThe operator's token and its TTL (re-signed daily by a CronJob).
hamiMonitorUrl, prometheusUrlUtilization source for the idle reaper; see Observability.
perCardModePin each session to the exact card reserved — required for a mixed-model fleet.
volumeStorageClass, volumeSyncIntervalThe pool's StorageClass and how often PVCs and capacity are reconciled.
sessionImagePullPolicyFor session pods.
losslessAgentImage, migAgentImage, kanikoImageOptional sidecar and build images.
webhook.*, hamiYieldExtenderThe lend-guard admission webhook and HAMi yield extender.

networkPolicy​

Off by default (networkPolicy.enabled: false). Enabling it renders a deny-all policy for the session namespace plus allowlists: ingress from ingressNamespace on sessionPorts, egress to DNS in dnsNamespace, and egress to storage.cidrs on storage.ports. cpuData.cidrs adds a second egress rule for CPU data-prep sessions only.

The CIDRs are cluster-specific and start empty, which is why the whole block is off: enabling it without a storage CIDR leaves sessions able to resolve DNS and reach nothing else. The same manifests stand alone in deploy/security/ for installs that do not use this chart.

The policies select session pods by the gshare.io/workload=session label (CPU sessions also by gshare.io/resource-class=cpu), which the operator stamps on every session pod.

frontend, agent​

frontend.replicas, frontend.port, frontend.resources; agent.enabled, agent.intervalMs, agent.apiUrl, agent.nodeSelector, agent.resources — see Observability → The per-node agent.