Commit Graph
2 Commits
Author SHA1 Message Date
jklein 03c9fd6467 Add null-safe hardening, probes and resources to patchmon
Third change of the same class (#99): an override written without
children is YAML null and replaced the whole default sub-tree, rendering
"securityContext: null" (unhardened container), a vanished probe or a
container without resource accounting - silently, while the workload
reports healthy.

The defaultedDict helper from #96 is adopted for both workloads, so an
empty block means "chart defaults apply" while an explicitly set value
still wins, including false and 0.

The server probes rebuild their Host header from ingress.domain via the
passed-in root context, because the 2.x server rejects requests whose
Host is neither loopback nor a CORS_ORIGIN host.

The schema types allow null for exactly these blocks, so schema and
helper agree instead of the schema rejecting what the helper absorbs.

Rendering with normal values is byte-identical to the previous version,
with and without the guacd sidecar.
2026-08-23 20:19:08 +02:00
jklein a7a6d6da7c Add strict values.schema.json and the ingress gate to patchmon
Two changes of the same class - values that do not do what they promise:

1. values.schema.json (#68): additionalProperties: false on every
   chart-owned object level, so a key the chart does not read is rejected
   at render time instead of being silently ignored. Objects passed
   verbatim into the pod spec (probes, securityContext, global) stay open.

2. Ingress gate (#93): the Ingress template is wrapped in
   {{- if .Values.ingress.enabled }} and the key is added to values.yaml
   with default true, so behaviour is unchanged. Without the gate the
   value did not exist at all and could not switch the Ingress off.

Major bump: a schema can break existing deployments that carry dead keys.
2026-08-23 19:34:41 +02:00