Repository navigation
Attach cosmos-exporter only when images.cosmosExporter is set - #623
Conversation
|
I'll fix CI failures and address comments from users with write access that start with 'Devin'.
|
PR SummaryMedium Risk Overview Platform config: Tests now expect no exporter when the image is unset, and that config loads/validates without Reviewed by Cursor Bugbot for commit 2cb3627. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
This makes images.cosmosExporter optional: when it is empty, no cosmos-exporter container is attached, so pods running post-gRPC seid builds can go Ready. I'm approving because the gate is correct, seid's readiness probe uses the RPC port rather than gRPC, and podTemplateDrifted ignores the exporter, so clearing the value rolls no live pod; codex found nothing and I found nothing blocking, but the Go toolchain is missing from this sandbox, so I did not run the tests.
Non-blocking
- The switch is cell-wide, but gRPC support depends on each node's seid image. A cell running both pre- and post-gRPC builds has to choose between losing exporter metrics on every node and a never-Ready exporter on the newer ones. Removing the Validate entry also means a cell that drops the key by accident now loses staking metrics silently instead of failing at startup. A startup log line or an Event when the image is empty would keep that visible.
seidroid review · decision approve · session 9b72585ebc614ba98804aef3cca5a7ea · turn resp_claude_144210f18690152865bc1e2c468c8cc3 · item f8799288f20e58e5a10300229afaff85
Findings: 0 blocking | 1 non-blocking | 0 posted inline
sei-chain main removed seid's Cosmos gRPC server (sei-chain#4570), and the nightly images on harbor now carry that change. The controller still attaches cosmos-exporter to every pod that is neither a seed nor EVM-only, and its wait loop polls :9090 forever. The container never goes Ready, so the pod and its StatefulSet never go Ready either: TestNightlyBenchmark times out at 12000s and KubeStatefulSetReplicasMismatch pages.
images.cosmosExporter is now optional. When it is empty, the controller attaches no cosmos-exporter. A cell whose seid still serves gRPC keeps its image and its metrics unchanged, and a cell running post-gRPC builds clears the value. Cosmos-exporter is not part of pod-template drift, so clearing the value takes effect only on newly created pods and never rolls existing ones.