Varnish Version Support#
spec.image accepts any Varnish image reference. cloud-vinyl does not validate
it, so this page states which versions the operator is built and tested against.
Support matrix#
Varnish |
Status |
Notes |
|---|---|---|
9.0.x |
Works, not tested in CI |
Exporter and agent verified manually. |
8.0.x |
Supported |
The end-to-end suite runs against |
7.6.x |
Works, end of life |
No longer receives upstream updates. |
7.7.x |
Works, end of life |
No longer receives upstream updates. |
6.0.x LTS |
Not supported |
See below. |
The default cache image in the documentation and end-to-end fixtures is
varnish:8.0.2.
Why 6.0 LTS is not supported#
Two independent mechanisms break on the 6.0 series.
The metrics exporter cannot be built for it. The exporter sidecar bundles a
varnishstat copied from the cache image, together with libvarnishapi. Varnish
7.6 through 9.0 ship libvarnishapi.so.3; Varnish 6.0 ships libvarnishapi.so.1.
Dockerfile.exporter copies the .so.3 generation and fails the build when the
base image does not provide it.
The agent cannot read vcl.list. Varnish 6.0 collapses the state and
temperature fields into a single column:
varnish 6.0.18: active auto/warm 0 boot
varnish 8.0.2: active auto warm 0 boot
The agent parses the five-column layout. Against a 6.0 varnishd it reports an
error rather than a VCL name, the /health endpoint returns 503, and the pod
stays out of the Service endpoints.
Mixing varnishstat and varnishd versions#
The exporter sidecar shells out to varnishstat, which reads the shared memory
segment written by varnishd. Both must belong to the same libvarnishapi
generation.
Within the .so.3 generation, every combination of Varnish 7.6, 8.0 and 9.0 has
been verified to work in both directions: varnish_up reports 1 and the full
counter set is exported. Across the 6.0 boundary, varnishstat reports
Could not get hold of varnishd, is it running? and no varnish_* metrics are
produced.
Warning
This tolerance is a property of the current libvarnishapi generation, not a
guarantee. You must keep VARNISH_IMAGE in Dockerfile.exporter aligned with
the cache image you run.
Version-specific behavior#
Requirement |
Reason |
|---|---|
|
The generated VCL and the bootstrap VCL both declare |
|
The pods run as UID 65532. The default jail requires root for chroot setup. |
Both are satisfied by every version in the support matrix above.