Skip to content

Attach cosmos-exporter only when images.cosmosExporter is set - #623

Merged
masih merged 1 commit into
mainfrom
masih/1793011588-cosmos-exporter-optional
Oct 26, 2026
Merged

masih merged 1 commit into
mainfrom
masih/1793011588-cosmos-exporter-optional

Conversation

@masih

@masih masih commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

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.

@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access that start with 'Devin'.

  • Disable automatic comment, CI, and merge conflict monitoring

@masih
masih marked this pull request as ready for review October 26, 2026 10:48
@cursor

cursor Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

PR Summary

Medium Risk
Changes pod template composition and startup validation for all clusters; misconfiguration could drop staking metrics on gRPC cells, but behavior for cells that still set the image is unchanged.

Overview
Makes cosmos-exporter optional so pods can become Ready when seid no longer serves gRPC (e.g. post–sei-chain gRPC removal). The sidecar is added only when the node still serves seid RPC/gRPC and images.cosmosExporter is set; an empty image omits the container instead of failing StatefulSet generation or leaving it stuck polling :9090.

Platform config: images.cosmosExporter is removed from startup Validate() required fields; app-config may omit it for cells without gRPC. buildCosmosExporterContainer no longer errors on a missing image—the pod-spec gate checks the image before calling it.

Tests now expect no exporter when the image is unset, and that config loads/validates without cosmosExporter.

Reviewed by Cursor Bugbot for commit 2cb3627. Bugbot is set up for automated code reviews on this repo. Configure here.

@seidroid seidroid Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@masih
masih merged commit 839a095 into main Oct 26, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant