Announcing Istio 1.30.3
Istio 1.30.3 patch release.
This release contains bug fixes to improve robustness. This release note describes what’s different between Istio 1.30.2 and 1.30.3.
BEFORE YOU UPGRADE
Things to know and prepare before upgrading.
DOWNLOAD
Download and install this release.
DOCS
Visit the documentation for this release.
SOURCE CHANGES
Inspect the full set of source code changes.
Changes
Added support for a custom taint name for the pilot node untaint controller via the
PILOT_NODE_UNTAINT_CONTROLLERS_TAINT_NAMEenvironment variable. Defaults tocni.istio.io/not-ready. (Issue #57844)Improved istiod scalability in ambient mode by scoping XDS pushes from workload/service
Addresschanges to only the affected waypoints, instead of pushing to all waypoints and proxies. Can be disabled withAMBIENT_SCOPED_ADDRESS_PUSHES=false.Fixed pilot-agent missing certificate reloads on second and subsequent Kubernetes secret rotations for file-mounted certs. (Issue #59912)
Fixed an issue where additional namespaces in
meshConfig.defaultServiceExportToandmeshConfig.defaultVirtualServiceExportTowere not being honored when the default included the current namespace as.. (Issue #60560)Fixed a bug where istiod did not pick up updated remote cluster secrets (e.g. during credential/token rotation) until restarted. The new cluster registry could deadlock waiting to sync, leaving the service registry stale for the affected remote cluster. (Issue #60612)
Fixed an issue introduced in Istio 1.30 where metadata-only changes to
VirtualServiceobjects (e.g. Helm annotations, Argo CD labels, orkubectl.kubernetes.io/last-applied-configuration) triggered unnecessary XDS pushes to all proxies. This could cause a significant increase in control plane CPU usage and push latency in clusters with manyVirtualServicesmanaged by GitOps tooling. The fix restores the previous behavior where only spec changes oristio.iolabel/annotation changes trigger a push. (Issue #60629)Fixed a bug where a
Servicereferring to a waypoint in a different namespace did not have the namespace-wideTelemetryresource included as part of its configuration. (Issue #60665)Fixed default HTTP retries for inbound routes of waypoints. The mesh config’s
defaultHttpRetryPolicywill apply to local services attached to waypoints. (Issue #60682)Fixed an issue where
EXIT_ON_ZERO_ACTIVE_CONNECTIONSnever fired on ambient ingress gateways and waypoints because pilot-agent’s drain loop counted in-process connections on Envoy’s HBONE internal listeners (connect_originate,connect_terminate,main_internal, etc.), preventing the active-connection count from reaching zero and forcing the proxy to wait untilterminationGracePeriodSeconds. (Issue #60728)Fixed an issue where the advertised HBONE capability was not propagated onto auto-registered
WorkloadEntryresources for non-Kubernetes workloads. Note that workloads auto-registered before upgrading continue to be reached over plaintext until they either re-register or thenetworking.istio.io/tunnel=httplabel is added to their existingWorkloadEntry.Fixed a deadlock in the ambient CNI node agent where a pod deletion event concurrent with a ztunnel (re)connection could permanently block the ZDS server. (Issue ztunnel/1674)
Fixed a memory leak in Istiod where
needResyncentries for failed pod IPs were never cleaned up.Fixed a bug where a
WasmPluginin an application namespace targeting aServiceviatargetRefswould cause a waypoint proxy to crash-loop on startup. The LDS path correctly included the plugin for the waypoint, but the ECDS lookup path rejected it as cross-namespace, leaving Envoy waiting for a resource that would never arrive. (Issue #60530)Fixed cross-network traffic through the east-west gateway being blocked by a spurious deny-all RBAC filter when the destination service has L7
AuthorizationPolicies. (Issue #60806)