May 13, 2024·6 min read·engineeringistioambientapis

Istio 1.22 separates ambient adoption into transport and HTTP processing

Ambient beta makes the secure transport layer independently adoptable from layer-seven processing. Istio 1.22 also clarifies API stability and changes how configuration updates reach proxies.

Sidecar injection couples mesh adoption to every application pod's execution environment. Istio 1.22 makes a different arrangement ready for broader use by promoting ambient mode to beta. The May 13 release announcement describes shared node proxies with optional layer-seven proxies outside application deployments. A workload can join the secure transport layer without acquiring a proxy container that must restart with it.

The important change is the separation of transport security from HTTP processing. Ambient's ztunnel provides the shared layer-four path. Waypoints provide higher-level processing where a namespace or service needs it. These components have different jobs and scaling relationships. Beta applies to the functions the project identifies as ready, rather than every possible feature historically available in the sidecar model.

I see the appeal in reducing the operational coupling between mesh infrastructure and applications. Istio's identity model is useful, but operating its proxies is a real cost. Ambient offers a more selective arrangement, in which the transport layer can be adopted before deciding which traffic needs the additional processing and configuration of a waypoint.

The transport layer is independently useful

The ambient beta article describes ztunnel as the lightweight shared node proxy. It supplies mutual TLS with cryptographic identity, layer-four authorization and telemetry. These are concrete mesh functions even without HTTP-aware routing. An application can obtain that transport behavior without having its own sidecar process.

Enrollment can happen through a namespace label and does not require restarting the application. This follows the ambient design in which node components configure traffic capture outside the application's container lifecycle. Joining or leaving the mesh becomes an infrastructure operation on the workload's traffic path. It no longer requires replacing the application pod solely to add or remove a proxy container.

That independence is a deployment property, not a claim that applications stop depending on the mesh. Once traffic uses ambient, ztunnel and its configuration are part of the communication path. The operational dependency changes location and ownership. Node-level infrastructure still has to maintain the intended transport security and forwarding behavior.

The beta article reports resource savings exceeding 90 percent in some use cases. That claim belongs to the project's reported examples and should not become a universal estimate for every mesh. The structural reason for potential savings is clear, shared proxies replace repeated sidecar allocations, and layer-seven processing can be limited to the traffic that needs it. Actual resource use still depends on which components process the workload's traffic.

Waypoints retain the higher-level responsibilities

Waypoints process routing and richer authorization policies, along with resilience behavior that needs layer-seven understanding. They run outside application deployments and can scale independently. The beta article describes a waypoint serving an entire namespace or multiple Services in a namespace. One waypoint per application pod is not required by the model.

This is a different scaling decision from attaching a proxy to each pod. Application replica count can change without requiring the same number of waypoint instances. Conversely, the waypoint can scale according to the traffic and policy scope it handles. That separation allows administrators to assign layer-seven processing capacity independently of application scheduling.

It also changes what must be understood about traffic addressing. The 1.22 upgrade notes replace the old waypoint attachment semantics and distinguish traffic addressed to a Service from traffic addressed directly to a workload. A waypoint association for one form does not automatically describe the other. The destination used by the client therefore matters to selecting the correct attachment.

The distinction is necessary because the old service-account attachment treated those forms similarly. The new model can associate a waypoint with a Service more directly. That provides a clearer scope, but existing ambient experiments need to migrate their attachment configuration. A beta graduation can include changes from earlier alpha arrangements, and these upgrade notes name one explicitly.

I prefer the explicit traffic scope because it helps connect policy to the request path that actually uses it. A configured waypoint is not sufficient evidence that every connection to an application traverses it. The attachment has to correspond to how clients address the destination and which class of traffic requires that processing.

Beta has a documented boundary

The beta scope includes installation, workload enrollment and waypoint-based layer-seven functionality. It also includes ingress connections to ambient workloads and command-line tools for operating and diagnosing the components. The project calls these functions ready for production workloads with appropriate precautions. This is the maturity claim made in May. Its scope remains narrower than all of the features implemented experimentally in the same release.

Several other ambient functions remain alpha in 1.22. The article names multicluster installations and DNS proxying, together with interoperability with sidecars and IPv6 or dual-stack support. Classic VirtualService and DestinationRule use in ambient also remains alpha. These distinctions prevent an existing sidecar configuration from being assumed ready for unchanged adoption in ambient merely because the overall mode reached beta.

The article additionally lists work not yet implemented, including controlled egress and multi-network support. Sidecar mode remains supported, and the project recommends it for needs outside ambient's available scope. Beta therefore creates another supported operating choice with a defined capability set. It does not establish feature parity for every topology or policy pattern.

That boundary is useful for evaluating a particular deployment. A single-cluster workload needing transport identity has different requirements from a multi-network system using detailed source-dependent routing. The announcement provides enough distinctions to evaluate those requirements without reducing the decision to a preference for or against sidecars.

API graduation is a separate stability statement

Istio 1.22 also promotes selected networking, security and telemetry APIs to v1. The API graduation article explains that much of the underlying functionality was already stable while its version remained older. The graduation aligns API naming with the project's stability judgment. It does not mean that every API in Istio has become v1.

The article lists resources including DestinationRule, VirtualService and PeerAuthentication among the promoted APIs. EnvoyFilter and WasmPlugin remain at their existing less-stable versions. That distinction matters because low-level extension configuration often has a closer dependency on implementation details. A general statement about stable Istio APIs cannot safely be applied to those extension mechanisms.

Telemetry has an additional complication. Several fields do not graduate to stable, including access-log filtering and configurable metrics reporting intervals. Yet Istio keeps identical schemas across versions of a given API, so those fields can still be syntactically present in an object declaring v1. The version string alone therefore does not enforce the stable subset of Telemetry functionality.

The project supplies an optional stable validation policy to enforce v1 APIs and fields. It uses Kubernetes validating admission policies and requires Kubernetes 1.30 or later. This is an explicit enforcement mechanism beyond the CRD schema. On an existing installation, the article says noncompliant resources must be deleted or updated to remove the offending fields. Adoption consequently affects future edits as well as newly created objects.

Incremental configuration becomes the default

Delta xDS is another separate change in 1.22. The release enables the incremental protocol by default for distributing proxy configuration. Its announcement contrasts this with sending a full resource set when only a small portion changes. Less repeated configuration can reduce work in both Istiod and the receiving proxies.

The upgrade notes qualify that result. Switching the protocol does not mean Istio already generates perfectly minimal updates for every path. Existing optimizations cover important cases, and the protocol change permits further work. The distinction is between an incremental transport contract and complete incremental behavior throughout configuration generation.

The same notes remove implicit tracing to zipkin.istio-system.svc. Users must explicitly configure the tracing destination, with compatibility handling available for the previous default. This gives an example of configuration behavior changing alongside architectural improvements. A smaller or more selective data plane does not remove the need to read the release's observability configuration changes.

The resulting adoption model is more specific than a general claim of mesh simplicity. Ztunnel supplies the shared transport layer, and waypoints provide additional processing for selected traffic. API stability and configuration distribution have their own contracts and limits. Istio 1.22 makes those choices more explicit while preserving a documented distinction between ambient's beta capabilities and the functionality still under development.