Summary
Build repeatable fault-remediation microbenchmarks covering reconcile throughput, maintenance-CR creation, equivalence-group behavior, cancellation, cold start, concurrency, and Kubernetes API pressure.
Motivation
Fault-remediation cost and correctness depend on:
- Remediation-ready event rate
- Reconcile concurrency
- Kubernetes API latency/QPS
- Equivalence and superseding groups
- Existing maintenance CR state
- Node annotation size
- Cancellation/recovery events
- Cold-start database queries
We need current-release baselines and safe concurrency guidance.
Scenarios
1. Reconcile throughput
Generate remediation-ready events at:
- Nominal rate
- Expected peak
- Burst
- Find-the-knee
Measure event-to-CR-create latency, reconciles/s, queue depth, CPU, and memory.
2. Concurrent node remediation
Trigger remediation for:
- 10 nodes
- 100 nodes
- 500 nodes
Measure completion time, API request rate, annotation updates, and errors.
3. Concurrency sweep
Test:
- 1 reconcile (default)
- 2
- 4
- 8
- Find-the-knee
Measure throughput, duplicate CR attempts, annotation conflicts, API throttling, and ordering failures.
4. Equivalence groups
Test:
- Duplicate events in one group
- Multiple matching groups
- Superseding groups
- Newest-session selection
- Existing in-progress/succeeded/failed CRs
Verify exactly one appropriate remediation action is created.
5. Remediation actions
Benchmark:
- RebootNode
- TerminateNode
- GPUReset
- Partial GPU reset
- Unsupported action
Measure template/render cost, CR-create latency, and action-selection correctness.
6. Cancellation/recovery
During remediation:
UnQuarantined
Cancelled
- Healthy partial recovery
- Node deletion
- Manual operator changes
Verify annotation cleanup and correct faultRemediated=true/false outcomes.
7. Cold start/restart
Restart fault-remediation with:
- In-progress work
- Missing/stale resume token
- Existing maintenance CR
- Completed CR without completion marker
- Cancellation while offline
Verify no duplicate CR and correct recovery.
8. Kubernetes/API failures
Inject:
- AlreadyExists
- Conflict
- 429
- Webhook rejection
- Timeout
- Janitor unavailable
Measure retries, queue growth, terminal failures, and recovery.
9. Annotation/state scale
Increase:
- Active equivalence groups/node
- Historical fault events/node
- Annotation payload size
Measure evaluation latency, update conflicts, CPU, and memory.
Required measurements
- Event-to-CR-create P50/P90/P99
- Reconciles/s
- Queue depth/retry count
- API requests/conflicts/429s
- CR create/skip/failure counts
- CPU and memory
- Annotation size/update latency
- Cold-start duration
- Duplicate/missing CRs
- Missing/duplicate event IDs
Validity requirements
- Stable event and CR IDs
- At least three repetitions
- Documented warmup
- Guaranteed QoS and pinned FR
- Real Kubernetes API/CRDs
- Controlled Janitor/webhook behavior
- Hard scenario timeout
Pass criteria
At expected peak:
- No crash/OOM
- No duplicate remediation CRs
- Correct equivalence-group selection
- Correct cancellation outcomes
- Bounded queue growth
- Automatic restart recovery
At saturation:
- Limiting resource is identified
- Degradation is observable
- Backlog drains after load/API recovery
Deliverables
Existing assets
fault-remediation/
tests/fault_remediation_test.go
tests/cold_start_test.go
tests/fault_management_test.go
janitor/
- Existing FR E2E fixtures and metrics
Non-goals
- Janitor hardware-action duration
- Node-drainer eviction throughput
- Fault-quarantine rule evaluation
- Full-system 50k-node validation
Summary
Build repeatable fault-remediation microbenchmarks covering reconcile throughput, maintenance-CR creation, equivalence-group behavior, cancellation, cold start, concurrency, and Kubernetes API pressure.
Motivation
Fault-remediation cost and correctness depend on:
We need current-release baselines and safe concurrency guidance.
Scenarios
1. Reconcile throughput
Generate remediation-ready events at:
Measure event-to-CR-create latency, reconciles/s, queue depth, CPU, and memory.
2. Concurrent node remediation
Trigger remediation for:
Measure completion time, API request rate, annotation updates, and errors.
3. Concurrency sweep
Test:
Measure throughput, duplicate CR attempts, annotation conflicts, API throttling, and ordering failures.
4. Equivalence groups
Test:
Verify exactly one appropriate remediation action is created.
5. Remediation actions
Benchmark:
Measure template/render cost, CR-create latency, and action-selection correctness.
6. Cancellation/recovery
During remediation:
UnQuarantinedCancelledVerify annotation cleanup and correct
faultRemediated=true/falseoutcomes.7. Cold start/restart
Restart fault-remediation with:
Verify no duplicate CR and correct recovery.
8. Kubernetes/API failures
Inject:
Measure retries, queue growth, terminal failures, and recovery.
9. Annotation/state scale
Increase:
Measure evaluation latency, update conflicts, CPU, and memory.
Required measurements
Validity requirements
Pass criteria
At expected peak:
At saturation:
Deliverables
Existing assets
fault-remediation/tests/fault_remediation_test.gotests/cold_start_test.gotests/fault_management_test.gojanitor/Non-goals