Closed adisuissa closed 3 weeks ago
We suggest adding a setAdsConfigSource(const envoy::config::core::v3::ApiConfigSource& config_source) method to the Envoy's instance, that allows to dynamically set the ADS configuration to be used.
Curious, what is the workflow to call this method when there is a desire to switch?
Curious, what is the workflow to call this method when there is a desire to switch?
The current design requires access to the Envoy's Server-Instance. It will be somewhat similar to the way the xDS-context can be updated. It can be invoked in cases where Envoy is used as a library in a process.
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions.
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions.
Dynamically replace the ADS (xDS) server
Description: In a given deployment there may be a need to dynamically modify and change the ADS (xDS) server that Envoy connects to. This is useful, for example, in cases where the xDS management server needs to go offline due to some maintainence. Currently, it is impossible to dynamically modify the server, as the configuration is only provided in the bootstrap config, and only read once.
We suggest adding a
setAdsConfigSource(const envoy::config::core::v3::ApiConfigSource& config_source)
method to the Envoy's instance, that allows to dynamically set the ADS configuration to be used. If the config is valid, Envoy will disconnect from the current ADS server, and create a connection as described in the given config-source. The rest of the xDS-protocol will work just as if Envoy was resuming its connection to the originally configured server after disconnecting from it.As a first step, this will only support changing to an xDS-server of the same type (i.e., keeping the mode to either SotW or Delta-xDS). In the future this can be relaxed.