fix(test): provision chains with working seid config (smoke-proven)#431
Conversation
In-cluster smoke of TestBenchmark on harbor caught two real gaps the SDK's generic provisioning left vs the old scenario templates: - Validators crashed: seid rejects the controller-default storage write mode (cosmos_only). Every scenario template set storage.state_commit/state_store.write_mode=memiavl_only; provision now applies that baseline to the network + every node. - The load followers need the EVM tuning the rpc template carried (evm.worker_pool_size/worker_queue_size/max_tx_pool_txs); TestBenchmark passes it via spec.rpcConfig, merged over the baseline. With these, TestBenchmark passes end-to-end in-cluster (provision -> 2m seiload -> all followers caught up post-load -> self-teardown, clean). Note for the run-model RBAC deliverable: the SDK provisions via server-side apply, so the harness ServiceAccount Role needs patch/update on seinetworks/seinodes, not just create. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PR SummaryLow Risk Overview The harness adds Suites that intentionally test default storage (e.g. major upgrade) can omit Reviewed by Cursor Bugbot for commit cf3554a. Bugbot is set up for automated code reviews on this repo. Configure here. |
k8s-lens xreview: baseStorageConfig was applied to every provisioned chain, but memiavl_only is NOT universal — major-upgrade's template deliberately omits write_mode (the storage/migration path is what that suite tests). Globalizing it would silently distort TestChainUpgrade once wired. Make it per-suite: spec.storageConfig (load/release set memiavlStorageConfig; upgrade leaves it nil -> controller default). provision uses s.storageConfig. Byte-identical config for TestBenchmark (still smoke-proven). Also trim the mergeConfig comment + use maps.Clone for the network copy (idiom lens). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
/xreview — 2 lenses (idiom · k8s-dissenter), RESOLVEDk8s [correctness]: k8s confirmed correct: config-key passthrough is verbatim ( idiom: reads native; applied the two style nits (trim No one-way doors. Smoke-proven end-to-end on harbor. |
Follow-up to #430 — make TestBenchmark actually bring up a chain
In-cluster smoke of TestBenchmark on harbor (run via an in-cluster pod with a harness SA) caught two real gaps the SDK's generic provisioning left vs the old scenario templates:
seidexits withinvalid state-commit.sc-write-mode "cosmos_only". Every scenario template setstorage.state_commit/state_store.write_mode=memiavl_only; the SDK'sCreateNetworkomitted it.provisionnow applies that storage baseline to the network + every node.evm.worker_pool_size/worker_queue_size/max_tx_pool_txs);TestBenchmarkpasses it viaspec.rpcConfig, merged over the baseline.Proof (live, harbor)
Resources fully reaped after (DeletionPolicy cascade + t.Cleanup).
Run-model RBAC note (for the cutover deliverable)
The SDK provisions via server-side apply, so the harness ServiceAccount Role needs
patch/updateonseinetworks/seinodes, not justcreate. Folds into the harness-Role manifest.Verification
go build ./...clean · golangci-lint 0 issues ·go test -c -tags integrationcompiles · passes in-cluster end-to-end.🤖 Generated with Claude Code