⚠️ Action Required
Review your Gateway API configurations, particularly AllowedRoutes.namespaces.from settings, as None is no longer supported and will cause validation errors. For pluginca users, ensure your cacerts bundle is complete to avoid istiod startup failures due to new, stricter validation. Upgrading is recommended for improved stability and security hardening.


πŸ“ Summary

Istio 1.26.1 lands with crucial updates, primarily focusing on robust Gateway API integration and enhanced security. This release promotes Gateway API to v1.3.0, alongside a critical fix that resolves istiod panics when processing complex Gateway API hostnames. Notably, a breaking change from upstream Gateway API means AllowedRoutes.namespaces.from: None is no longer valid, requiring configuration updates.

Security posture is significantly strengthened through stricter CA certificate bundle validation. Istiod will now explicitly error if your cacerts bundle is incomplete, preventing silent fallbacks to less secure self-signed CAs. This proactive check helps avoid hidden misconfigurations that could compromise your mesh. Additionally, istioctl receives several quality-of-life improvements, including fixes for a manifest translate panic with multiple gateways and the correction of a false positive in istioctl analyze for ServiceEntry virtual IPs. New analysis messages now provide better feedback for DestinationRule issues. Upgrade today to benefit from these stability, usability, and security enhancements.


πŸš€ Gateway API v1.3 Promotion & Hostname Processing Fixes

Istio 1.26.1 fully embraces Gateway API v1.3.0, upgrading the dependency to the latest stable release. This integration brings improved functionality and alignment with the evolving Kubernetes networking standard. Crucially, this release addresses a regression that could cause istiod to panic when processing specific Gateway API hostname formats, particularly those with implied wildcard namespaces. While enhancing compatibility, it also introduces a notable breaking change originating from the upstream Gateway API: the AllowedRoutes.namespaces.from: None option is no longer supported, requiring users to adjust their configurations.

The fix for hostname processing ensures that istiod correctly interprets Gateway API parent hostnames that lack an explicit namespace, such as *.example.com, by internally defaulting the namespace to *. This prevents index out of range panics and ensures consistent routing behavior.

For the breaking change, any existing Gateway or HTTPRoute resources utilizing AllowedRoutes.namespaces.from: None will now fail validation. Users should update these configurations to use Selector or Same to explicitly define allowed namespaces, aligning with the updated Gateway API specification.

# Example of an old configuration that now requires an update:
# gateway.spec.listeners.allowedRoutes.namespaces.from: None # No longer valid

# Example of updated configuration:
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: my-gateway
spec:
  listeners:
  - name: http
    port: 80
    protocol: HTTP
    allowedRoutes:
      namespaces:
        from: Same # Or Selector, All

Source:

  • go.mod (92)
  • pilot/pkg/config/kube/gateway/conversion.go (613-627)
  • pilot/pkg/config/kube/gateway/conversion_test.go (1155-1205)
  • tests/integration/pilot/testdata/gateway-api-crd.yaml (1824-1827)

πŸ”’ Enhanced CA Certificate Bundle Validation for pluginca

For users leveraging the pluginca feature for external CA integration, Istio 1.26.1 introduces critical hardening measures for CA certificate bundle validation. Previously, istiod might silently fallback to a self-signed CA if the provided cacerts bundle was incomplete, leading to unexpected and potentially insecure configurations. This release enhances validation to strictly check for the presence and completeness of all required CA files, ensuring that your declared CA is truly in use or failing explicitly to prevent silent misconfigurations.

New internal functions like checkCABundleCompleteness, fileExists, and hasValidChainFiles are introduced to perform a thorough check of the signing key, signing certificate, root certificate, and certificate chain files. If any of these are missing when a cacerts bundle is expected, istiod will now return an explicit error during startup, rather than silently creating its own CA. This proactive error detection helps operators identify and correct misconfigurations more reliably, bolstering the security and predictability of the mesh’s PKI.

Operators should verify that their cacerts Secret contains the ca-key.pem, ca-cert.pem, root-cert.pem, and cert-chain.pem files for external CA configurations.

Source:

  • pilot/pkg/bootstrap/istio_ca.go (263-289, 568-639)
  • pilot/pkg/bootstrap/istio_ca_test.go (32-61)
  • releasenotes/notes/check-cacerts-completeness.yaml (1-13)

πŸ”§ Istioctl Analysis & Translation Quality-of-Life Improvements

Istio’s command-line tool, istioctl, receives a series of enhancements in this release, improving both its reliability and diagnostic capabilities. These updates range from fixing a critical panic in manifest translate when dealing with multiple gateways to refining the accuracy of istioctl analyze and introducing new, more insightful analysis messages. These changes empower operators with a more robust and informative toolkit for managing and debugging their Istio deployments.

A notable fix addresses a panic in istioctl manifest translate that occurred when an IstioOperator configuration contained multiple gateways, making the translation process more stable.

Furthermore, istioctl analyze now correctly identifies PILOT_ENABLE_IP_AUTOALLOCATE when checking ServiceEntry virtual IP requirements, resolving a false positive for the IST0134 warning. This ensures that valid configurations are no longer flagged incorrectly.

Finally, two new analysis messages (IST0173 and IST0174) have been added to provide better feedback on potential DestinationRule misconfigurations:

  • IST0173: Warns when a DestinationRule subset does not select any pods, preventing 503 UH (NoHealthyUpstream) errors.
  • IST0174: Alerts when a host defined in a DestinationRule does not match any services in the mesh, helping to catch routing issues early.

These additions streamline the troubleshooting process and improve the overall user experience.

Source:

  • operator/cmd/mesh/manifest-translate.go (110-163)
  • releasenotes/notes/56240.yaml (1-7)
  • pkg/config/analysis/analyzers/serviceentry/protocoladdresses.go (53-56)
  • pkg/config/analysis/msg/messages.gen.go (105-107, 259-266, 950-966)
  • pkg/config/analysis/msg/messages.yaml (286-289, 681-700)
  • releasenotes/notes/56083.yaml (1-34)

Minor Updates & Housekeeping

This release includes several dependency updates for stability and performance, such as github.com/miekg/dns to v1.1.65, helm.sh/helm/v3 to v3.17.3, and various golang.org/x modules. Additionally, internal proxy and ztunnel components received SHA bumps, and test utilities were improved to handle non-deterministic error messages more robustly, enhancing overall development and release quality.