Comments (6)
CC: @adisuissa @htuch
from envoy.
Not sure I fully understand your problem, so I'll try to answer your question, and feel free to provide more details.
From Documentation of DeltaDiscoveryResponse - It says "Removed resources for missing resources can be ignored" What does it mean exactly?
Envoy uses the xDS-protocol to subscribe to resources. There are essentially 2 types of subscriptions: collections/wildcards (CDS, LDS in Envoy work like that) and singletons (non-collections, such as EDS, SDS, RDS). Specifically in Envoy, the collections' resources can exist without having anything
In the context of a secret provided by SDS, it needs some other resource that "points to it", for example, a cluster. If that cluster is removed (say by a CDS update), and no other resource needs that secret, the cluster and the secret are removed.
Envoy will send an unsubscribe from the secret request, but the response is moot, as the server cannot override the request to unsubscribe.
from envoy.
Might be worth mentioning 2 recently related PRs: #32961 and #33362.
from envoy.
@adisuissa If I understood you then In context of SDS - If I just remove a secret but that secret is being pointed by other resource like LDS/CDS then in this case secret data will not be removed from envoy configurations. Is it correct ?
To give more details of the issue that I am facing -
I am trying to use gateway
project and this installation guide - https://gateway.envoyproxy.io/latest/tasks/quickstart/
It just create resources like HTTPRoute , gateway and gatewayclass. These things gets converted to envoy proxy configurations.
To apply these resources to k8s cluster - kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default
Now, to remove all these configurations from k8s cluster and thus from envoy proxy, I am doing -
kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default
But to my surprise, envoy config does not get updated instead and it keeps showing the older config. I was debugging the go-control-plane server.go. and it seems it is correctly detecting which resources are to be deleted but envoy side there is effect.
few logs from go-control-plane, these are my logs -
send getResources []
send getRemovedResources [httproute/default/backend/rule/0]
from envoy.
@adisuissa If I understood you then In context of SDS - If I just remove a secret but that secret is being pointed by other resource like LDS/CDS then in this case secret data will not be removed from envoy configurations. Is it correct ?
The other way around, say cluster_0 was removed and that cluster had a secret, secret_0. When cluster_0 is removed, Envoy should automatically remove secret_0. Envoy will also send a discovery request to the xDS server stating that it wants to unsubscribe from the resource. The xDS server will probably send a response that removes secret_0, but it is essentially moot, as the resource was already removed.
from envoy.
@adisuissa Thanks for the response on secret/SDS update. It is indeed helpful.
Could you please also clarify a bit on the below behavior, this does not involve any secrets. and Since I am removing everything from cluster, which includes CDS, LDS, should this not remove all related configs like RDS ?
I am trying to use
gateway
project and this installation guide - https://gateway.envoyproxy.io/latest/tasks/quickstart/It just create resources like HTTPRoute , gateway and gatewayclass. These things gets converted to envoy proxy configurations. To apply these resources to k8s cluster -
kubectl apply -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default
Now, to remove all these configurations from k8s cluster and thus from envoy proxy, I am doing -kubectl delete -f https://github.com/envoyproxy/gateway/releases/download/latest/quickstart.yaml -n default
But to my surprise, envoy config does not get updated instead and it keeps showing the older config. I was debugging the go-control-plane server.go. and it seems it is correctly detecting which resources are to be deleted but envoy side there is effect.
few logs from go-control-plane, these are my logs -
send getResources [] send getRemovedResources [httproute/default/backend/rule/0]
from envoy.
Related Issues (20)
- Mobile/Android tests is extremely flakey HOT 4
- ConsistentHashing: provide use_hostname_for_hashing for eds based discovery. HOT 5
- Envoy admin's config_dump regression HOT 12
- Poor Performance of Envoy-contrib VS Envoy HOT 6
- Better handling hot restart failure HOT 2
- @envoy//test/integration:extension_discovery_integration_test is flaky under TSAN HOT 2
- //test/integration:quic_http_integration_test is Flaky under TSAN HOT 2
- Newer release available `com_github_google_perfetto`: v44.0 (current: v43.1)
- Newer release available `rules_rust`: 0.42.0 (current: 0.35.0) HOT 1
- Anti-Virus scanning of payload HOT 1
- udp: enabling GRO cause performance regression HOT 2
- mobile: swift-tests are very slow HOT 1
- Allow using downstream negotiated application protocol with upstream with TcpProxy + Tls HOT 5
- working example for zone aware routing? HOT 3
- Getting 503 intermittently on ingress gateway HOT 1
- Envoy 1.23.12 restarts due to OOM when clusters exceed 6K HOT 3
- ext_authz integration tests are flaky HOT 2
- Improve client side TLS session reuse HOT 6
- `route_configuration` defined in SRDS is not being picked up HOT 1
- Support annotating stats/metrics with downstream TLS context HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from envoy.