skupperproject / skupper-router

An application-layer router for Skupper networks
https://skupper.io
Apache License 2.0
14 stars 18 forks source link

Need a reliable way to make arbitrary changes to the router configuration #1132

Open nicolacdnll opened 1 year ago

nicolacdnll commented 1 year ago

As described also here, changes to skupper-internal config map are lost as it gets re-written.

We have seen this when adding "idleTimeoutSeconds": 64 to the edge-listener using Skupper v2.2.0. And @ted-ross was able to reproduce the issue by adding an annotated service.

As Ted was suggesting, we need a reliable way to make arbitrary changes to the router configuration.

gabordozsa commented 3 months ago

The root cause of this issue seems to be in the qdrpackage of the skupper repo. The Listenerand Connector structs are missing the connection timeout parameters so those just get ignored when the skupper-internal config map is read or written by config-sync. I'm going to open PR to fix this in the skupper repo shortly.

grs commented 3 months ago

Ideally we will not lose any arbitrary fields added to the config. I think this is best done not by explicitly defining fields in the control plane for all the fields in the router entities, but by retaining those values that are not recognised and emitting them when rewriting out the config. I have created a PR that shows one way of doing that.

The benefits of this approach are (1) it works for all unrecognised fields including those added in the future and (2) it avoids having explicit fields that are never actually used by the control plane.