Complete acceptance criteria: - Each §14.8 key present in crates/miroir-core/src/config/ with documented default - charts/miroir/values.yaml exposes the same keys with identical defaults - values.schema.json accepts documented ranges; cross-field validation in _helpers.tpl - K8s resources block matches §14.8 (500m/2000m CPU, 1Gi/3584Mi mem) - Unit test: section_14_8_defaults_match compares Config::default() to §14.8 reference - Drift guard: doc-test at top of MiroirConfig struct validates defaults All defaults sized for 2 vCPU / 3.75 GB envelope per plan §14.8. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3 KiB
3 KiB
P6.10 Wire §14.8 resource-aware config defaults - Verification Summary
Task: bf-4w08
Verified that all §14.8 resource-aware configuration defaults are properly wired into Rust code and Helm chart.
Acceptance Criteria Status
1. Each §14.8 key present in crates/miroir-core/src/config/ with documented default
- ✅
server: max_body_bytes: 104857600, max_concurrent_requests: 500, request_timeout_ms: 30000 - ✅
connection_pool_per_node: max_idle: 32, max_total: 128, idle_timeout_s: 60 - ✅
task_registry: cache_size: 10000, redis_pool_max: 50 - ✅
idempotency: max_cached_keys: 1000000, ttl_seconds: 86400 - ✅
session_pinning: max_sessions: 100000 - ✅
query_coalescing: max_subscribers: 1000, max_pending_queries: 10000 - ✅
anti_entropy: max_read_concurrency: 2, fingerprint_batch_size: 1000 - ✅
resharding: backfill_concurrency: 4, backfill_batch_size: 1000 - ✅
peer_discovery: service_name: "miroir-headless", refresh_interval_s: 15 - ✅
leader_election: enabled: true, lease_ttl_s: 10, renew_interval_s: 3
2. charts/miroir/values.yaml exposes same keys with identical defaults
- ✅ All §14.8 defaults present in values.yaml (lines 69-120)
- ✅ Values match plan §14.8 exactly
3. values.schema.json accepts documented ranges; rejects nonsense
- ✅ Schema defines all §14.8 properties with appropriate types
- ✅ Cross-field validation for
lease_ttl_s > renew_interval_sin_helpers.tpl - ✅ JSON Schema rules 0-6 enforce HA requirements (replicas > 1 requires redis, etc.)
4. K8s resources block matches §14.8 (500m/2000m CPU, 1Gi/3584Mi mem)
- ✅
values.yamlresources block (lines 47-53):- requests: cpu: 500m, memory: 1Gi
- limits: cpu: 2000m, memory: 3584Mi
- ✅ Deployment template uses these via
{{ .Values.miroir.resources }}
5. Unit test: drift guard comparing Config::default() to §14.8 reference
- ✅ Test
section_14_8_defaults_matchincrates/miroir-core/src/config.rs(lines 685-728) - ✅ Test passes: all defaults verified against §14.8 values
6. Drift guard: doc-test comparing Config::default() to §14.8 reference
- ✅ Doc-test at top of
MiroirConfigstruct (lines 21-45 in config.rs) - ✅ Doc-test passes with
cargo test --doc
Test Results
$ cargo test section_14_8_defaults_match --lib
test config::tests::section_14_8_defaults_match ... ok
test result: ok. 1 passed; 0 failed
Files Verified
crates/miroir-core/src/config.rs- Core config struct with defaultscrates/miroir-core/src/config/advanced.rs- Advanced feature configscharts/miroir/values.yaml- Helm chart values with §14.8 defaultscharts/miroir/values.schema.json- JSON Schema validationcharts/miroir/templates/_helpers.tpl- Cross-field validationcharts/miroir/templates/miroir-deployment.yaml- Resources block
Conclusion
All §14.8 resource-aware configuration defaults are properly wired and validated. The drift guard test and doc-test ensure defaults cannot drift from the plan without failing CI.