Docker Hardened Image
tigera-operator-chart:3.32.2
Bug Description
After re-vendoring tigera-operator-chart 3.32.2, our Calico installation couldn't fully roll out. The chart now ships operator 1.42.6, and that operator version asks for Calico v3.32.2 component images. As far as I can tell, dhi.io/calico-kube-controllers:v3.32.2 doesn't exist, so the kube-controllers pod gets stuck in ImagePullBackOff.
The unprefixed tag dhi.io/calico-kube-controllers:3.32.2 does exist (sha256:22fddf87548d791907e398c1b3c6a1df648f19264e009fa6a98959a60fb6ef58). The other components we use have both the 3.32.2 and v3.32.2 tags (node, typha, apiserver, pod2daemon-flexvol, goldmane, whisker, whisker-backend, csi, node-driver-registrar). So it may just be a missing v alias for kube-controllers. calico-cni also seems to have no v3.32.2 tag, but I haven't checked whether 3.32 still pulls that image.
On the same rollout, dhi.io/calico-typha:v3.32.2 (sha256:19d7d2d36a0b6987284c010e6e5d6a4dce5524e551da4769dfa35903226d5e50) went into CrashLoopBackOff with a Go panic (log below). The upstream quay.io/calico/typha:v3.32.2 pods were running at the same time against the same cluster data without problems, so I suspect something in the DHI build. I may be wrong about that, though.
We went back to operator 1.42.5 (Calico v3.32.1 images), and everything is healthy again.
One more thing that might be useful: the 3.32.2 chart tag seems to have been republished with different contents. When we vendored it on 2026-09-17, it had appVersion: 1.42.5 and tigera-operator:1.42.5-debian13@sha256:df907e958eb6df17532736232f1f6e2cd42360e6652c20ff985ae2efbd17ac6d. Today the tag points to manifest sha256:582b22eadaf0ed525f71de72176f499ea33b006398c36e7bd1992f132590ed2b (created 2026-09-23T10:13:14Z) with appVersion: 1.42.6. If republishing under the same version is expected, that's fine, but it caught us off guard because the version stayed the same while the operator version changed.
Steps to Reproduce
helm pull oci://dhi.io/tigera-operator-chart --version 3.32.2 --untar
- Check
Chart.yaml: appVersion: 1.42.6, operator image dhi/tigera-operator:1.42.6-debian13@sha256:4b1655578ed0e6b201ae86f65e6bacbab58c96ac2abecee1ff80e0fc291788be.
- Install it on a cluster. With default values the Installation uses
registry: dhi.io/ and imagePrefix: calico-.
- The operator creates
calico-kube-controllers with image dhi.io/calico-kube-controllers:v3.32.2.
- Checking the registry directly:
$ regctl image digest dhi.io/calico-kube-controllers:v3.32.2
failed to request manifest head dhi.io/calico-kube-controllers:v3.32.2: request failed: not found
$ regctl image digest dhi.io/calico-kube-controllers:3.32.2
sha256:22fddf87548d791907e398c1b3c6a1df648f19264e009fa6a98959a60fb6ef58
Expected Behavior
Every image the operator bundled in the chart requests exists on dhi.io, so the Calico components start normally.
Actual Behavior
calico-kube-controllers stays in ImagePullBackOff (not found).
calico-typha (v3.32.2) crashes on startup with the panic below.
- The other components roll out.
Environment
- Orchestration: Kubernetes v1.35.6 (AKS)
- Node OS: Microsoft Azure Linux 3.0
- Container runtime: containerd 2.2.4
- Helm 3.20.2 (rendered through Grafana Tanka 0.38.0)
Relevant Logs
Failed to pull image "<acr>/aks/dhi/calico-kube-controllers:v3.32.2": rpc error: code = NotFound desc = failed to pull and unpack image "<acr>/aks/dhi/calico-kube-controllers:v3.32.2": failed to resolve image: <acr>/aks/dhi/calico-kube-controllers:v3.32.2: not found
# calico-typha v3.32.2
panic: runtime error: makeslice: len out of range [recovered, repanicked]
goroutine 106 [running]:
encoding/json.(*encodeState).marshal.func1()
encoding/json/encode.go:339 +0x68
...
github.com/projectcalico/calico/libcalico-go/lib/json.Marshal(...)
github.com/projectcalico/calico/libcalico-go/lib/json/json.go:21
github.com/projectcalico/calico/libcalico-go/lib/backend/model.SerializeValue(0x2ba8b5335990)
github.com/projectcalico/calico/libcalico-go/lib/backend/model/keys.go:686 +0x11a
github.com/projectcalico/calico/typha/pkg/syncproto.SerializeUpdate(...)
github.com/projectcalico/calico/typha/pkg/syncproto/sync_proto.go:370 +0x44e
github.com/projectcalico/calico/typha/pkg/snapcache.(*Cache).publishBreadcrumb(0x2ba8b4f93d40)
github.com/projectcalico/calico/typha/pkg/snapcache/cache.go:417 +0x378
github.com/projectcalico/calico/typha/pkg/snapcache.(*Cache).loop(0x2ba8b4f93d40, {0x2aa65c0, 0x4530600}, 0x0?)
github.com/projectcalico/calico/typha/pkg/snapcache/cache.go:289 +0x59
Additional Context
Upstream operator v1.42.6 pins these tags in pkg/components/calico.go (Version: "v3.32.2" for kube-controllers, node, typha, etc.), which is why the v-prefixed tag is being requested.
For now we're pinning the operator to 1.42.5-debian13@sha256:df907e958eb6df17532736232f1f6e2cd42360e6652c20ff985ae2efbd17ac6d as a workaround.
Pre-submission Checklist
Docker Hardened Image
tigera-operator-chart:3.32.2
Bug Description
After re-vendoring
tigera-operator-chart3.32.2, our Calico installation couldn't fully roll out. The chart now ships operator1.42.6, and that operator version asks for Calicov3.32.2component images. As far as I can tell,dhi.io/calico-kube-controllers:v3.32.2doesn't exist, so the kube-controllers pod gets stuck inImagePullBackOff.The unprefixed tag
dhi.io/calico-kube-controllers:3.32.2does exist (sha256:22fddf87548d791907e398c1b3c6a1df648f19264e009fa6a98959a60fb6ef58). The other components we use have both the3.32.2andv3.32.2tags (node, typha, apiserver, pod2daemon-flexvol, goldmane, whisker, whisker-backend, csi, node-driver-registrar). So it may just be a missingvalias for kube-controllers.calico-cnialso seems to have nov3.32.2tag, but I haven't checked whether 3.32 still pulls that image.On the same rollout,
dhi.io/calico-typha:v3.32.2(sha256:19d7d2d36a0b6987284c010e6e5d6a4dce5524e551da4769dfa35903226d5e50) went intoCrashLoopBackOffwith a Go panic (log below). The upstreamquay.io/calico/typha:v3.32.2pods were running at the same time against the same cluster data without problems, so I suspect something in the DHI build. I may be wrong about that, though.We went back to operator
1.42.5(Calico v3.32.1 images), and everything is healthy again.One more thing that might be useful: the
3.32.2chart tag seems to have been republished with different contents. When we vendored it on 2026-09-17, it hadappVersion: 1.42.5andtigera-operator:1.42.5-debian13@sha256:df907e958eb6df17532736232f1f6e2cd42360e6652c20ff985ae2efbd17ac6d. Today the tag points to manifestsha256:582b22eadaf0ed525f71de72176f499ea33b006398c36e7bd1992f132590ed2b(created 2026-09-23T10:13:14Z) withappVersion: 1.42.6. If republishing under the same version is expected, that's fine, but it caught us off guard because the version stayed the same while the operator version changed.Steps to Reproduce
helm pull oci://dhi.io/tigera-operator-chart --version 3.32.2 --untarChart.yaml:appVersion: 1.42.6, operator imagedhi/tigera-operator:1.42.6-debian13@sha256:4b1655578ed0e6b201ae86f65e6bacbab58c96ac2abecee1ff80e0fc291788be.registry: dhi.io/andimagePrefix: calico-.calico-kube-controllerswith imagedhi.io/calico-kube-controllers:v3.32.2.Expected Behavior
Every image the operator bundled in the chart requests exists on dhi.io, so the Calico components start normally.
Actual Behavior
calico-kube-controllersstays inImagePullBackOff(not found).calico-typha(v3.32.2) crashes on startup with the panic below.Environment
Relevant Logs
Additional Context
Upstream operator v1.42.6 pins these tags in
pkg/components/calico.go(Version: "v3.32.2"for kube-controllers, node, typha, etc.), which is why thev-prefixed tag is being requested.For now we're pinning the operator to
1.42.5-debian13@sha256:df907e958eb6df17532736232f1f6e2cd42360e6652c20ff985ae2efbd17ac6das a workaround.Pre-submission Checklist