Problem
The operator Deployment template (charts/varnish-gateway/templates/operator-deployment.yaml) exposes only nodeSelector, imagePullSecrets, resources, securityContext, and the two probes from values.yaml. For anyone running on a regulated or multi-tenant cluster, that's not enough.
Missing knobs:
tolerations — required to schedule onto tainted nodes (e.g. dedicated control-plane / system pools).
affinity / topologySpreadConstraints — required to control placement when operator.replicas > 1 (leader-election makes >1 replica reasonable for HA, and right now there's no way to spread across zones).
priorityClassName — required for clusters where infra controllers must out-prioritise workload pods.
podAnnotations / podLabels — needed for things like Linkerd injection annotations, Prometheus pod scrape hints, audit labels, etc.
extraEnv — useful for GOMAXPROCS, GOMEMLIMIT, custom log levels, OTLP endpoints, and similar tunables without rebuilding.
extraVolumes / extraVolumeMounts — needed for CA bundles, custom kubeconfig, etc.
terminationGracePeriodSeconds is hard-coded to 10; should be overridable.
Proposal
Add these as optional top-level keys under operator: in values.yaml, defaulting to {} / [] / unset so they're no-ops for existing installs. Render with the standard {{- with .Values.operator.foo }} pattern so omission produces no output.
Out of scope
- Anything affecting the chaperone pods — those are templated by the operator at runtime, not by the chart. Plumbing pod-shaping into chaperones is a separate problem and probably belongs in
GatewayClassParameters.
Problem
The operator Deployment template (
charts/varnish-gateway/templates/operator-deployment.yaml) exposes onlynodeSelector,imagePullSecrets,resources,securityContext, and the two probes fromvalues.yaml. For anyone running on a regulated or multi-tenant cluster, that's not enough.Missing knobs:
tolerations— required to schedule onto tainted nodes (e.g. dedicated control-plane / system pools).affinity/topologySpreadConstraints— required to control placement whenoperator.replicas > 1(leader-election makes >1 replica reasonable for HA, and right now there's no way to spread across zones).priorityClassName— required for clusters where infra controllers must out-prioritise workload pods.podAnnotations/podLabels— needed for things like Linkerd injection annotations, Prometheus pod scrape hints, audit labels, etc.extraEnv— useful forGOMAXPROCS,GOMEMLIMIT, custom log levels, OTLP endpoints, and similar tunables without rebuilding.extraVolumes/extraVolumeMounts— needed for CA bundles, custom kubeconfig, etc.terminationGracePeriodSecondsis hard-coded to10; should be overridable.Proposal
Add these as optional top-level keys under
operator:invalues.yaml, defaulting to{}/[]/ unset so they're no-ops for existing installs. Render with the standard{{- with .Values.operator.foo }}pattern so omission produces no output.Out of scope
GatewayClassParameters.