send resource statuses using watchable#395
Conversation
85d7759 to
6b14cad
Compare
6b14cad to
19ed841
Compare
danehans
left a comment
There was a problem hiding this comment.
@arkodg in my testing, I am seeing a lot of:
2022-09-20T20:32:53.057Z ERROR status/status.go:81 unable to update status {"runner": "provider", "name": "eg", "namespace": "default", "error": "Operation cannot be fulfilled on gateways.gateway.networking.k8s.io \"eg\": the object has been modified; please apply your changes to the latest version and try again"}
Are you creating a copy of the Gateway before calling client.Update()?
I'm also seeing a continued reconciliation loop between the GatewayStatus provider and subscriber due to status updates:
2022-09-20T20:36:06.097Z INFO kubernetes/httproute.go:256 received a status notification {"runner": "provider"}
2022-09-20T20:36:06.097Z INFO kubernetes/gateway.go:335 received a status notification {"runner": "provider"}
2022-09-20T20:36:06.197Z INFO kubernetes/gateway.go:144 reconciling gateway {"runner": "provider", "namespace": "default", "name": "eg"}
2022-09-20T20:36:06.197Z INFO default.eg kubernetes/gateway.go:225 reconciled gateway {"runner": "provider"}
2022-09-20T20:36:06.197Z INFO kubernetes/gateway.go:335 received a status notification {"runner": "provider"}
2022-09-20T20:36:06.197Z INFO runner/runner.go:69 received a notification {"runner": "gateway-api"}
Ah not passing a |
* Allow multiple runners (such as gatewayapi) to update the status of resources such as gateway and httproute by publishing the updated status of the resource on a watchable map. * The provider runner subscribes to these status updates and updates the resource status in the API Server Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
* Use reflect.DeepEqual to compare parentRef values * Fix the Listener ready condition logic which was causing the entire translator to panic * Use snapshot.Updates instead of snaphsot.State * fix build in kube test Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
Signed-off-by: Arko Dasgupta <arko@tetrate.io>
393607e to
db5a378
Compare
Codecov Report
@@ Coverage Diff @@
## main #395 +/- ##
==========================================
- Coverage 61.20% 60.96% -0.24%
==========================================
Files 36 35 -1
Lines 3714 3786 +72
==========================================
+ Hits 2273 2308 +35
- Misses 1317 1351 +34
- Partials 124 127 +3
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
|
@danehans I think there is an infinite loop being created
is there a way to skip reconciles when the object status changes ? |
* reset attached routes before translation to eliminate double count * dont update the status condition if the condition params havent changed Signed-off-by: Arko Dasgupta <arko@tetrate.io>
|
@danehans ptal, fixed the infinite loop reconciliation issue in the latest commit |
not seeing this when Ive tested it. Here are the logs |
Signed-off-by: Arko Dasgupta arko@tetrate.io