ontoserver-extras-0.1.1
Note: checked against the
ontoserver-extras-0.1.0tag by diffing the values keys, not assembled from commit
messages, so nothing user-facing since that release is missing.
Added
-
Chart description corrected — it still advertised a PV template, which now lives in the
ontoserverchart. -
collector.podSecurityContextandcollector.containerSecurityContext. The collector pod is
built by the OpenTelemetry Operator from theOpenTelemetryCollectorCR, so these render as CR
fields rather than pod-spec fields:spec.podSecurityContextandspec.securityContext— the
latter being the container context despite the name. Both verified against thev1beta1CRD
shipped with operator 0.156.0.spec.containerSecurityContext, the plausible spelling, is not a
field on the CRD. How that fails depends on the client, and both were tested against a live
operator:kubectl applyrejects it with a strict decoding error, while Helm succeeds and the
API server prunes the field — the release reportsdeployedand the collector runs with no
container security context at all. The Helm path is the one that matters here and it is silent, so
a test asserts the chart never emits that spelling.
Validated on a cluster: the Operator (0.131.0) applies both contexts verbatim to the collector
pod it builds, and the collector starts and runs underreadOnlyRootFilesystemwith all
capabilities dropped. -
Readiness and liveness probes on the
varnishcontainer (varnish.probes.*, on by default).
Only the metrics exporter sidecar had one before, so the Service began routing to a pod whose
varnishdwas not yet accepting connections and every rolling update dropped requests.Both are
tcpSocketon the http port rather thanhttpGet. An HTTP probe would be proxied to
Ontoserver: backend traffic on every period, and — worse — the cache marked unready whenever the
backend was down, turning a backend outage into a cache outage and defeating the point of
varnish.graceSeconds. The liveness probe is deliberately more tolerant than the readiness probe
because a restart discards the whole cache.Note this is the one change here that is not pod-spec-neutral: the first upgrade rolls the
Varnish Deployment once and the cache starts cold. Setvarnish.probes.enabled: falseto keep
the previous behaviour. -
collector.batch.sendBatchSizeandcollector.batch.timeout, previously hardcoded. -
Opt-in security context:
varnish.podSecurityContext,varnish.containerSecurityContextand
varnish.automountServiceAccountToken. All default to unset, so upgrading an existing release
leaves the pod spec byte-identical and does not discard a warm cache. The container-level value
applies to every container in the pod — varnish, the metrics exporter and both trace sidecars —
because they share a process namespace and are not independently isolatable.
Fixed
-
Traces now actually ship. The batch processor was configured with
timeout: 0s, which does not
mean "flush immediately" — it disables the flush timer, so spans were held until
send_batch_size(1000) accumulated. A terminology server is usually quiet, so the practical
effect was that tracing appeared configured and nothing arrived. Now defaults to5s, and a zero
value is rejected at render time in any unit. -
The
filter/health_checksprocessor now runs witherror_mode: ignore. Its default,
propagate, fails the entire batch when one condition errors, so a single span missing
http.urlwould discard every span batched with it. The threecache_lookupconditions were
also missing the nil guard the surrounding conditions already had — and a condition that errors
is one that never matches, so the spans it should have filtered were being exported. -
Varnish now restarts when its VCL changes.
varnishdparses/etc/varnish/default.vclonce
at startup and never re-reads the mounted ConfigMap, so ahelm upgradethat changed only a
cache setting updated the ConfigMap, left the pod template untouched, and Varnish went on
serving the previous VCL indefinitely. The Deployment pod template now carries a
checksum/configannotation over the rendered VCL. Note this means upgrading to this version
restarts Varnish once, discarding the warm cache.
Changed
- The VCL body moved from
varnish-configmap.yamlinto a named template
(ontoserver-extras.varnish.vcl) so the Deployment can hash exactly the VCL text. The
rendered ConfigMap content is unchanged. The hash is deliberately independent of the chart
version, so future releases do not restart Varnish without a VCL change. - Chart icon URL now points at the
masterbranch rather than the non-existentmain.