chore: cut seictl v0.0.70 (seed per-source-IP connection cap) - #242
Conversation
Bumps sei-config to v0.0.25, which sets the seed profile's max_incoming_connection_attempts to 32 — a concurrent-connections-per-source-IP cap that had been carrying the inherited 100 while the seed's max_connections is 1000. Verified end to end: sidecar/tasks/config_apply.go is the sole renderer of node config, and DefaultForMode(ModeSeed) under v0.0.25 emits max-incoming-connection-attempts = 32. v0.0.25 also carries the giga_executor baseDefaults change (sei-config#42). Delivery note: TaskConfigApply runs on the init path only — an update plan carries only p2pConfigPatch — so this sidecar reaching a cell does NOT re-render config on already-running nodes. The seeds take the new default by being deleted and recreated, which forces the init path; their p2p Services carry no ownerReferences, so the NLB hostname survives, and node_key.json is a read-only Secret mount, so the NodeID survives. Ledger: bdchatham-designs designs/seed-node-mode/xreview/sei-config-v0.0.25-rollout.md Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PR SummaryMedium Risk Overview The new dependency carries seed-mode defaults where Rollout is operational, not automatic on sidecar restart: config apply runs on the init path, so existing pods keep on-disk config until seeds (or other nodes) are recreated with the cell already pointing Reviewed by Cursor Bugbot for commit 6953d44. Bugbot is set up for automated code reviews on this repo. Configure here. |
Bumps
sei-configto v0.0.25 and cuts seictl v0.0.70.What this delivers
v0.0.25 sets the seed profile's
max_incoming_connection_attemptsto 32 — a cap on concurrent connections per source IP (conn_tracker.go:33-38), not attempt rate. It had been carrying the inherited 100 while the seed'smax_connectionsis 1000, so one source could hold ~10% of a seed's inbound slots and ~10 addresses could fill it.sidecar/tasks/config_apply.gois the sole renderer of node config, which makes this image the delivery vehicle. Verified end to end —DefaultForMode(ModeSeed)under v0.0.25 renders:v0.0.25 also carries sei-config#42 (
GigaExecutorinbaseDefaults).Delivery mechanics — read before rolling this out
TaskConfigApplyruns on the init path only. An update plan carries onlyp2pConfigPatch(planner.go:787-796, and the convention is stated atplanner.go:68-69and:821). So putting this sidecar into a cell does not re-render config on already-running nodes — a sidecar bump restarts pods against unchanged on-disk config.The seeds take the new default by being deleted and recreated, which forces the init path. Verified safe for a seed:
ownerReferences, so deleting the SeiNode does not cascade to the NLB — hostname and therefore theNodeID@hostaddress survive;node_key.jsonis a read-only Secret mount (arctic-1-seed-N-node-key, mode 0400) overlaying whateverseid initwrites, so the NodeID survives the PVC being recreated;Ordering matters: the cell's
images.sidecarmust already point at this image before a seed is recreated, or the new pod renders from the old sidecar and keeps 100.Review
Full T3
shared-stackxreview:designs/seed-node-mode/xreview/sei-config-v0.0.25-rollout.mdinbdchatham-designs(#130). It returnedOPEN-BLOCKEDagainst the original rollout plan; this PR is step 2 of the revised plan, which addresses both blockers.🤖 Generated with Claude Code