Skip to content

Commit 57ce9d8

Browse files
committed
docs: Add comprehensive waypoint proxy update procedures
- Expand istio-ambient-update.md with detailed waypoint verification steps - Add waypoint compatibility information for InPlace and RevisionBased strategies - Include L7 feature verification procedures after control plane updates - Add cross-namespace waypoint update considerations and troubleshooting - Create dedicated 'Update' section in istio-ambient-waypoint.md - Add 'L7 Feature Verification During Updates' subsection - Add 'Cross-namespace Waypoint Updates' subsection - Add comprehensive waypoint troubleshooting for update issues - Update main README.md to include waypoint update documentation - Include examples for HTTPRoute, AuthorizationPolicy, and telemetry verification Signed-off-by: Rafael Zago <[email protected]>
1 parent 997d442 commit 57ce9d8

File tree

3 files changed

+110
-14
lines changed

3 files changed

+110
-14
lines changed

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@
6767
- [Introduction to Istio Waypoint Proxy](common/istio-ambient-waypoint.md#introduction-to-istio-waypoint-proxy)
6868
- [Core features](common/istio-ambient-waypoint.md#core-features)
6969
- [Getting Started](common/istio-ambient-waypoint.md#getting-started)
70+
- [Update](common/istio-ambient-waypoint.md#update)
7071
- [Layer 7 Features in Ambient Mode](common/istio-ambient-waypoint.md#layer-7-features-in-ambient-mode)
7172
- [Troubleshoot issues](common/istio-ambient-waypoint.md#troubleshoot-issues)
7273
- [Cleanup](common/istio-ambient-waypoint.md#cleanup)

docs/common/istio-ambient-update.md

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -493,26 +493,12 @@ After updating all ambient components, verify that your ambient workloads are fu
493493

494494
```bash
495495
$ kubectl get pods -n bookinfo
496-
NAME READY STATUS RESTARTS AGE
497-
details-v1-54ffdd5947-8gk5h 1/1 Running 0 7d
498-
productpage-v1-d49bb79b4-cb9sl 1/1 Running 0 7d
499-
ratings-v1-856f65bcff-h6kkf 1/1 Running 0 7d
500-
reviews-v1-848b8749df-wl5br 1/1 Running 0 7d
501-
reviews-v2-5fdf9886c7-8xprg 1/1 Running 0 7d
502-
reviews-v3-bb6b8ddc7-bvcm5 1/1 Running 0 7d
503496
```
504497

505498
2. Verify ZTunnel is processing traffic for your ambient workloads:
506499

507500
```bash
508501
$ istioctl ztunnel-config workloads --namespace ztunnel | grep bookinfo
509-
NAMESPACE POD NAME ADDRESS NODE WAYPOINT PROTOCOL
510-
bookinfo details-v1-54ffdd5947-8gk5h 10.131.0.69 node1.example.com None HBONE
511-
bookinfo productpage-v1-d49bb79b4-cb9sl 10.128.2.80 node2.example.com None HBONE
512-
bookinfo ratings-v1-856f65bcff-h6kkf 10.131.0.70 node1.example.com None HBONE
513-
bookinfo reviews-v1-848b8749df-wl5br 10.131.0.72 node1.example.com None HBONE
514-
bookinfo reviews-v2-5fdf9886c7-8xprg 10.128.2.78 node2.example.com None HBONE
515-
bookinfo reviews-v3-bb6b8ddc7-bvcm5 10.128.2.79 node2.example.com None HBONE
516502
```
517503

518504
3. Test connectivity within your mesh:
@@ -608,6 +594,31 @@ If you have deployed waypoint proxies for L7 features:
608594
* **Recreation:** In rare cases, you may need to recreate waypoint Gateway resources if there are breaking changes between versions.
609595
* **Verification:** Test L7 features after the upgrade to ensure waypoint proxies are functioning correctly. See [Layer 7 Features in Ambient Mode](./istio-ambient-waypoint.md#layer-7-features-in-ambient-mode) for testing examples.
610596

597+
**Update Behavior by Strategy:**
598+
599+
- **InPlace Strategy:** Waypoint proxies transition directly to the new control plane version
600+
- **RevisionBased Strategy:** Waypoint proxies function with both revisions during migration
601+
602+
**L7 Feature Verification:**
603+
604+
After upgrade, verify L7 features work correctly:
605+
606+
```bash
607+
$ kubectl get authorizationpolicies -n bookinfo
608+
$ kubectl get httproutes -n bookinfo
609+
```
610+
611+
**Cross-Namespace Waypoints:**
612+
613+
Verify labels remain in place for cross-namespace waypoint usage:
614+
615+
```bash
616+
$ kubectl get ns bookinfo --show-labels | grep waypoint
617+
bookinfo Active istio.io/use-waypoint-namespace=foo,istio.io/use-waypoint=waypoint-foo
618+
```
619+
620+
For detailed waypoint update procedures, see [Updating Waypoint Proxies](./istio-ambient-waypoint.md#updating-waypoint-proxies).
621+
611622
### Impact on Existing Ambient Workloads
612623

613624
During ambient mode upgrades:
@@ -653,8 +664,25 @@ bookinfo Active 7d
653664

654665
**Issue: Waypoint proxies not functioning**
655666
* Verify Gateway resource exists: `kubectl get gateway -n <namespace>`
667+
* Check Gateway programmed status: `kubectl get gateway -n <namespace> -o wide`
656668
* Check waypoint pod logs: `kubectl logs -n <namespace> -l gateway.networking.k8s.io/gateway-name=waypoint`
657669
* Ensure the namespace has the waypoint label: `istio.io/use-waypoint=<waypoint-name>`
670+
* For cross-namespace waypoints, verify both label pairs are present
671+
672+
**Issue: L7 policies not enforced (authorization policies)**
673+
* Verify AuthorizationPolicy resources: `kubectl get authorizationpolicies -n <namespace>`
674+
* Check policy targets: `kubectl describe authorizationpolicy <name> -n <namespace>`
675+
* Verify waypoint pods are processing the policy: `kubectl logs -n <namespace> -l gateway.networking.k8s.io/gateway-name=waypoint | grep -i "policy"`
676+
677+
**Issue: Traffic routing not working (HTTPRoute)**
678+
* Verify HTTPRoute resources: `kubectl get httproutes -n <namespace>`
679+
* Check route configuration: `kubectl describe httproute <name> -n <namespace>`
680+
* Test traffic distribution: `for i in {1..10}; do curl -s http://productpage:9080 | grep "reviews-v"; done`
681+
682+
**Issue: Waypoint gateway not programmed**
683+
* Check waypoint deployment status: `kubectl get deployment -n <namespace> -l gateway.networking.k8s.io/gateway-name=waypoint`
684+
* Verify service exists: `kubectl get svc -n <namespace> | grep waypoint`
685+
* Check for Gateway API controller issues: `kubectl describe gateway <name> -n <namespace>`
658686

659687
---
660688

docs/common/istio-ambient-waypoint.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
- [Set up Istio Ambient Mode Resources and a Sample Application](#set-up-istio-ambient-mode-resources-and-a-sample-application)
99
- [Deploy a Waypoint Proxy](#deploy-a-waypoint-proxy)
1010
- [Cross-namespace Waypoint](#cross-namespace-waypoint)
11+
- [Update](#update)
12+
- [Updating Waypoint Proxies](#updating-waypoint-proxies)
13+
- [L7 Feature Verification During Updates](#l7-feature-verification-during-updates)
14+
- [Cross-namespace Waypoint Updates](#cross-namespace-waypoint-updates)
1115
- [Layer 7 Features in Ambient Mode](#layer-7-features-in-ambient-mode)
1216
- [Traffic Routing](#traffic-routing)
1317
- [Security Authorization](#security-authorization)
@@ -113,6 +117,69 @@ kubectl label ns bookinfo istio.io/use-waypoint-namespace=foo
113117
kubectl label ns bookinfo istio.io/use-waypoint=waypoint-foo
114118
```
115119

120+
## Update
121+
122+
This section covers updating waypoint proxies when upgrading Istio in ambient mode.
123+
124+
### Updating Waypoint Proxies
125+
126+
Waypoint proxies automatically work with control plane upgrades. Verify they function correctly:
127+
128+
1. Check waypoint pod status:
129+
130+
```bash
131+
$ kubectl get pods -n bookinfo -l gateway.networking.k8s.io/gateway-name=waypoint
132+
NAME READY STATUS RESTARTS AGE
133+
waypoint-5d9c8b7f9-abc12 1/1 Running 0 5m
134+
```
135+
136+
2. Verify Gateway is programmed:
137+
138+
```bash
139+
$ kubectl get gateway -n bookinfo waypoint -o wide
140+
NAME CLASS ADDRESS PROGRAMMED AGE
141+
waypoint istio-waypoint 10.96.123.45 True 7d
142+
```
143+
144+
For detailed update procedures, see [Updating Waypoint Proxies](./istio-ambient-update.md#updating-waypoint-proxies-if-deployed).
145+
146+
### L7 Feature Verification During Updates
147+
148+
After control plane updates, verify L7 features work correctly:
149+
150+
1. Test traffic routing:
151+
152+
```bash
153+
$ kubectl exec "$(kubectl get pod -l app=reviews -n bookinfo -o jsonpath='{.items[0].metadata.name}')" -c reviews -n bookinfo -- curl -s http://productpage:9080/productpage | head -20
154+
```
155+
156+
2. Verify authorization policies:
157+
158+
```bash
159+
$ kubectl get authorizationpolicies -n bookinfo
160+
```
161+
162+
3. Check waypoint logs for policy enforcement:
163+
164+
```bash
165+
$ kubectl logs -n bookinfo -l gateway.networking.k8s.io/gateway-name=waypoint --tail=50
166+
```
167+
168+
### Cross-namespace Waypoint Updates
169+
170+
For cross-namespace waypoints, verify labels are in place after upgrades:
171+
172+
```bash
173+
$ kubectl get ns bookinfo --show-labels
174+
bookinfo Active istio.io/dataplane-mode=ambient,istio.io/use-waypoint-namespace=foo,istio.io/use-waypoint=waypoint-foo
175+
```
176+
177+
If cross-namespace waypoints stop working, re-apply the labels:
178+
179+
```bash
180+
$ kubectl label ns bookinfo istio.io/use-waypoint-namespace=foo istio.io/use-waypoint=waypoint-foo --overwrite
181+
```
182+
116183
## Layer 7 Features in Ambient Mode
117184

118185
The following section describes the stable features using Gateway API resource `HTTPRoute` and Istio resource `AuthorizationPolicy`. Other L7 features using a waypoint proxy will be discussed when they reach to Beta status.

0 commit comments

Comments
 (0)