mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-14 04:59:28 +08:00
The gateway pod template exposes nodeSelector, affinity and tolerations but not priorityClassName or topologySpreadConstraints, and the StatefulSet hardcodes the data volume at 1Gi with no StorageClass control. Operators who need any of these have to fork the chart or mutate the rendered output out-of-band. Add four optional passthroughs: - priorityClassName: the gateway is a control-plane component. When it shares nodes with the workloads it serves, the default priority gives it no advantage under node pressure, so a local capacity crunch can evict it and widen into a fleet-wide outage. - topologySpreadConstraints: spread replicas across zones or nodes. Only affinity was available, which is a blunter tool for even spreading. - persistence.size / persistence.storageClassName: volumeClaimTemplates is immutable, so a claim created at 1Gi cannot be grown through the chart later. Omitting storageClassName also leaves the claim Pending on clusters with no default StorageClass. Both scheduling fields go in the shared gatewayPodTemplate, so they apply identically to the statefulset and deployment workload shapes. persistence applies to the statefulset only, which is where the volume exists. All four render only when set and default to current behaviour: 1Gi, no storageClassName, and neither scheduling field emitted. A default render is byte-identical to before this change. Signed-off-by: Bryce Wilkinson <22760097+bjw123@users.noreply.github.com>