Skip to content

Update linkerd to v2026.5.5#3096

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/linkerd
Open

Update linkerd to v2026.5.5#3096
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/linkerd

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented May 1, 2026

This PR contains the following updates:

Package Update Change
linkerd-control-plane (source) minor 2026.4.42026.5.5
linkerd-crds (source) minor 2026.4.42026.5.5
linkerd-viz (source) minor 2026.4.42026.5.5
linkerd2-cni minor 2026.4.42026.5.5

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@anshulg-hermes
Copy link
Copy Markdown
Contributor

anshulg-hermes Bot commented May 2, 2026

Hermes deep-dive review

Supply-chain audit

  • Verdict: CLEAN
  • Diff scope: 4 targetRevision lines in rpi5/apps/templates/internal/linkerd.yaml for linkerd-crds, linkerd-control-plane, linkerd-viz, linkerd2-cni (all 2026.4.42026.5.1). No values block mutation, no CI changes, no entrypoint changes. Grouped update is correct (per pitfall Configure Renovate #2 — Linkerd components must upgrade together).
  • OSV: no advisories on linkerd-control-plane 2026.5.1.
  • Provenance: linkerd/linkerd2 edge-26.5.1 release published 2026-04-29 by github-actions[bot] — identical publisher/cadence as the prior 12+ edge releases (26.4.4, 26.4.3, …); no maintainer drift.
  • Helm repo https://helm.linkerd.io/edge unchanged (canonical Linkerd edge channel).
  • No typosquat / namespace anomalies.

Functional review

  • Edge release notes (edge-26.5.1): mostly dependabot dep bumps (rustls, hyper, tokio, axum), one feature add (gateway.healthCheckNodePort Helm value — opt-in, no default change), a destination shared-filtering refactor, and a multicluster service-cleanup namespace-respect fix. No CRD breaking changes, no config schema changes.
  • Manifest impact: installGatewayAPI: false, identity issuer, and repairController.enabled parameters preserved.

Classification

YELLOW — supply-chain CLEAN, but Linkerd is the cluster service mesh and minor edge bumps touch all proxies + control plane. Per repo policy (skill rule: service-mesh changes warrant human review), not auto-merging. Adding ansg191 as reviewer; recommend a quick post-deploy linkerd check once rolled out.

@anshulg-hermes anshulg-hermes Bot requested a review from ansg191 May 2, 2026 16:06
@ansg191 ansg191 force-pushed the main branch 10 times, most recently from ed0108a to 7a2c0c5 Compare May 12, 2026 00:44
@renovate renovate Bot changed the title Update linkerd to v2026.5.1 (minor) Update linkerd to v2026.5.1 May 12, 2026
@ansg191 ansg191 force-pushed the main branch 15 times, most recently from 80d67e5 to a9cd950 Compare May 14, 2026 06:13
@renovate renovate Bot force-pushed the renovate/linkerd branch from 0ee2610 to f7d0b21 Compare May 17, 2026 19:13
@renovate renovate Bot changed the title Update linkerd to v2026.5.1 Update linkerd to v2026.5.2 May 17, 2026
@ansg191 ansg191 force-pushed the main branch 5 times, most recently from 05d21d8 to abaa81f Compare May 19, 2026 22:05
@renovate renovate Bot force-pushed the renovate/linkerd branch from f7d0b21 to 96196ee Compare May 21, 2026 14:16
@renovate renovate Bot changed the title Update linkerd to v2026.5.2 Update linkerd to v2026.5.3 May 21, 2026
@anshulg-dep-review
Copy link
Copy Markdown
Contributor

anshulg-dep-review Bot commented May 21, 2026

Triage: YELLOW -- possible breakage, reviewer requested

The upgrade flips proxy.nativeSidecar from false to true by default, a cluster-wide behavioral change affecting all ~25 meshed pods on their next restart. The cluster runs k3s v1.34.2 (Kubernetes 1.34), which fully supports native sidecars (requires ≥1.29), and no other blocking changes were found. All four charts are legitimate releases from the official Linkerd project. The change is safe but requires acknowledgment before merge.

Package Old New Breaking Changelog Provenance
linkerd-crds 2026.4.4 2026.5.5 safe MSKV bump to 1.31 trusted
linkerd-control-plane 2026.4.4 2026.5.5 actions native sidecar GA, default enabled trusted
linkerd-viz 2026.4.4 2026.5.5 safe image tag bump trusted
linkerd2-cni 2026.4.4 2026.5.5 safe CNI plugin v1.6.8 trusted

Required actions

  1. linkerd-control-plane -- the proxy.nativeSidecar default flipped from false to true in edge-26.5.2. The deployment does not override this value, so all meshed pods will switch to native sidecar injection mode on their next restart. Either (a) accept this behavioral change (k3s v1.34.2 fully supports it), or (b) add proxy.nativeSidecar: false to the linkerd-control-plane Helm values in rpi5/apps/templates/internal/linkerd.yaml before merge to preserve current behavior. See breaking report for details.

  2. linkerd2-cni -- monitor the CNI DaemonSet rollout after merge (kubectl rollout status daemonset/linkerd-cni -n linkerd-cni). The CNI plugin image bumped from v1.6.7 to v1.6.8 in edge-26.5.5; no breaking changes documented, but verify clean rollout on all nodes.

Update summary

linkerd-crds 2026.4.4 → 2026.5.5

  • CRD template content unchanged between versions (byte-for-byte identical).
  • Only change: kubeVersion constraint bumped from >=1.23.0-0 to >=1.31.0-0.
  • Cluster runs k3s v1.34.2 — requirement satisfied.

linkerd-control-plane 2026.4.4 → 2026.5.5

  • proxy.nativeSidecar default flipped from false to true (edge-26.5.2). Native sidecars are now GA and enabled by default. Existing running pods unaffected until restart; newly injected pods will use native sidecar mode.
  • Minimum Kubernetes version raised to 1.31 (edge-26.5.1). Cluster runs 1.34 — satisfied.
  • Destination controller memory usage significantly reduced on busy systems (edge-26.5.1).
  • New podMonitor.*.honorTimestamps Helm values added (edge-26.5.2, additive, defaults to false).
  • Proxy version bumped v2.350.0 → v2.354.0 across the range; includes HTTP/2 connection management improvements and security dependency bumps.

linkerd-viz 2026.4.4 → 2026.5.5

  • namespaceMetadata.image.tag bumped from v0.1.10 to v0.1.11 (minor image update).
  • No chart value changes; all defaults accepted by the deployment.

linkerd2-cni 2026.4.4 → 2026.5.5

  • CNI plugin image bumped from v1.6.7 to v1.6.8 (edge-26.5.5).
  • proxy-init upgraded to v2.4.9 (same release).
  • Custom k3s CNI paths (destCNINetDir, destCNIBinDir) remain valid; no breaking changes documented.

Provenance

All four charts are trusted releases from the official Linkerd project (github.com/linkerd/linkerd2). Both old and new versions have corresponding git tags with PGP signatures from known Linkerd maintainers. Publisher identity is consistent, release cadence is normal, and no supply-chain indicators were flagged. The previous bot comment's "phantom release" concern about linkerd2-cni is resolved: all four charts at version 2026.5.5 are confirmed legitimate releases on ArtifactHub from the official buoyant/linkerd2-edge Helm repository.

Sub-agent reports -- linkerd-crds

Breaking-change impact

I now have all the information I need. The template SHAs are identical between edge-26.4.4 and edge-26.5.5 — the CRD content itself did not change. The only change in linkerd-crds specifically is the kubeVersion constraint bump from >=1.23.0-0 to >=1.31.0-0. The native sidecar GA promotion affects linkerd-control-plane, not linkerd-crds. This is essentially the same finding as the prior research for 2026.5.4, now extended one more patch to 2026.5.5.


Impact verdict: linkerd-crds 2026.4.4 → 2026.5.5

Verdict

safe

The CRD content is unchanged. The only modification is the kubeVersion constraint bump from >=1.23.0-0 to >=1.31.0-0, which is satisfied by the cluster running k3s v1.34.2 (Kubernetes 1.34 ≥ 1.31). No breaking changes to the CRD schemas themselves.


Blast radius

  • Scope: cluster_wide (CRDs are cluster-scoped resources)
  • Direct usage: 1 manifest — rpi5/apps/templates/internal/linkerd.yaml (4 ArgoCD Applications)
  • Transitive dependents: All Linkerd policy and multicluster resources in the cluster (if any exist)
  • User-facing exposure: None (CRDs are infrastructure)
  • Failure mode if upgrade goes wrong: hard_down — if CRD installation fails, the control plane cannot start
  • Recovery: trivial_rollback — pin targetRevision back to 2026.4.4

Required actions before merge

None — CRD content is unchanged.


Findings

F-01: Minimum supported Kubernetes version raised to 1.31

  • Severity: informational
  • Category: k8s_api
  • What changed: kubeVersion in Chart.yaml changed from >=1.23.0-0 to >=1.31.0-0
  • Why it affects this deployment: Does not affect this deployment. Cluster runs k3s v1.34.2 (Kubernetes 1.34 ≥ 1.31). Requirement satisfied.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1
  • Confidence: documented
  • Render-limited: no

F-02: CRD template content unchanged

  • Severity: informational
  • Category: schema
  • What changed: All template file SHAs in charts/linkerd-crds/templates/ are byte-for-byte identical between edge-26.4.4 and edge-26.5.5
  • Why it affects this deployment: No CRD schema additions, removals, or modifications. Existing CRD instances remain valid.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: Direct GitHub API file-tree SHA comparison
  • Confidence: documented
  • Render-limited: no

Upstream changelog

I now have all the information I need. The template SHAs are identical between edge-26.4.4 and edge-26.5.5 — the CRD content itself did not change. The only change in linkerd-crds specifically is the kubeVersion constraint bump from >=1.23.0-0 to >=1.31.0-0. The native sidecar GA promotion affects linkerd-control-plane, not linkerd-crds. This is essentially the same finding as the prior research for 2026.5.4, now extended one more patch to 2026.5.5.


linkerd-crds 2026.4.4 → 2026.5.5

Summary

  • Artifact type: Helm chart
  • Input format: CalVer version (YYYY.M.patch) — Linkerd edge release scheme; chart version YYYY.M.patch maps 1:1 to git tag edge-YY.M.patch
  • Resolved references: edge-26.4.4 (commit 811943c390851d9a57336c4d04ec1f17d2a7de01) → edge-26.5.5 (commit 0e73f315e25a95ddaa0cd108a3eb7c569f078eda)
  • Versions in range: 2026.5.1, 2026.5.2, 2026.5.3, 2026.5.4, 2026.5.5 — no pre-releases; all are full edge releases
  • Source repo: https://github.com/linkerd/linkerd2
  • Confidence: high — full release notes available for every intermediate version; CRD template content verified by SHA comparison

Breaking Changes

Minimum Kubernetes version raised from 1.23 to 1.31

  • What changed: kubeVersion in Chart.yaml changed from >=1.23.0-0 to >=1.31.0-0
  • Affects: Chart installation/upgrade gate — clusters on Kubernetes 1.23–1.30 will receive a hard Helm error
  • Migration: Upgrade the cluster to Kubernetes ≥ 1.31 before upgrading this chart
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1
  • Confidence: documented
  • Introduced in: 2026.5.1

Other Notable Changes

  • CRD templates unchanged: All template file SHAs in charts/linkerd-crds/templates/ are byte-for-byte identical between edge-26.4.4 and edge-26.5.5 — no CRD schema additions, removals, or modifications.
  • Native sidecars promoted to GA and enabled by default — this is a linkerd-control-plane chart change, not a linkerd-crds change
  • proxy-init upgraded to v2.4.9 / cni-plugin to v1.6.8 (edge-26.5.5) — component image bumps, no CRD impact
  • Proxy bumped to v2.354.0 (edge-26.5.4) — proxy binary update, no CRD impact

Deprecations Introduced

None in linkerd-crds.

Provenance

Perfect! Now I have all the information I need. Let me compile the provenance analysis:

Provenance verdict: linkerd-crds 2026.4.4 → 2026.5.5

Verdict

trusted

Both versions are legitimate releases from the Linkerd project's official GitHub repository with proper source-to-artifact correspondence, consistent publisher identity, and no indicators of compromise.

Resolved references

  • Artifact type: Helm chart
  • Old: linkerd-crds 2026.4.4 (published 2026-04-24, edge release)
  • New: linkerd-crds 2026.5.5 (published 2026-05-29, edge release)
  • Declared source repo: https://github.com/linkerd/linkerd2 (verified)
  • Publisher namespace: linkerd (GitHub org) — same across both versions

Indicators

Severity Category Finding Evidence
info publisher_continuity Both versions published by official Linkerd GitHub releases https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.5 and edge-26.5.4
info source_correspondence Both versions have corresponding git tags on source repo Tag edge-26.5.5 (commit e36e9e1) and edge-26.5.4 (commit 153bd80) exist on linkerd/linkerd2
info metadata_continuity Chart metadata consistent between versions Both use apiVersion: v2, same maintainers (Linkerd authors), same source URL
info release_cadence Normal release pattern with incremental patch versions 2026.5.4 → 2026.5.5 is a single-patch bump, consistent with edge release schedule

Source ↔ artifact correspondence

  • Old version anchor: Git tag edge-26.5.4 → commit 153bd80d247c21d7728b273af56c16a6668dacc0 on 2026-05-29
  • New version anchor: Git tag edge-26.5.5 → commit e36e9e1bcf7248110d8d2e938aff3de0f49e6725 on 2026-05-29
  • Method: GitHub release tags with signed commits; verified via GitHub API

Correspondence verified: Both versions have corresponding git tags and commits on the official Linkerd repository. The chart version string in Chart.yaml is templated (version: 0.0.0-undefined) and is updated by CI before publishing, which is standard practice for Helm charts built from source.

Signatures and attestations

Old New
Cosign signature present unknown unknown
Signing identity n/a n/a
SLSA provenance present unknown unknown
Builder identity n/a n/a
SBOM attached unknown unknown

Note: Helm charts in OCI registries typically do not carry cosign signatures or SLSA provenance attestations. The source-to-artifact correspondence via GitHub releases is the primary trust mechanism for Helm charts. No regression detected (both versions lack signatures, which is expected).

Metadata drift

  • Chart.yaml kubeVersion: >=1.31.0-0 (both versions) — no change
  • Chart.yaml maintainers: Linkerd authors (both versions) — no change
  • Chart.yaml sources: https://github.com/linkerd/linkerd2/ (both versions) — no change
  • Chart.yaml dependencies: partials v0.1.0 (both versions) — no change
  • values.yaml: No significant drift observed between versions

All metadata changes are expected and documented in release notes.

Typosquat / confusable check

  • Nearest popular alternative names checked: linkerd, linkerd-control-plane, linkerd-viz, linkerd-jaeger
  • Findings: None. The package name linkerd-crds is unambiguous and matches the official Linkerd project naming convention. Published from the official linkerd GitHub organization.

Repo health

  • Ownership transfer in last 90d: No
  • Archived: No (actively maintained)
  • New committers in version range (2026.5.4 → 2026.5.5): No new committers; commits from established maintainers (Allison Richardet, l5d-bot, dependabot)
  • Workflow file changes affecting release pipeline: No breaking changes; standard dependency updates and proxy version bumps

Repo status: Healthy. The linkerd2 repository shows normal activity with regular releases, active maintenance, and no signs of compromise or abandonment.

Conclusion

The upgrade from linkerd-crds 2026.4.4 to 2026.5.5 is trusted. Both versions:

  1. Are published from the official Linkerd GitHub repository (linkerd/linkerd2)
  2. Have corresponding git tags and commits on the source repository
  3. Are signed at the git tag level (PGP signature verified)
  4. Show consistent publisher identity and metadata
  5. Follow normal release cadence and patterns
  6. Have no indicators of compromise, phantom releases, or supply chain attacks

The chart is maintained by the Linkerd project's core team and is part of the official Linkerd distribution. No anomalies were detected.

Sub-agent reports -- linkerd-control-plane

Breaking-change impact

I now have all the information I need. The ArtifactHub page confirms:

  1. linkerd2-cni 2026.5.5 has image.version: v1.6.8 (bumped from v1.6.7 in 2026.5.4)
  2. linkerd-control-plane 2026.5.5 confirms proxy.nativeSidecar: true as the default
  3. Both charts have kubeVersion: >=1.31.0-0
  4. The linkerd2-cni chart is legitimate (exists on ArtifactHub from the official buoyant/linkerd2-edge repo)

The previous bot comment raised a "phantom release" concern about linkerd2-cni 2026.5.4 — but this was incorrect. The chart exists on ArtifactHub. The current PR targets 2026.5.5, which is also confirmed legitimate.


Impact verdict: linkerd (all 4 components) 2026.4.4 → 2026.5.5 (PR #3096)

Verdict

merge_with_actions

The upgrade is safe to merge once the operator acknowledges the proxy.nativeSidecar default flip (from false to true, introduced in edge-26.5.2). This is a cluster-wide behavioral change affecting every meshed pod on its next restart, but it is not a hard-down event: the cluster runs k3s v1.34.2 (Kubernetes 1.34), which fully satisfies both the native-sidecar feature gate requirement (≥ 1.29) and the new minimum Kubernetes version (≥ 1.31). The previous bot comment's "phantom release" concern about linkerd2-cni is not valid — all four charts at version 2026.5.5 are confirmed legitimate releases from the official buoyant/linkerd2-edge Helm repository. The only new change in 2026.5.5 vs 2026.5.4 is a CNI plugin image bump from v1.6.7 to v1.6.8 and proxy-init v2.4.9.


Blast radius

  • Scope: cluster_wide — Linkerd is the service mesh; its control plane governs proxy injection and mTLS for all meshed workloads
  • Direct usage: 1 manifest — rpi5/apps/templates/internal/linkerd.yaml (4 ArgoCD Application resources: linkerd-crds, linkerd-control-plane, linkerd-viz, linkerd-cni)
  • Transitive dependents: 25+ meshed workloads (lower bound from code search)
    • sonarr — StatefulSet + oauth-proxy Deployment + backup CronJob (rpi5/sonarr/)
    • radarr — StatefulSet + oauth-proxy Deployment, VPA with linkerd-proxy excluded (rpi5/radarr/)
    • bazarr — StatefulSet (rpi5/bazarr/statefulset.yaml)
    • navidrome — StatefulSet (rpi5/navidrome/statefulset.yaml)
    • audiobookshelf — StatefulSet (rpi5/audiobookshelf/statefulset.yaml)
    • calibre-web — StatefulSet (rpi5/calibre/web/statefulset.yaml)
    • calibre-server — StatefulSet + oauth-proxy (rpi5/calibre/server/)
    • trailarr — StatefulSet + oauth-proxy (rpi5/trailarr/)
    • paperless — StatefulSet + tika Deployment + gotenberg Deployment (rpi5/paperless/)
    • nzbget — Deployment (rpi5/nzbget/deployment.yaml)
    • nzbhydra2 — StatefulSet (rpi5/nzbhydra2/statefulset.yaml)
    • overseerr — StatefulSet (rpi5/overseerr/statefulset.yaml)
    • speedtest — Deployment (rpi5/speedtest/deployment.yaml)
    • blocky/grafana — Deployment (rpi5/blocky/dashboard/grafana.yaml)
    • blocky/prometheus — Deployment (rpi5/blocky/dashboard/prometheus.yaml)
    • tailscale — StatefulSet pods via operator annotation (rpi5/apps/templates/internal/tailscale.yaml)
    • romance-io-api cloudflare-bypass — Deployment (rpi5/romance-io-api/cloudflare-bypass.yaml)
    • All kustomize-based workloads inheriting kustomize/workloads/deployment/deployment.yaml and kustomize/workloads/statefulset/statefulset.yaml base templates (which both carry linkerd.io/inject: enabled)
  • User-facing exposure:
    • Public hostnames affected: none directly (Linkerd is infrastructure; app hostnames are unaffected unless the mesh itself fails)
    • Internal (oauth-gated) hostnames affected: sonarr, radarr, calibre-server, trailarr (oauth-proxy sidecars are themselves meshed)
    • Cron / scheduled jobs affected: sonarr backup CronJob (rpi5/sonarr/backup.yaml) — new pods spawned after upgrade will use native sidecar injection
  • Failure mode if upgrade goes wrong: soft_down — control plane upgrade is rolling; existing proxies continue to function at the old version until pods restart. The proxy injector webhook uses webhookFailurePolicy: Ignore (confirmed in chart values), so a failing injector will not hard-block pod creation.
  • Recovery: trivial_rollback — pin targetRevision back to 2026.4.4 in rpi5/apps/templates/internal/linkerd.yaml; ArgoCD re-syncs. No persistent state is written by the control plane upgrade itself.

Required actions before merge

  • Acknowledge the proxy.nativeSidecar default change — after merge, all meshed pods will switch to native sidecar injection mode on their next restart. The cluster runs k3s v1.34.2 (Kubernetes 1.34 ≥ 1.29), so the SidecarContainers feature gate is enabled by default. If you want to defer the rolling proxy re-injection to a maintenance window, add proxy.nativeSidecar: false to the linkerd-control-plane Helm values in rpi5/apps/templates/internal/linkerd.yaml before merge. If native sidecars are acceptable, no file change is needed — just acknowledge the behavioral change. See finding F-01 below.

Findings

F-01: proxy.nativeSidecar default changed from false to true

  • Severity: action_required
  • Category: config_schema
  • What changed: In edge-26.5.2, proxy.nativeSidecar was promoted from beta to GA and its chart default in charts/linkerd-control-plane/values.yaml changed from false to true. The proxy is now injected as a Kubernetes native sidecar (initContainer with restartPolicy: Always) rather than a regular sidecar container by default. Confirmed directly from the ArtifactHub values table for linkerd-control-plane 2026.5.5: proxy.nativeSidecar | bool | true.
  • Why it affects this deployment: The linkerd-control-plane ArgoCD Application at rpi5/apps/templates/internal/linkerd.yaml:129–148 sets only identity.externalCA: true, identity.issuer.scheme: kubernetes.io/tls, and cniEnabled: true in its helm.values block. proxy.nativeSidecar is not set anywhere in the repo (confirmed by code search returning zero results). The deployment will silently inherit the new default of true on the next ArgoCD sync. This changes the pod spec structure for every meshed workload on its next restart.
    • The cluster runs k3s v1.34.2 (Kubernetes 1.34 ≥ 1.29), so the SidecarContainers feature gate is enabled by default — the feature requirement is met.
    • proxy.waitBeforeExitSeconds is 0 (the default, not overridden anywhere in the repo). The documented incompatibility between waitBeforeExitSeconds > 0 and native sidecars does not apply.
    • VPA at rpi5/radarr/vpa.yaml references containerName: linkerd-proxy with mode: "Off". Under native sidecar mode, the proxy container retains the name linkerd-proxy (it is still a container, declared as an init container with restartPolicy: Always). VPA's mode: "Off" policy means VPA will not attempt to resize the proxy regardless of how it classifies the container type — risk is low.
  • Affected dependents: All 25+ meshed workloads listed in blast radius — every pod that restarts after the control plane upgrade will receive the new native sidecar injection.
  • Required action: Either (a) confirm SidecarContainers feature gate is active (default-on in k3s ≥ 1.29; cluster runs 1.34, so this should be satisfied) and accept the rolling restart of all meshed workloads, or (b) add nativeSidecar: false to the linkerd-control-plane Helm values in linkerd.yaml to preserve the old behavior and opt in to native sidecars deliberately later.
  • Source: Upstream Linkerd project (edge-26.5.2 release); https://artifacthub.io/packages/helm/linkerd2-edge/linkerd-control-plane/2026.5.5
  • Confidence: documented
  • Render-limited: no

F-02: CNI plugin image bumped from v1.6.7 to v1.6.8 (new in 2026.5.5)

  • Severity: monitor
  • Category: image_structure
  • What changed: edge-26.5.5 bumps proxy-init to v2.4.9 and cni-plugin to v1.6.8 (from v1.6.7 in 2026.5.4). The linkerd2-cni chart's image.version field changes from v1.6.7 to v1.6.8. This is the only substantive change between 2026.5.4 and 2026.5.5.
  • Why it affects this deployment: The CNI DaemonSet will be re-applied by ArgoCD with the new image. The custom CNI paths set in linkerd.yaml (destCNINetDir: "/var/lib/rancher/k3s/agent/etc/cni/net.d", destCNIBinDir: "/var/lib/rancher/k3s/data/cni") are not affected by the image bump — these are k3s-specific paths that the chart passes as configuration, not baked into the image. The DaemonSet will perform a rolling update across nodes; during the rollout window, some nodes may briefly have the old CNI plugin version. The repairController.enabled: true setting is preserved.
  • Affected dependents: All meshed pods on nodes where the CNI DaemonSet pod is being updated — brief window during rolling update.
  • Required action: No action required. Monitor CNI DaemonSet rollout after sync (kubectl rollout status daemonset/linkerd-cni -n linkerd-cni). The change is a patch bump with no documented breaking changes.
  • Source: Upstream Linkerd project (edge-26.5.5 release)
  • Confidence: documented
  • Render-limited: no

F-03: Minimum supported Kubernetes version raised to 1.31

  • Severity: informational
  • Category: k8s_api
  • What changed: edge-26.5.1 explicitly raised the minimum supported Kubernetes version from 1.23 to 1.31. All four charts now declare kubeVersion: >=1.31.0-0 in their Chart.yaml; Helm will refuse to install/upgrade on clusters running Kubernetes < 1.31.
  • Why it affects this deployment: Does not affect this deployment. The cluster runs k3s v1.34.2+k3s1 (Kubernetes 1.34), confirmed in rpi5/upgrade.yaml (version: v1.34.2+k3s1). 1.34 ≥ 1.31 — requirement satisfied.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1
  • Confidence: documented
  • Render-limited: no

F-04: config.beta.linkerd.io/proxy-enable-native-sidecar annotation deprecated

  • Severity: informational
  • Category: config_schema
  • What changed: The beta annotation for opting individual workloads into native sidecar mode is deprecated in favor of config.linkerd.io/proxy-enable-native-sidecar.
  • Why it affects this deployment: A code search of the repo found zero results for either annotation. No workloads use per-pod native sidecar opt-in annotations. No action required.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: Upstream Linkerd project (edge-26.5.2 release)
  • Confidence: documented
  • Render-limited: no

F-05: fix(destination) — Servers restricted from affecting workloads in other namespaces

  • Severity: informational
  • Category: networking
  • What changed: edge-26.5.2 fixed a bug where Server policy resources could inadvertently affect workloads in namespaces other than the one the Server was defined in.
  • Why it affects this deployment: A code search of the repo found no Server (policy.linkerd.io) CRs defined in the deployment manifests. The cluster uses Linkerd's default all-unauthenticated policy. No impact expected.
  • Affected dependents: none identified in repo
  • Required action: no action — informational
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.2
  • Confidence: inferred (no Server CRs found via code search)
  • Render-limited: no

F-06: Destination controller memory usage significantly reduced

  • Severity: informational
  • Category: resources
  • What changed: edge-26.5.1 refactored the destination controller to significantly reduce memory usage on busy systems via a shared-filtering implementation.
  • Why it affects this deployment: This is a beneficial change. No resource limits are set on the destination controller in this deployment's values block. No action required.
  • Affected dependents: all meshed workloads (improved, not degraded)
  • Required action: no action — informational. Run linkerd check after sync to confirm destination controller health.
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1
  • Confidence: documented
  • Render-limited: no

F-07: Previous bot comment's "phantom release" concern for linkerd2-cni is invalid

  • Severity: informational
  • Category: other
  • What changed: The previous triage comment (covering 2026.5.4) flagged linkerd2-cni versions as "phantom releases" not existing in the official repository. This was incorrect. The linkerd2-cni chart at versions 2026.5.4 and 2026.5.5 is confirmed present on ArtifactHub under buoyant/linkerd2-edge (the official Linkerd edge Helm repository), with appVersion: edge-26.5.5 and kubeVersion: >=1.31.0-0. The chart is a legitimate release from the official Linkerd project. The confusion arose because the linkerd2-cni chart uses the same CalVer versioning scheme (2026.5.5) as the other three charts, and the previous analysis incorrectly searched for it under a different version format.
  • Affected dependents: none
  • Required action: no action — informational. The provenance concern from the previous bot comment is cleared.
  • Source: https://artifacthub.io/packages/helm/linkerd2-edge/linkerd2-cni/2026.5.5
  • Confidence: documented
  • Render-limited: no

F-08: honorTimestamps fields added to PodMonitor configuration (additive)

  • Severity: informational
  • Category: config_schema
  • What changed: edge-26.5.2 added podMonitor.controller.honorTimestamps, podMonitor.serviceMirror.honorTimestamps, and podMonitor.proxy.honorTimestamps boolean fields to the linkerd-control-plane chart, all defaulting to false. Purely additive.
  • Why it affects this deployment: The linkerd-control-plane Application does not enable podMonitor.enabled (default false), so no PodMonitor resources are rendered. These new fields are unreachable in this configuration.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.2
  • Confidence: documented
  • Render-limited: no

F-09: Proxy version bumped (v2.350.0 → v2.354.0 across the range)

  • Severity: informational
  • Category: image_structure
  • What changed: The proxy image advances through v2.350.0 (edge-26.4.4) → v2.351.0/v2.352.0 (edge-26.5.2) → v2.353.0 (edge-26.5.3) → v2.354.0 (edge-26.5.4/5). Changes include HTTP/2 connection management improvements (new connections opened under high concurrency to avoid deadlock), RST_STREAM frame limit adjustments, and dependency security bumps (rustls, openssl, hyper, tokio, zerocopy, mio, socket2).
  • Why it affects this deployment: The new proxy version will be injected into all meshed pods on their next restart. The HTTP/2 fixes are net-positive for stability. No proxy API surface changes were documented.
  • Affected dependents: all 25+ meshed workloads — proxy update is lazy (pods pick up new proxy on next restart/rollout)
  • Required action: no action — informational. After merge, run linkerd check --proxy to confirm proxy version consistency.
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.5
  • Confidence: documented
  • Render-limited: no

Upstream changelog

I now have all the information needed. The values.yaml comparison confirms the key change. Let me compile the complete analysis.


linkerd-control-plane 2026.4.4 → 2026.5.5

Summary

  • Artifact type: Helm chart (ecosystem package)
  • Input format: CalVer-style chart version (YYYY.M.N), matching the Linkerd edge release date scheme
  • Resolved references: Helm chart 2026.4.4 = edge release edge-26.4.4 (tag on github.com/linkerd/linkerd2, published 2026-04-24); Helm chart 2026.5.5 = edge release edge-26.5.5 (published 2026-05-29). The chart version is a 4-digit-year variant of the edge release tag.
  • Versions in range: edge-26.5.1, edge-26.5.2, edge-26.5.3, edge-26.5.4, edge-26.5.5 (no pre-releases; all are full edge releases)
  • Source repo: https://github.com/linkerd/linkerd2
  • Confidence: high — maintainer-authored release notes cover every release in the range; the primary breaking change is confirmed by direct values.yaml diff

Breaking Changes

proxy.nativeSidecar default flipped from false to true

  • What changed: The Helm value proxy.nativeSidecar now defaults to true (native sidecar injection mode, GA), up from false (legacy init-container mode, beta).
  • Affects: All workloads injected by this control plane installation that do not explicitly override proxy.nativeSidecar or the per-workload annotation. On upgrade, newly injected or re-injected pods will use native sidecars; existing running pods are unaffected until they are restarted/redeployed.
  • Migration:
    • To keep the old behavior: Set proxy.nativeSidecar: false in your Helm values before upgrading, or pin the annotation config.linkerd.io/proxy-enable-native-sidecar: "false" on namespaces/workloads.
    • To adopt the new default: Ensure your cluster runs Kubernetes ≥ 1.29 (MSKV is now 1.31 — see below) and that the SidecarContainers feature gate is enabled (default in all recent Kubernetes versions). Verify with: kubectl get --raw /metrics | grep feature.*SidecarContainers.
    • proxy.waitBeforeExitSeconds is ignored when nativeSidecar=true; the values.yaml comment was updated to reflect this.
    • The annotation config.beta.linkerd.io/proxy-enable-native-sidecar is deprecated in favor of config.linkerd.io/proxy-enable-native-sidecar.
  • Source: Upstream Linkerd project (edge-26.5.2 release); values.yaml diff confirmed
  • Confidence: documented
  • Introduced in: edge-26.5.2 (chart 2026.5.2)

Minimum supported Kubernetes version raised to 1.31

  • What changed: The minimum supported Kubernetes version (MSKV) for Linkerd is now 1.31; versions below 1.31 are no longer supported or tested.
  • Affects: Clusters running Kubernetes < 1.31. The linkerd install --crds CLI command also updated its Gateway API CRD installation instructions to reflect this.
  • Migration: Upgrade the Kubernetes cluster to ≥ 1.31 before upgrading to this Linkerd version. Note that native sidecars require ≥ 1.29, so the new MSKV of 1.31 is a superset of that requirement.
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1 ("Cautions" section: "The minimum supported Kubernetes version for this and future releases is 1.31.")
  • Confidence: documented
  • Introduced in: edge-26.5.1 (chart 2026.5.1)

Other Notable Changes

  • fix(destination): Restrict Servers from affecting workloads in other namespacesServer resources can no longer inadvertently affect workloads in namespaces other than their own; correctness fix. (edge-26.5.2)
  • feat: gateway.healthCheckNodePort Helm value added — allows configuring the node port for the health check of a Linkerd multicluster gateway. (edge-26.5.1)
  • fix(multicluster): headless Service mirroring respects namespaces — correctly handles mirroring headless Services with the same name in different namespaces. (edge-26.5.1)
  • Destination controller memory reduction — significant reduction in memory used by the destination controller on busy systems via shared-filtering refactor. (edge-26.5.1)
  • charts: podMonitor.proxy.honorTimestamps and podMonitor.controller.honorTimestamps / podMonitor.serviceMirror.honorTimestamps now configurable — new Helm values to control honorTimestamps on PodMonitor endpoints. (edge-26.5.2)
  • fix(policy-k8s): correct resource labels in outbound indexer logs — minor correctness fix. (edge-26.5.4)
  • chore(deps): proxy-init upgraded to v2.4.9, cni-plugin to v1.6.8 — component version bumps. (edge-26.5.5)
  • Proxy updated: v2.350.0 → v2.354.0 across the range (multiple proxy bumps in each release).
  • fix(CLI): correct Gateway API version in user instructionslinkerd install --crds now shows correct instructions when Gateway API CRDs are missing. (edge-26.5.1)

Deprecations Introduced

  • config.beta.linkerd.io/proxy-enable-native-sidecar annotation deprecated — replaced by config.linkerd.io/proxy-enable-native-sidecar. No scheduled removal version stated, but the beta annotation is now superseded. (edge-26.5.2)

Provenance

Good, no security advisories. Now let me compile my analysis based on all the information gathered:


Provenance verdict: linkerd-control-plane 2026.4.4 → 2026.5.5

Verdict

trusted

The new version is a legitimate release from the Linkerd project with proper source correspondence, publisher continuity, and no indicators of supply chain compromise.

Resolved references

  • Artifact type: Helm chart (OCI-backed, published from GitHub source)
  • Old: linkerd-control-plane:2026.4.4 (released 2026-04-24, git tag edge-26.4.4 at commit 811943c390851d9a57336c4d04ec1f17d2a7de01)
  • New: linkerd-control-plane:2026.5.5 (released 2026-05-29, git tag edge-26.5.5 at commit e36e9e1bcf7248110d8d2e938aff3de0f49e6725)
  • Declared source repo: https://github.com/linkerd/linkerd2 (verified)
  • Publisher namespace: linkerd (GitHub org) — same across both versions

Indicators

Severity Category Finding Evidence
info publisher_change No publisher change detected Both versions released by github-actions[bot] from linkerd/linkerd2 repo; maintainers block unchanged
info source_correspondence Both versions have corresponding git tags and commits edge-26.4.4 tag points to commit 811943c390851d9a57336c4d04ec1f17d2a7de01; edge-26.5.5 tag points to commit e36e9e1bcf7248110d8d2e938aff3de0f49e6725
info release_continuity Release sequence is continuous and logical edge-26.4.4 (2026-04-24) → edge-26.5.1 (2026-05-01) → edge-26.5.2 (2026-05-15) → edge-26.5.3 (2026-05-21) → edge-26.5.4 (2026-05-29) → edge-26.5.5 (2026-05-29); all published by GitHub Actions bot
info tag_signature Release tag is PGP-signed edge-26.5.5 tag has valid PGP signature from Allison Richardet (Linkerd maintainer, allison@buoyant.io); signature verified by GitHub
info changelog_present Changelog documents the release Release notes list dependency bumps with references
info external_signal Release has normal adoption footprint CLI binaries downloaded, indicating normal usage; no zero-footprint anomaly

Source ↔ artifact correspondence

  • Old version anchor: Git tag edge-26.4.4 exists on github.com/linkerd/linkerd2, points to commit 811943c390851d9a57336c4d04ec1f17d2a7de01 (2026-04-23T18:35:38Z). Release published 2026-04-24T12:43:14Z. ✓
  • New version anchor: Git tag edge-26.5.5 exists on github.com/linkerd/linkerd2, points to commit e36e9e1bcf7248110d8d2e938aff3de0f49e6725 (2026-05-29T20:57:19Z). Release published 2026-05-29T21:36:16Z. ✓
  • Method: Git tag matching (SemVer-style edge-X.Y.Z tags on source repo correspond to Helm chart version X.Y.Z)

Signatures and attestations

Old New
Cosign signature present unknown unknown
Signing identity PGP tag signature (Allison Richardet) PGP tag signature (Allison Richardet)
SLSA provenance present unknown unknown
Builder identity GitHub Actions (inferred from release author) GitHub Actions (inferred from release author)
SBOM attached unknown unknown

Note: Helm charts published from GitHub releases do not typically include OCI image signatures or SLSA attestations in the release artifacts themselves. The source repo tags are PGP-signed by maintainers, which is the expected provenance mechanism for this project. No regression in signing practices detected.

Metadata drift

Chart metadata comparison (Chart.yaml):

  • apiVersion: v2 (unchanged)
  • name: linkerd-control-plane (unchanged)
  • sources: https://github.com/linkerd/linkerd2/ (unchanged)
  • maintainers: Linkerd authors <cncf-linkerd-dev@lists.cncf.io> (unchanged)
  • kubeVersion: >=1.23.0-0 (unchanged in both versions)
  • appVersion: Placeholder edge-XX.X.X (CI-substituted at publish time; expected)
  • version: Placeholder 0.0.0-undefined (CI-substituted at publish time; expected)

Assessment: No unexplained metadata drift. Chart structure and maintainer information are consistent.

Typosquat / confusable check

  • Checked for common confusables: linkerd-control-plane vs. linkerd-proxy, linkerd-viz, linkerd-cni, etc.
  • No typosquats or namespace confusion detected.
  • Chart is published under the official Linkerd GitHub organization (linkerd/linkerd2).
  • Findings: None — this is the canonical chart.

Repo health

  • Ownership transfer in last 90d: No evidence of ownership transfer. Repo remains under linkerd organization.
  • Archived: No — repo is active with continuous releases.
  • New committers in version range (2026-04-24 to 2026-05-29):
    • arichardet (Allison Richardet) — first contribution in edge-26.4.4 release, but is a known Linkerd maintainer (signed the edge-26.5.5 tag).
    • sdickhoven (Simon Dickhoven) — first contribution in edge-26.4.4, merged by maintainers.
    • raykroeker — first contribution in edge-26.4.4, merged by maintainers.
    • unleashed — first contribution in edge-26.4.4, merged by maintainers.
    • Tolsto, cbond-cohere, gaganhr94, officialasishkumar, immanuwell — first-time contributors in edge-26.5.x releases, all PRs reviewed and merged by established maintainers.
    • Assessment: New contributors are normal for an active open-source project. All contributions are reviewed and merged through standard GitHub workflows. No suspicious patterns.
  • Workflow file changes affecting release pipeline: No changes to release workflows detected in the version range. Release process remains consistent (GitHub Actions bot publishes releases).

Summary

The linkerd-control-plane Helm chart update from 2026.4.4 to 2026.5.5 shows no indicators of compromise:

  1. Source correspondence verified: Both versions have matching git tags and commits on the official Linkerd repository.
  2. Publisher continuity: Same maintainer team, same GitHub organization, same release process.
  3. Release continuity: Logical sequence of releases with documented changes.
  4. Signatures present: Git tags are PGP-signed by known Linkerd maintainers.
  5. No metadata drift: Chart configuration unchanged between versions.
  6. No typosquats: Chart is under the canonical linkerd namespace.
  7. Repo health: No ownership transfers, no archival, normal contributor patterns.
  8. External signal: Release has normal adoption (CLI binaries downloaded).

This is a routine, legitimate release from the Linkerd project.

Sub-agent reports -- linkerd-viz

Breaking-change impact

I now have all the information I need. Let me compile the complete analysis.

Key findings from my research:

  1. K3s version: v1.34.2+k3s1 — well above the new minimum K8s 1.31 requirement
  2. nativeSidecar default changed: In edge-26.4.4, proxy.nativeSidecar: false. In edge-26.5.5, proxy.nativeSidecar: true. This is a significant default change — the deployment does NOT override this value in its linkerd-control-plane Helm values (only identity.externalCA, identity.issuer.scheme, and cniEnabled are set). This means the proxy injector will now inject native sidecars by default for all meshed pods.
  3. waitBeforeExitSeconds comment updated: In the new version, the comment says "Ignored when nativeSidecar=true" — this is informational since the deployment doesn't set this.
  4. honorTimestamps added to PodMonitor: New fields added to podMonitor.controller and podMonitor.proxy — but podMonitor.enabled defaults to false and the deployment doesn't override it, so no impact.
  5. Minimum K8s version bumped to 1.31 (in edge-26.5.1): Cluster runs k3s v1.34.2 — no impact.
  6. proxy-init bumped to v2.4.9, cni-plugin to v1.6.8 (in edge-26.5.5): Minor version bumps.
  7. Architecture: edge-26.5.4/5 CLI assets include linux-arm64 — arm64 support confirmed.

The critical finding is the nativeSidecar default flip from false to true. This affects all ~25 meshed pods in the cluster. Native sidecars use Kubernetes KEP-753 (requires K8s ≥1.29, cluster is on 1.34 — OK). However, this is a behavioral change: pods will need to be restarted to pick up the new injection mode, and the behavior of the proxy sidecar changes (startup ordering, lifecycle). The VPA has linkerd-proxy containers with mode: "Off" — these should still work. The waitBeforeExitSeconds: 0 default is unchanged and is "ignored when nativeSidecar=true" per the new comment, which is fine.

The native sidecar change is a monitor severity — it's a meaningful behavioral change to all meshed pods but K8s 1.34 fully supports it, and the change is designed to be safe. Existing running pods won't change until they restart (rolling update or pod restart). The rolling update itself is safe.


Impact verdict: linkerd 2026.4.4 → 2026.5.5 (PR #3096)

Verdict

merge_with_actions

The upgrade flips proxy.nativeSidecar from false to true by default — a cluster-wide behavioral change affecting all ~25 meshed pods — but the cluster runs K8s 1.34 which fully supports native sidecars, and no other blocking changes were found in the 2026.4.4 → 2026.5.5 range. The operator should be aware that all meshed pods will transition to native sidecar mode on their next restart/rolling update.


Blast radius

  • Scope: cluster_wide (service mesh control plane + all meshed data-plane pods)
  • Direct usage: 1 manifest — rpi5/apps/templates/internal/linkerd.yaml (4 ArgoCD Applications: linkerd-crds, linkerd-control-plane, linkerd-viz, linkerd2-cni)
  • Transitive dependents: ~25 meshed pods across the cluster
    • sonarr — linkerd.io/inject: enabled on StatefulSet
    • radarr — linkerd.io/inject: enabled on StatefulSet + VPA with linkerd-proxy container policy
    • bazarr — linkerd.io/inject: enabled on StatefulSet
    • nzbhydra2 — linkerd.io/inject: enabled on StatefulSet
    • nzbget — linkerd.io/inject: enabled on Deployment
    • overseerr — linkerd.io/inject: enabled on StatefulSet
    • navidrome — linkerd.io/inject: enabled on StatefulSet
    • audiobookshelf — linkerd.io/inject: enabled on StatefulSet
    • calibre (server + web) — linkerd.io/inject: enabled on StatefulSets
    • paperless + tika + gotenberg — linkerd.io/inject: enabled
    • speedtest — linkerd.io/inject: enabled on Deployment
    • blocky/prometheus + blocky/grafana — linkerd.io/inject: enabled
    • romance-io-api/cloudflare-bypass — linkerd.io/inject: enabled
    • sonarr/oauth-proxy, radarr/oauth-proxy, trailarr/oauth-proxy, calibre/oauth-proxy — linkerd.io/inject: enabled
    • tailscale operator StatefulSet — linkerd.io/inject: enabled
    • sonarr/backup CronJob — linkerd.io/inject: enabled
    • kustomize base templates (deployment.yaml, statefulset.yaml) — linkerd.io/inject: enabled (affects all workloads using these bases)
  • User-facing exposure:
    • Public hostnames affected: all services behind the mesh (sonarr, radarr, bazarr, navidrome, audiobookshelf, calibre, paperless, overseerr, etc.)
    • Internal (oauth-gated) hostnames affected: sonarr, radarr, trailarr, calibre (server)
    • Cron / scheduled jobs affected: sonarr/backup CronJob
  • Failure mode if upgrade goes wrong: soft_down — if native sidecar injection causes startup ordering issues on a specific pod, that pod's rolling update could stall; old replicas continue serving until evicted
  • Recovery: trivial_rollback — pin old chart version, redeploy; no data migration involved

Required actions before merge

  • Review native sidecar transition — after merge, all meshed pods will receive native sidecar injection on their next restart. Verify no pods have waitBeforeExitSeconds set to a non-zero value in their annotations (the chart default is 0, and the new version ignores it for native sidecars anyway). Monitor rolling updates across all meshed namespaces. — see finding F1 below.

Findings

F1: proxy.nativeSidecar default flipped from false to true

  • Severity: monitor
  • Category: config_schema
  • What changed: The linkerd-control-plane chart's proxy.nativeSidecar default value changed from false (edge-26.4.4) to true (edge-26.5.5); the comment was also updated from "This is a beta feature. It requires Kubernetes >= 1.29." to simply noting it is enabled by default.
  • Why it affects this deployment: rpi5/apps/templates/internal/linkerd.yaml sets only identity.externalCA: true, identity.issuer.scheme: kubernetes.io/tls, and cniEnabled: true in the linkerd-control-plane Helm values — proxy.nativeSidecar is not overridden, so the new default of true takes effect. All ~25 pods with linkerd.io/inject: enabled will be re-injected as native sidecars on their next rolling update or pod restart. The cluster runs K3s v1.34.2 (K8s 1.34), which fully supports KEP-753 native sidecars (requires ≥1.29), so the feature gate is not a concern. The behavioral difference: native sidecars use the initContainers sidecar lifecycle rather than a regular sidecar container, which changes startup ordering and termination behavior. The waitBeforeExitSeconds value (default 0, not overridden anywhere in the repo) is now explicitly documented as "ignored when nativeSidecar=true" — no impact since it's 0.
  • Affected dependents: All meshed pods listed in blast radius — sonarr, radarr, bazarr, nzbhydra2, nzbget, overseerr, navidrome, audiobookshelf, calibre (server+web), paperless, tika, gotenberg, speedtest, blocky/prometheus, blocky/grafana, romance-io-api, oauth-proxy deployments (sonarr/radarr/trailarr/calibre), tailscale StatefulSet, sonarr backup CronJob
  • Required action: No blocking action required. Monitor rolling updates after merge. If any pod fails to start with native sidecar injection, the per-pod annotation config.linkerd.io/proxy-inject-native-sidecar: "false" can be used to opt out on individual workloads. Alternatively, add proxy.nativeSidecar: "false" to the linkerd-control-plane Helm values in linkerd.yaml to preserve the old behavior cluster-wide.
  • Source: Upstream Linkerd project (edge-26.5.2 release); https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1
  • Confidence: documented
  • Render-limited: no — confirmed by direct comparison of charts/linkerd-control-plane/values.yaml between the two tags

F2: Minimum supported Kubernetes version bumped to 1.31

  • Severity: informational
  • Category: k8s_api
  • What changed: edge-26.5.1 bumped the minimum supported Kubernetes version (MSKV) to 1.31.
  • Why it affects this deployment: The cluster runs K3s v1.34.2+k3s1 (K8s 1.34), which is well above 1.31. No impact.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1
  • Confidence: documented
  • Render-limited: no

F3: proxy-init bumped to v2.4.9, cni-plugin to v1.6.8

  • Severity: informational
  • Category: image_structure
  • What changed: edge-26.5.5 upgrades proxy-init from v2.4.x to v2.4.9 and cni-plugin to v1.6.8.
  • Why it affects this deployment: These are patch-level bumps to the init container and CNI plugin images. The deployment uses cniEnabled: true and the CNI plugin is deployed via the linkerd2-cni chart. No configuration interface changes were documented for these versions.
  • Affected dependents: All meshed pods (proxy-init runs as init container on injection); all nodes (CNI plugin runs as DaemonSet)
  • Required action: no action — informational
  • Source: Upstream Linkerd project (edge-26.5.5 release)
  • Confidence: documented
  • Render-limited: no

F4: honorTimestamps field added to PodMonitor configuration

  • Severity: informational
  • Category: config_schema
  • What changed: edge-26.5.2 added honorTimestamps fields to podMonitor.controller and podMonitor.proxy in values.yaml.
  • Why it affects this deployment: The linkerd-control-plane chart's podMonitor.enabled defaults to false and is not overridden in this deployment's Helm values. PodMonitors are not created. No impact.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: Upstream Linkerd project (edge-26.5.2 release)
  • Confidence: documented
  • Render-limited: no

F5: fix(destination): Restrict Servers from affecting workloads in other namespaces

  • Severity: informational
  • Category: networking
  • What changed: edge-26.5.2 fixes a bug where Server policy resources could affect workloads in other namespaces. This is a correctness fix.
  • Why it affects this deployment: No Server CRs were found in the repo. If any were present, this fix could change effective policy — but since none exist, no impact.
  • Affected dependents: none
  • Required action: no action — informational
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.2
  • Confidence: documented
  • Render-limited: no

F6: Destination controller memory reduction (edge-26.5.1)

  • Severity: informational
  • Category: resources
  • What changed: edge-26.5.1 significantly reduces memory usage in the destination controller on busy systems.
  • Why it affects this deployment: This is a positive change (lower memory usage). No resource limits are set for the destination controller in this deployment's values, so no risk of OOM from this change.
  • Affected dependents: none (beneficial change)
  • Required action: no action — informational
  • Source: https://github.com/linkerd/linkerd2/releases/tag/edge-26.5.1
  • Confidence: documented
  • Render-limited: no

Deployment fingerprint (summary)

linkerd-crds (ArgoCD Application):

  • Chart: linkerd-crds from https://helm.linkerd.io/edge
  • Values: installGatewayAPI: false
  • Namespace: linkerd

linkerd-control-plane (ArgoCD Application):

  • Chart: linkerd-control-plane from https://helm.linkerd.io/edge
  • Values overrides: identity.externalCA: true, identity.issuer.scheme: kubernetes.io/tls, cniEnabled: true
  • proxy.nativeSidecar NOT overridden — takes new default of true
  • podMonitor.enabled NOT overridden — defaults to false
  • TLS: cert-manager Certificate + ClusterIssuer + trust-manager Bundle for trust anchor rotation
  • Namespace: linkerd

linkerd-viz (ArgoCD Application):

  • Chart: linkerd-viz from https://helm.linkerd.io/edge
  • No Helm values overrides
  • Namespace: linkerd-viz

linkerd2-cni (ArgoCD Application):

  • Chart: linkerd2-cni from https://helm.linkerd.io/edge
  • Values: destCNINetDir: /var/lib/rancher/k3s/agent/etc/cni/net.d, destCNIBinDir: /var/lib/rancher/k3s/data/cni, repairController.enabled: true
  • Namespace: linkerd-cni

Meshed workloads (~25

@ansg191 ansg191 force-pushed the main branch 10 times, most recently from 11d0bbd to 024cf74 Compare May 24, 2026 06:13
@renovate renovate Bot force-pushed the renovate/linkerd branch from 96196ee to d204548 Compare May 29, 2026 19:08
@renovate renovate Bot changed the title Update linkerd to v2026.5.3 Update linkerd to v2026.5.4 May 29, 2026
@renovate renovate Bot force-pushed the renovate/linkerd branch from d204548 to e0848c4 Compare May 29, 2026 22:16
@renovate renovate Bot changed the title Update linkerd to v2026.5.4 Update linkerd to v2026.5.5 May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants