Skip to content

Add provider implementation matrix#261

Open
nikatza wants to merge 1 commit intomainfrom
compatibility-matrix
Open

Add provider implementation matrix#261
nikatza wants to merge 1 commit intomainfrom
compatibility-matrix

Conversation

@nikatza
Copy link
Copy Markdown
Contributor

@nikatza nikatza commented Mar 26, 2026

  • Add Go script to generate compatibility matrix
  • Add make target 'provider-matrix'
  • Update README with provider implementation table
  • Update go-makefile-maker and regenerate configs

Generated with Claude Code assistance

@nikatza nikatza force-pushed the compatibility-matrix branch 5 times, most recently from 729ef5a to 66addaa Compare March 26, 2026 16:11
@hardikdr hardikdr added the area/switch-automation Automation processes for network switch management and operations. label Mar 27, 2026
@hardikdr hardikdr added this to Roadmap Mar 27, 2026
@nikatza nikatza force-pushed the compatibility-matrix branch 12 times, most recently from 94693fc to 49722b9 Compare March 27, 2026 15:31
@nikatza nikatza marked this pull request as ready for review March 27, 2026 15:32
@nikatza nikatza requested a review from a team as a code owner March 27, 2026 15:32
@nikatza nikatza force-pushed the compatibility-matrix branch from 49722b9 to 8bbf68c Compare March 27, 2026 16:06
Add a Go tool (hack/generate-provider-matrix.go) that produces a
Markdown compatibility matrix showing which core API types each
provider implements.

How it works:
- Uses reflect.Type.Implements() to test each provider against the
  provider.*Provider interfaces defined in internal/provider/
- Self-validates by parsing Go AST of the provider package to ensure
  the hardcoded interfaceMap stays in sync with source interfaces
- Discovers provider-specific types (config extensions and standalone
  CRDs) by scanning provider API directories for Register*Dependency
  calls and SchemeBuilder.Register calls
- Resolves interface names to Kubernetes Kind names by correlating
  core _types.go filenames with Register*Dependency function names,
  then validating against the runtime scheme
- Writes docs/provider-compatibility.md (full matrix) and updates
  a summary table in README.md between sentinel markers

The new `make provider-matrix` target is also wired as a dependency
of `make docs`, so the matrix is always regenerated with the API
reference docs.
@nikatza nikatza force-pushed the compatibility-matrix branch from 8bbf68c to b93e76e Compare March 27, 2026 16:07
@github-actions
Copy link
Copy Markdown

Merging this branch will not change overall coverage

Impacted Packages Coverage Δ 🤖
github.com/ironcore-dev/network-operator/hack 0.00% (ø)

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/ironcore-dev/network-operator/hack/generate-provider-matrix.go 0.00% (ø) 0 0 0

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/switch-automation Automation processes for network switch management and operations.

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants