ironcore-dev / ironcore-dev/metal-operator

Automated Redfish Endpoint Validator Tool

Open
#720 2 comments 1 reaction 1 assignee View on GitHub

@stefanhipfel is already working on this.

Since Mar 17, 2026.

area/metal-automation enhancement
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:

  1. Analyzing codebase to extract all Redfish endpoints currently in use
  2. Auto-generating unit tests for each endpoint
  3. Executing tests against target servers (new, different versions, OEM implementations)
  4. Verifying response format and data meaningfulness
  5. Identifying unused Redfish endpoints available but not yet integrated
  6. 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.