Skip to content

Drop containerd by moving to helm v3.21.3 - #5172

Merged
dimitri-nicolo merged 1 commit into
release-v1.42from
dimitri-helm-3.21.3-drop-containerd-v1.42
Aug 14, 2026
Merged

Drop containerd by moving to helm v3.21.3#5172
dimitri-nicolo merged 1 commit into
release-v1.42from
dimitri-helm-3.21.3-drop-containerd-v1.42

Conversation

@dimitri-nicolo

@dimitri-nicolo dimitri-nicolo commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Description

Cherry-pick of master's 3fce8aca0 ("chore(deps): bump helm to v3.21.3 and oras-go to v2.6.2 to drop vulnerable containerd", #5100), to remove containerd from the operator on this branch instead of bumping it again.

containerd isn't used here. It arrives via pkg/render/istio → helm's pkg/action → helm's OCI pkg/registrycontainerd/remotes. That render code only uses helm as a local template renderer — it loads four embedded chart tarballs with DryRun/ClientOnly set and never contacts a registry — but pkg/action imports pkg/registry unconditionally, so containerd gets linked into the binary on a path nothing can reach.

helm v3.21.3 swapped containerd for oras-go/v2, so moving to it drops containerd entirely.

This branch takes the pick cheaply. It's already on controller-runtime v0.24.1 / client-go v0.36.3, which is what helm v3.21.3 wants, so nothing else has to move:

before after
helm v3.20.2 v3.21.3
oras-go/v2 v2.6.0 v2.6.2
containerd v1.7.33 + 3 more gone
controller-runtime, k8s.io/* unchanged

k8s.io/* stays at v0.36.3 — master was on v0.36.2 when it made this change, and helm v3.21.3 only requires v0.36.2, so there's no reason to move backwards. The rest of the diff is what go mod tidy recomputed once containerd left the graph: Masterminds/semver and lib/pq move because helm requires newer ones.

Verified

  • go build ./... passes; containerd drops from 8 linked packages to 0 and leaves go.mod entirely.
  • go test ./pkg/render/istio/... (the only helm consumer on this branch) passes.
  • No code changes needed.

CI

The earlier dirty-check failure on this PR was unrelated pre-existing drift in pkg/imports/crds/enterprise/01-crd-eck-bundle.yaml, which broke every PR on this branch. That's fixed and merged (#5173); this PR is now rebased on top of it and contains only the go.mod/go.sum change.

Companion PRs

Release Note

None

@dimitri-nicolo
dimitri-nicolo requested a review from a team as a code owner August 13, 2026 17:58
Copilot AI lite review requested due to automatic review settings August 13, 2026 17:58
@marvin-tigera marvin-tigera added this to the v1.42.5 milestone Aug 13, 2026
@marvin-tigera marvin-tigera removed release-note-not-required docs-not-required dependencies Pull requests that update a dependency file labels Aug 13, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the module dependency graph to remove github.com/containerd/containerd from the operator binary by bumping Helm to a release that no longer links containerd (switching to oras-go/v2 internally). This fits into the operator codebase as a supply-chain/security hardening change without touching runtime/operator logic.

Changes:

  • Bump helm.sh/helm/v3 from v3.20.2 to v3.21.3.
  • Bump oras.land/oras-go/v2 to v2.6.2 and refresh related transitive versions via go mod tidy.
  • Remove github.com/containerd/containerd from the module graph (no remaining containerd/containerd entries in go.mod/go.sum).

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
go.mod Bumps Helm/oras-go and updates indirect requirements; removes github.com/containerd/containerd from requirements.
go.sum Updates checksums to match the new Helm/oras-go dependency graph and removes github.com/containerd/containerd sums.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

…rable containerd (#5100)

containerd is not used by the operator. It arrives through one chain:

  pkg/render/istio -> helm.sh/helm/v3/pkg/action
                   -> helm.sh/helm/v3/pkg/registry   (helm's OCI client)
                   -> github.com/containerd/containerd/remotes

pkg/render/istio only uses helm as a local template renderer, so it never
contacts a registry, but pkg/action imports pkg/registry unconditionally
and containerd is linked in regardless. helm v3.21.3 replaced containerd's
remotes with oras-go/v2, so moving to it removes containerd outright.

(cherry picked from commit 3fce8ac)

Conflicts: go.mod, go.sum

Resolved by keeping this branch's own dependency versions and taking only
the upgrade itself, then re-tidying:

  - helm.sh/helm/v3   v3.20.2 -> v3.21.3
  - oras.land/oras-go v2.6.0  -> v2.6.2

k8s.io/* stays at v0.36.3 here; master was on v0.36.2 when it made this
change, and helm v3.21.3 only requires v0.36.2. Everything else in the
diff is what `go mod tidy` recomputed once containerd left the graph:
Masterminds/semver and lib/pq move because helm requires newer ones.

No controller-runtime change is needed on this branch: it is already on
v0.24.1 / client-go v0.36.3, which is what helm v3.21.3 wants.

Verified:
- go build ./... passes; containerd drops from 8 linked packages to 0 and
  leaves go.mod entirely.
- go test ./pkg/render/istio/... (the only helm consumer on this branch)
  passes.
@dimitri-nicolo
dimitri-nicolo force-pushed the dimitri-helm-3.21.3-drop-containerd-v1.42 branch from e13e6ca to 16c0343 Compare August 13, 2026 21:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings August 13, 2026 21:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 2 changed files in this pull request and generated no new comments.

rene-dekker pushed a commit that referenced this pull request Aug 14, 2026
…5177)

This branch tracks calico-private release-calient-v3.23 (see
config/enterprise_versions.yml libcalico-go), which is bumping its
third-party pins in tigera/calico-private#13239. The operator deploys those
images, so its own pins have to move with them.

| component | before | after |
|---|---|---|
| eck-kibana | 8.19.16 | 8.19.20 |
| eck-elasticsearch | 8.19.16 | 8.19.20 |
| coreos-prometheus | v3.9.1 | v3.13.2 |
| coreos-alertmanager | v0.30.1 | v0.33.1 |
| eck-elasticsearch-operator | 3.4.0 | 3.4.1 |
| ISTIO_VERSION (Makefile) | 1.29.4 | 1.29.6 |

pkg/components/enterprise.go is regenerated from the yaml by gen-versions,
not hand-edited.

The eck-elasticsearch-operator move also repairs an inconsistency on this
branch: pkg/imports/crds/enterprise/01-crd-eck-bundle.yaml was already
synced to ECK 3.4.1 (#5173) while this pin still claimed 3.4.0.

Not changed, deliberately: GO_VERSION stays 1.26.5 and K8S_VERSION stays
v1.36.3. calico-private#13254 moves v3.23 to Go 1.25.13, but this branch is
on the Go 1.26 line and k8s 1.36, and #5172 (helm v3.21.3) requires Go 1.26
here. Those two pins are not meant to track calico-private.

Not changed: the version literals in hack/release/prep_test.go. They are
inputs to a round-trip test asserting that updateConfigVersions leaves
third-party pins alone; the values are arbitrary and match nothing real.

Verified:
- go build ./... passes.
- Istio charts re-fetched at 1.29.6; pkg/render/istio passes.
- pkg/render/logstorage/... (elasticsearch, kibana, eck), pkg/components
  and hack/release all pass.
@dimitri-nicolo
dimitri-nicolo merged commit 9b1de07 into release-v1.42 Aug 14, 2026
5 checks passed
@dimitri-nicolo
dimitri-nicolo deleted the dimitri-helm-3.21.3-drop-containerd-v1.42 branch August 14, 2026 23:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file docs-not-required release-note-not-required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants