Updating waypoint proxies
Waypoint proxies are deployed through the Kubernetes Gateway API and are managed by the Istio control plane. When you update the control plane with the InPlace strategy, istiod rolls the waypoint deployments to the matching proxy version on its own — you do not update waypoints separately, and the application workloads they serve keep running throughout.
Because a waypoint always follows the active control plane, keep it within one minor version of the control plane (the same version or n-1). This matches the Istio support policy, which requires that data plane components never run ahead of the control plane; the same rule applies to the Istio CNI plugin and ZTunnel. The RevisionBased strategy is not available in ambient mode — see Updating Alauda Service Mesh in ambient mode for the reasoning.
Prerequisites
- You have updated the Istio control plane as described in Updating ambient mode components.
- The Bookinfo application is deployed in ambient mode; see Deploying the Bookinfo application in ambient mode.
- A waypoint proxy named
waypointexists in thebookinfonamespace; see Waypoint proxies.
TOC
Verifying the waypoint proxy versionVerifying L7 traffic routingVerifying L7 authorization policiesVerifying the waypoint proxy version
Confirm that the waypoint proxy reconnected to the updated control plane and runs the new proxy version:
Example output
The output lists the waypoint pod, the istiod pod it is connected to, the proxy version it runs, and the xDS configuration types the proxy subscribes to. A populated subscription list confirms that the waypoint receives configuration from the control plane, and the VERSION column should now show the updated release.
Verifying L7 traffic routing
After the waypoint proxies are updated, confirm that Layer 7 (L7) traffic management still behaves as configured. If you route traffic with HTTPRoute resources, check that the configured weights are still enforced.
Prerequisites
- The
bookinfo-versionsservices are created (part of the Bookinfo deployment in ambient mode). - An
HTTPRouteresource splits thereviewstraffic.
Procedure
-
Optional: If it does not exist yet, create the
HTTPRouteresource that distributesreviewstraffic 80/20 betweenreviews-v1andreviews-v2: -
Send repeated requests through the mesh and observe which
reviewsversion answers:The responses should approximate the configured split — with an 80/20 weighting, roughly sixteen of twenty requests reach
reviews-v1and the rest reachreviews-v2. Load balancing introduces some variance per run, but the ratio converges on the configured weights over repeated attempts.
Verifying L7 authorization policies
Confirm that L7 authorization decisions survive the update. The following example uses an AuthorizationPolicy named productpage-waypoint that permits only GET requests issued by the curl service account in the curl namespace to reach the productpage service.
Prerequisites
- A curl client runs in the
curlnamespace, and the namespace carries theistio-discovery=enabledandistio.io/dataplane-mode=ambientlabels. For the deployment steps, see Layer 7 features in ambient mode.
Procedure
-
Optional: If it does not exist yet, create the
AuthorizationPolicyresource:- The principal must match the namespace and service account of your client workload. This example uses the
curlservice account in thecurlnamespace.
- The principal must match the namespace and service account of your client workload. This example uses the
-
Confirm that a
GETrequest from the allowed client succeeds with anHTTP 200response:Expected output
-
Confirm that a workload outside the allow list, such as the
ratingspod, is still rejected:Expected output
The denial confirms that the updated waypoint proxy keeps enforcing the L7 authorization rules: the
ratingsservice account is not listed in the policy, while thecurlclient matches both the principal and theGEToperation.
Clean up the verification resources
If you created the routing and authorization resources only for this verification, remove them afterwards: