Istio 1.12 Change Notes
Istio 1.12.0 change notes.
Traffic Management
- Improved support for headless services with undeclared protocols to not require specific - Hostheaders. (Issue #34679)
- Added validator for empty regex match in VirtualService, preventing invalid Envoy configuration. (Issue #34065) 
- Added support for - useSourceIPconsistent hash load balancing for TCP traffic. Previously, only HTTP was supported. (Issue #33558)
- Added support for envoy to track active connections during drain and quit if active connections become zero instead of waiting for entire drain duration. This is disabled by default and can be enabled by setting - EXIT_ON_ZERO_ACTIVE_CONNECTIONSto true. (Issue #34855)
- Added support for - trafficPolicy.loadBalancer.consistentHashin- DestinationRulefor proxyless gRPC clients. (Pull Request #35333)
- Added the ability for users to specify Envoy’s - LOGICAL_DNSas a connection type for a cluster using- DNS_ROUND_ROBINin ServiceEntry. (Issue #35475)
- Added - failoverPriorityload balancing traffic policy, which allows users to set an ordered list of labels used to sort endpoints to do priority based load balancing. (Pull Request #34740)
- Added support for creating mirrored QUIC listeners for non-passthrough HTTPS listeners at gateways. (Pull Request #33817) 
- Added support for the - v1alpha2version of the gateway-api. (Pull Request #35009)
- Added experimental support for the - cluster.localhost behavior as defined by the Kubernetes Multi-Cluster Services (MCS) spec. This feature is off by default, but can be enabled by setting the following flags in Istio:- ENABLE_MCS_CLUSTER_LOCAL,- ENABLE_MCS_HOSTand- ENABLE_MCS_SERVICE_DISCOVERY. When enabled, requests to the- cluster.localhost will be routed to only those endpoints residing within the same cluster as the client. (Issue #35424)
- Fixed TCP probes. When using TCP probes with older versions of Istio the check was always successful, even if the application didn’t open the port. (details) 
- Fixed Gateway API xRoute does not forward the traffic to that backend when weight - 0. (Issue #34129)
- Fixed an issue in which ADS would hang due to the wrong - syncChsize being provided. (Pull Request #34633)
- Fixed an issue causing Ingress resources with the same name but different namespaces from conflicting. (Issue #31833) 
Security
- Improved performance of TLS certificate Secret watches to reduce memory usage. (Issue #35231) 
- Added support to istiod to notice - cacertsfile changes via the- AUTO_RELOAD_PLUGIN_CERTSenvironment variable. (Issue #31522)
- Added - VERIFY_CERT_AT_CLIENTenvironment variable to istiod. Setting- VERIFY_CERT_AT_CLIENTto- truewill verify server certificates using the OS CA certificates when not using a- DestinationRule- caCertificatesfield. (Issue #33472)
- Added Auto mTLS support for workload level peer authentication. You no longer need to configure destination rule when servers are configured with workload level peer authentication policy. This can be disabled by setting - ENABLE_AUTO_MTLS_CHECK_POLICIESto- false. (Issue #33809)
- Added support for integration of GKE workload certificates. (Issue #35385) 
- Added values to the Istio Gateway Helm charts for configuring annotations on the ServiceAccount. Can be used to enable IAM Roles for Service Accounts on AWS EKS. (Pull Request #33914) 
- Added support for JWT claim based routing on ingress gateways. (Pull Request #35762) 
- Fixed the - EnvoyExternalAuthorizationHttpProviderto match HTTP headers in a case-insensitive way. (Issue #35220)
- Promoted the external authorization feature from Experimental to Alpha. (Pull Request #104) 
Telemetry
- Fixed an issue with WorkloadGroupandWorkloadEntrylabeling of canonical revision. (Issue #34395)
Extensibility
- Added support for Istio WasmPluginAPI. (Pull Request #33374)
Installation
- Updated - istioctl tag set defaultto control which revision handles Istio resource validation. The revision indicated through the default tag will also win leader elections and assume singleton cluster responsibilities. (Pull Request #35286)
- Added labels on pod level for istio-operator and istiod. (Issue #33879) 
- Added pilot service annotations on helm chart. (Issue #35229) 
- Added support for arm64 API for operator, add nodeAffinity arm64 expression. (Pull Request #35648) 
- Fixed a bug where specifying same port number with different protocols (TCP and UDP) lead to incorrect merging and rendered an erroneous manifest. (Issue #33841) 
- Fixed Istioctl not wait on CNI DaemonSet update. (Issue #34811) 
- Fixed no Permission to list - ServiceExportfrom remote clusters in primary cluster. (Issue #35068)
istioctl
- Improved analyzers report output to match the naming scheme expected by the API, i.e - <ns>/<name>instead of- <name>.<ns>. (Issue #35405)
- Improved destination rule ca analyzer to show exact error line when using - istioctl analyze, otherwise it will show the first line of its yaml configuration chunk. (Issue #22872)
- Updated - istioctl x create-remote-secretand- istioctl x remote-clustersto the top level command, out of experimental. (Issue #33799)
- Added - istioctl installwill now do- IST0139analysis on webhooks. (Issue #33537)
- Added - istioctl x remote-clustersto list the remote clusters each- istiodinstance has API Server credentials for, and the service registry sync status of each cluster. (Issue #33799)
- Added the pod alias - pofor users to use- istioctl x describe po, which is consistent with the- kubectlcommand. (Pull Request #34802)
- Added precheck now detects usage of Alpha Annotations. (Pull Request #35483) 
- Added - istioctl operator dumpnow supports the- watchedNamespacesargument to specify the namespaces the operator controller watches. (Issue #35485)
- Fixed - istioctl operatorsubcommands to now support remote URLs specified in the- --manifestsargument. (Issue #34896)
- Fixed - istioctl admin logformat. (Issue #34982)
- Fixed APP pods (such as httpbin) can not be created if not using ‘istio-system’ as the Istio namespace to install Istio at the first time. And - istioctl install,- istioctl tag setand- istioctl tag generatewill be influenced. For example, user can set a specified namespace (- mesh-1as an example) to install Istio via- istioctl install --set profile=demo --set values.global.istioNamespace=mesh-1 -y(Issue #35539)
- Fixed - istioctl bug-reporthas the extra default system namespaces displayed when- --excludeis not set. (Issue #35593)
- Fixed the release tar URL by adding the patch version. (Pull Request #35712) 
- Fixed an issue in istioctl bug-report where –context and –kubeconfig were not being honored. (Issue #35574)