ironcore-dev / ironcore-dev/metal-operator
Automated Redfish Endpoint Validator Tool
@stefanhipfel is already working on this.
Since Mar 17, 2026.
- Dominant language
- Go
- Stars
- 33
- Forks
- 30
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 28
Description
Feature Request: Automated Redfish Endpoint Validator Tool
Summary
Create an automated binary tool that validates Redfish endpoint compatibility by:
- Analyzing codebase to extract all Redfish endpoints currently in use
- Auto-generating unit tests for each endpoint
- Executing tests against target servers (new, different versions, OEM implementations)
- Verifying response format and data meaningfulness
- Identifying unused Redfish endpoints available but not yet integrated
- Generating detailed compatibility reports
Problem Statement
- Manual testing: Currently validating Redfish compatibility is manual and error-prone
- Version compatibility: Different server models (Dell, HPE, Lenovo) have varying Redfish implementations
- Coverage gaps: Unknown which available Redfish endpoints we're not utilizing yet
- Regression risk: Server firmware updates may break endpoint contracts with no early warning
- Onboarding friction: Validating new server types or OEM implementations is time-consuming
Solution Design
Phase 1: Endpoint Extraction & Binary Generation
redfish-validator generate --source-dir ./internal --output ./validator-binary
- Parse Go codebase to find all Redfish API calls
- Extract HTTP methods, paths, response types
- Generate standalone binary with embedded test cases
Phase 2: Validation Execution
redfish-validator test \
--target https://bmc-10.245.0.10:443 \
--credentials admin:password \
--output ./report.json
- Execute each endpoint against target server
- Validate HTTP status codes
- Verify response JSON schema
- Check data meaningfulness (non-null/empty critical fields)
- Timeout handling for slow endpoints
Phase 3: Coverage Analysis & Reporting
redfish-validator report --binary ./validator-binary --target https://bmc-10.245.0.10:443
- List all Redfish endpoints discovered on target server
- Identify endpoints NOT being used by metal-operator
- Mark endpoints as:
- ✅ Tested - Currently validated
- ⚠️ Available - Not yet integrated, could be useful
- ❌ Unsupported - Target doesn't support this endpoint
- Generate JSON report with:
- Compatibility matrix (endpoint vs. server model)
- Response time analysis
- Data quality metrics
- Recommendations for missing integrations
Expected Outputs
1. Validator Binary
Standalone executable with embedded tests, no external dependencies on source code
2. JSON Report
{
"server": "PowerEdge R640 (Firmware 2.22.2)",
"timestamp": "2026-03-03T10:30:00Z",
"tested_endpoints": {
"total": 24,
"passed": 24,
"failed": 0,
"response_times_ms": [45, 123, 89, ...]
},
"available_endpoints": [
{
"path": "/redfish/v1/Systems/{id}/Bios",
"method": "PATCH",
"used_by_operator": false,
"response_schema": "valid"
}
],
"recommendations": [
"Consider integrating Boot Source Override for faster server recovery"
]
}
Benefits
✅ Proactive validation - Catch compatibility issues before production
✅ OEM support - Easily validate new server models
✅ Firmware testing - Verify server updates don't break endpoints
✅ Integration roadmap - Clear visibility into available-but-unused functionality
✅ Quality gates - CI/CD integration to validate against reference servers
✅ Documentation - Auto-generated endpoint inventory with test coverage
Technical Considerations
- Language: Go (consistent with metal-operator)
- Distribution: Single binary, no external dependencies
- TLS: Support self-signed certs (BMC environments)
- Timeouts: Configurable per-endpoint (some BMCs are slow)
- Filtering: Include/exclude endpoint patterns
- Baseline comparison: Support comparing against previous test runs
Acceptance Criteria
- Tool successfully extracts all metal-operator Redfish endpoint usage
- Generates valid unit-test-like binary
- Executes tests against reference server (Dell/HPE/Lenovo PowerEdge/ProLiant)
- Generates JSON report with all fields documented above
- Identifies at least 5 available-but-unused endpoints
- Handles network timeouts gracefully
- Tool is self-documenting (
--help, examples)
Related Issues
- Helps validate Issue: ISSUE_REDFISH_INTEGRATION_TEST.md
- Supports multi-version compatibility validation
- Enables OEM-specific customization discovery
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.