Commit ea5f322
committed
feat(telco-kpis): Add comprehensive test report generation
Implement aggregated test report generation system that combines all Telco-KPIs
test results into comprehensive Markdown reports with Gitea publishing.
## Playbook
**playbooks/telco-kpis/generate-report.yml:**
- Aggregates artifacts from shared location: `/home/telcov10n/telco-kpis-artifacts/{spoke}/`
- Runs analyze-podman-test-results.py in telco-kpis-test-runner container
- Filters tests based on node-info timestamp (freshness check)
- Integrates ZTP deployment timeline into report
- Publishes Markdown report + compressed tarball to Gitea repository
## Features
**Test Freshness Check:**
- Compares test timestamps against node-info baseline
- Skips report generation if no new tests since last report
- Ensures reports only include tests from current environment configuration
**Timestamp-Based Filtering:**
- All tests use UTC timestamps: `{test-name}-{spoke}-{YYYYMMDD-HHMMSS}`
- Report generation filters out stale tests from previous deployments
- Prevents mixing results from different cluster configurations
**Report Components:**
- Hardware metadata (from collect-node-info)
- Performance test results (oslat, cyclictest, ptp, cpu_util, reboot)
- BIOS validation results
- RDS comparison
- ZTP deployment timeline (inserted before "Report Metadata" section)
- RFC2544 network performance
**Gitea Integration:**
- Publishes to Gitea repository via gitea role
- Creates timestamped release with artifacts tarball
- Updates repository README with latest report links
- Implements retention policy (keeps last 15 reports)
## Implementation Details
**Task:** `tasks/generate-report.yml`
**Artifact Directory Pattern:**
```
/home/telcov10n/telco-kpis-artifacts/{spoke}/
├── node-info-{spoke}.json # Baseline
├── {test-name}-{spoke}-{YYYYMMDD-HHMMSS}/ # Tests
│ ├── junit_{test-name}.xml
│ └── {test-specific-artifacts}
```
**Report Action Logic:**
- `create`: Generate new report (node-info exists, tests newer than last report)
- `update`: Regenerate with fresh tests
- `skip`: No new tests since last report
**Container Execution:**
- Uses telco-kpis-test-runner:latest
- Mounts shared artifact base to /reports/podman-runs
- Runs analyze-podman-test-results.py with spoke filter
- Outputs to temporary directory for Gitea publishing
## UTC Timestamp Consistency
All telco-kpis tests use UTC timestamps to ensure correct chronological ordering
and freshness comparison across different bastion timezones.
## Benefits
- Single comprehensive report per spoke cluster
- Automatic staleness detection prevents mixing results
- Gitea hosting provides accessible web UI for stakeholders
- Retention policy prevents unbounded storage growth
- Git-based versioning of historical reports
Related: Telco-KPIs test infrastructure, Gitea deployment
Signed-off-by: Carlos Cardenosa <ccardeno@redhat.com>1 parent da06b24 commit ea5f322
2 files changed
Lines changed: 932 additions & 0 deletions
0 commit comments