Skip to content

Commit 7772844

Browse files
committed
Responding to comments
1 parent a0577de commit 7772844

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

cilium/CFP-30235-xds-adapter.md

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
**SIG:** Agent
44

5-
**Begin Design Discussion:** 2023-01-03
5+
**Begin Design Discussion:** 2024-01-03
66

77
**Cilium Release:** 1.16
88

@@ -11,11 +11,12 @@
1111
## Summary
1212

1313
Add a new xDS adapter in Cilium that could take advantage of some of the
14-
strengths of xDS, particularly the feedback loop via LRS and the overall
15-
potential for scalability improvements when adjustments to routing
16-
configurations don't need to round trip through the Kubernetes API Server.
17-
This adapter would be an alternative source of endpoints and would not replace
18-
the existing default behavior of reading directly from Kubernetes APIs.
14+
strengths of xDS, particularly the feedback loop via [Load Reporting Service
15+
(LRS)](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_reporting_service)
16+
and the overall potential for scalability improvements when adjustments to
17+
routing configurations don't need to round trip through the Kubernetes API
18+
Server. This adapter would be an alternative source of endpoints and would not
19+
replace the existing default behavior of reading directly from Kubernetes APIs.
1920

2021
## Motivation
2122

@@ -53,15 +54,16 @@ to [cncf/xds](https://github.com/cncf/xds) repo as part of that overall vision.
5354
In parallel to these efforts by the xDS community, GKE is planning to introduce
5455
xDS as an additional data source for DPv2 configuration. This feels sufficiently
5556
generic and helpful that it could be something that could be contributed to
56-
upstream Cilium. This could be particularly useful for at least two common use
57+
upstream Cilium. This could be particularly useful for at least three common use
5758
cases:
5859

5960
1. Supporting Services and Endpoints from outside of the local cluster.
6061
1. Supporting advanced routing techniques, such as topology aware routing.
62+
1. Using load information obtained via bidirectional xDS to steer traffic.
6163

6264
Although it is out of scope for this specific CFP to provide complete solutions
6365
for either of these use cases, it will demonstrate the benefits of having an
64-
xDS adapter when developing a solution for either of these use cases.
66+
xDS adapter when developing a solution for any of these use cases.
6567

6668
### Use Cases
6769

@@ -129,9 +131,10 @@ order when more than one data source is connected. When any conflicts occur,
129131
for example if Services from different sources have the same IP, the following
130132
order will be used for precedence:
131133

132-
1. Kubernetes
133-
2. KVStore
134-
3. xDS
134+
1. Local API
135+
2. Kubernetes
136+
3. KVStore
137+
4. xDS
135138

136139
If there is interest, we may make this order configurable in a future
137140
enhancement.
@@ -191,10 +194,13 @@ Instead of building on top of existing xDS APIs, we could use a custom API on
191194
top of xDS-TP (xDS Transport Protocol). This would follow the pattern that
192195
Istio's Ztunnel project used when they developed
193196
[WDS](https://github.com/istio/ztunnel/blob/db0a74212c42c66b611a71a9613afb501074e257/proto/workload.proto).
194-
We could also just choose to send Cilium-specific protos over the wire.
197+
We could also just choose to send Cilium-specific protos over the wire. For
198+
example, we could use Cilium agent API JSON types encoded using the proto Struct
199+
type, such that the adapter would be responsible for unmarshalling it to the
200+
Cilium API Go types (via JSON).
195201

196202
#### Pros
197-
* Very flexible, can specify ~anything
203+
* Very flexible and extensible, can specify or add ~anything
198204
* Resulting API would likely be very focused on Cilium
199205

200206
#### Cons

0 commit comments

Comments
 (0)