Skip to content

Helm chart: pod-shaping knobs missing on the operator deployment #66

Description

@perbu

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions