You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add conformance evidence renderer and fix check false-positives
Add CNCF AI Conformance evidence rendering to `aicr validate`:
- New `--evidence-dir` flag generates per-check markdown evidence files
when used with `--phase conformance`
- New `--result` flag renders evidence from a saved validation result
- New `pkg/evidence` package with templates, types, and renderer
- Each conformance check now declares evidence metadata (EvidenceFile,
SubmissionRequirement, TestName) in the check registry
- Checks in --no-cluster mode report "skipped" instead of "pass"
Fix false-positive paths in 5 conformance checks:
- cluster-autoscaling: capture baseline Karpenter node count before
creating test resources; only count Running/Succeeded pods as
scheduled (not Failed/Unknown)
- gang-scheduling: verify PodScheduled timestamps are within a
co-scheduling window (30s) to prove gang semantics
- pod-autoscaling: add scale-down verification after scale-up by
patching HPA target to unreachable value and confirming replica
reduction (with 0s stabilization window for fast feedback)
- robust-controller: replace brittle string matching with k8serrors
type predicates (IsForbidden/IsInvalid) for webhook rejection
detection, with explicit RBAC exclusion
Update H100 GPU CI workflows to upload conformance evidence artifacts
alongside validation results.
# Use a saved result file for evidence instead of the live run
46
+
aicr validate -r recipe.yaml -s snapshot.yaml \
47
+
--phase conformance --evidence-dir ./evidence \
48
+
--result validation-result.yaml
49
49
```
50
50
51
+
The chainsaw assertion evidence (`go run ./tests/chainsaw/ai-conformance/`) checks
52
+
resource existence (CRDs, deployments, etc.) and is complementary to the behavioral
53
+
validation evidence generated by `aicr validate --evidence-dir`.
54
+
55
+
> **Note:**`collect-evidence.sh` is deprecated. Use `aicr validate --evidence-dir`
56
+
> instead.
57
+
51
58
## Evidence
52
59
53
60
See [evidence/index.md](evidence/index.md) for a summary of all collected evidence and results.
@@ -63,7 +70,5 @@ See [evidence/index.md](evidence/index.md) for a summary of all collected eviden
63
70
| 5 | Inference API Gateway |`ai_inference`|[evidence/inference-gateway.md](evidence/inference-gateway.md)|
64
71
| 6 | Robust AI Operator |`robust_controller`|[evidence/robust-operator.md](evidence/robust-operator.md)|
65
72
66
-
## TODO
67
-
68
-
-[ ]**Cluster Autoscaling** (`cluster_autoscaling`, MUST) — Demonstrate Karpenter or cluster autoscaler scaling GPU node groups based on pending pod requests
69
-
-[ ]**Pod Autoscaling** (`pod_autoscaling`, MUST) — Demonstrate HPA scaling pods based on custom GPU metrics (e.g., `gpu_utilization` from prometheus-adapter)
Usage: "Request nvidia.com/gpu resource for the agent pod. Required in CDI environments where GPU devices are only injected when explicitly requested.",
334
361
},
362
+
&cli.StringFlag{
363
+
Name: "evidence-dir",
364
+
Usage: "Write CNCF conformance evidence markdown to this directory. Requires --phase conformance.",
365
+
},
366
+
&cli.StringFlag{
367
+
Name: "result",
368
+
Usage: "Use a saved validation result file for evidence rendering instead of the live run. Requires --phase conformance and --evidence-dir.",
369
+
},
335
370
outputFlag,
336
371
formatFlag,
337
372
kubeconfigFlag,
@@ -385,15 +420,48 @@ Run validation without failing on constraint errors (informational mode):
385
420
386
421
Resume a previous validation run from where it left off:
0 commit comments