Istio 1.23.0 Change Notes
Istio 1.23.0 release notes.
Deprecations
- Deprecated the in-cluster Operator. Please check out our deprecation announcement blog post for more details on the change.
Traffic Management
Added support for proxying
100 Continueheaders. This can be disabled by settingENABLE_100_CONTINUE_HEADERStofalse.Added a way to read the traffic type for a waypoint from the
istio.io/waypoint-forlabel on the parent Gateway class. This value overrides the global default and will be overridden if the label is applied to the waypoint resource. (Issue #50933)Added support for matching multiple service VIPs in a waypoint proxy. (Issue #51886)
Added an experimental feature to enable cluster creation on worker threads inline during requests. This will save memory and CPU cycles in cases where there are lots of inactive clusters and > 1 worker thread. This can be disabled by setting
ENABLE_DEFERRED_CLUSTER_CREATIONtofalsein agent Deployment.Added support for the new
reset-before-requestretry policy added in Envoy 1.31. (Issue #51704)Fixed a bug where UDP traffic in the
ISTIO_OUTPUTiptables chain exits early. (Issue #51377)Fixed
ServiceEntrystatus addresses field not supporting IP address assignments to individual hosts, which led to an undesired divergence in behavior between the new and old implementations for automatic allocations. Added a “Host” field to the Address in order to support mapping allocated IP to a host.Fixed an issue where CORS filter forwarded preflight requests if the origin was not allowed.
Fixed retry logic to make getting envoy metrics safer on
EXIT_ON_ZERO_ACTIVE_CONNECTIONSmode. (Issue #50596)Fixed propagation of IPv6 config to the
istio-cni. Note that IPv6 support is still unstable. (Issue #50162)Fixed an issue where ZDS did not pass down
trust_domain. (Issue #51182)Fixed an issue with iptables rules for ambient when dealing with IPv6.
Fixed IP auto allocation for
ServiceEntryto allocate per-host rather than per-ServiceEntry. (Issue #52319)Fixed
ServiceEntryvalidation to suppress the “address required” warning when using the auto IP allocation controller. (Issue #52422)Fixed an issue where TLS settings in
DestinationRuleare not respected when connecting from a gateway or sidecar to a backend enrolled using ambient mode.Fixed an issue preventing
DestinationRuleproxyProtocolfrom working when TLS is disabled.Removed the
ISTIO_ENABLE_OPTIMIZED_SERVICE_PUSHfeature flag.Removed the
ENABLE_OPTIMIZED_CONFIG_REBUILDfeature flag.Removed the experimental
PILOT_ENABLE_CONFIG_DISTRIBUTION_TRACKINGfeature flag and correspondingistioctl experimental waitcommand.Updated
istio-cniconfig map to only expose environment variables that are user-configurable.
Security
Added stricter validation of CSRs when Istio is functioning as the RA and is configured with an external CA for workload certificate signing. (Issue #51966)
Improved the ability to use SPIRE for SDS by allowing a custom server socket filename. Previously, SPIRE docs forced the SPIRE SDS server be configured to use the Istio-default SDS socket name. This release introduces
WORKLOAD_IDENTITY_SOCKET_FILEas an agent environment variable. If set to a non-default value, the agent will expect to find a non-Istio SDS server socket at the hard-coded path:WorkloadIdentityPath/WORKLOAD_IDENTITY_SOCKET_FILEand will throw an error if no healthy socket was found. Otherwise, it will listen to it. If this is unset, the agent will start and Istio default SDS server instance with a hard-coded path and hard-coded socket file of:WorkloadIdentityPath/DefaultWorkloadIdentitySocketFileand listen to it. This removes/replaces the agent environment variableUSE_EXTERNAL_WORKLOAD_SDS(added in #45941)(Issue #48845)
Telemetry
Added access log formatter support for OpenTelemetry. Users can add
CEL/METADATA/REQ_WITHOUT_QUERYcommands after all proxies are upgraded to Istio 1.23+.Fixed an issue where the status code was unset when using OpenTelemetry tracing. (Issue #50195)
Fixed an issue where the span name was not set when using the OpenTelemetry tracing provider.
Fixed
statsMatcher’s regular expression not matching a route’sstat_prefix.Fixed an issue where the
cluster_nameandhttp_conn_manager_prefixlabels were incorrectly truncated for services without a.svc.cluster.localsuffix.Removed Istio Stackdriver metrics from XDS. (Issue #50808)
Removed the OpenCensus tracer from Istio XDS. (Issue #50808)
Removed the feature flag
ENABLE_OTEL_BUILTIN_RESOURCE_LABELS.
Extensibility
- Removed internal multi-version protobuf files from the API. This is an internal change for most users. If you directly consume Istio APIs as protobufs, read the upgrade notes. (Issue #3127)
Installation
Added
.Values.pilot.trustedZtunnelNamespaceto theistiodHelm chart. Set this if installing ztunnel to a different namespace fromistiod. This value supersedes.Values.pilot.env.CA_TRUSTED_NODE_ACCOUNTS(which is still respected if set).Added the
releaseChannel:extendedflag to non-GA features and APIs. (Issue #173)Added outlier log path configuration to the mesh proxy config which allows users to configure the path to the outlier detection log file. (Issue #50781)
Added an
ambientumbrella Helm chart that wraps the baseline Istio components required for installing Istio with ambient support.Added support for readiness checks over https to istiod for use in clusters utilizing a remote control plane for sidecar injection. (Issue #51506)
Fixed an issue where the CNI plugin inherited the CNI agent log level.
Fixed an issue with service account annotation formatting by removing dashes. (Issue #51289)
Fixed an issue where custom annotations were not propagated to the ztunnel chart.
Fixed an issue where
sidecar.istio.io/proxyImageannotation was ignored during the gateway injection. (Issue #51888)Fixed an issue where netlink errors were not be correctly parsed, leading to
istio-cninot properly ignoring leftover ipsets.Improved CNI logging config. (Issue #50958)
Improved the Helm installation for Istiod multi-cluster for primary-remote. Now, Helm installations only require setting
global.externalIstiod, instead of also requiringpilot.env.EXTERNAL_ISTIODto be set. (Issue #51595)Removed
values.cni.logLevelis now deprecated. Usevalues.{cni|global}.logging.levelinstead.Updated the
distrolessimages to be based on Wolfi. This should have no user-facing impact.Updated Kiali addon to version 1.87.0.
Upgraded base debug images to use the latest Ubuntu LTS,
ubuntu:noble. Previously,ubuntu:focalwas used.
istioctl
Added a status subcommand that prints out the status of gateway(s) for a given namespace. (Issue #51294)
Added the ability for users to set the
seccompProfile.type(e.g. toRuntimeDefault) for auto deployed waypoints by settingvalues.gateways.seccompProfile.typein the istiod injection config.Added an
overwriteflag toistioctl applycommand to allow overwriting existing resources in the cluster (initially, just namespace waypoint enrollments). (Issue #51312)Improved the output for
istioctl versionto be more user-friendly. (Issue #51296)Improved the
istioctl proxy-statuscommand.- Each status now includes the time since the last change.
- If a proxy is not subscribed to a resource, it will now be shown as
IGNOREDinstead ofNOT SENT.NOT SENTcontinues to be used for resources that are requested, but never sent. - Include a new
ERRORstatus when configuration is rejected.
Samples
- Improved the look and feel of the Bookinfo app.