Skip to content

Controller matching wizard#4584

Open
bexxmodd wants to merge 36 commits intokubernetes-sigs:mainfrom
bexxmodd:site/wizard
Open

Controller matching wizard#4584
bexxmodd wants to merge 36 commits intokubernetes-sigs:mainfrom
bexxmodd:site/wizard

Conversation

@bexxmodd
Copy link
Contributor

@bexxmodd bexxmodd commented Feb 23, 2026

What type of PR is this?
/kind documentation

What this PR does / why we need it:
It's a controller matching wizard for the providers that submitted conformance reports. This should simplify operator/controller selection compared to peeking at the table's features.

You can run this by and test it locally at (http://localhost:8080/index.html):

make serve

Probably many things will require adjustment before this can be hosted, but it's good enough to try it locally for the initial feedback.

Which issue(s) this PR fixes:
Fixes #

Does this PR introduce a user-facing change?:

The new wizard should be available at https://gateway-api.sigs.k8s.io/wizard

@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/documentation Categorizes issue or PR as related to documentation. labels Feb 23, 2026
@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Feb 23, 2026
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: bexxmodd
Once this PR has been reviewed and has the lgtm label, please assign robscott for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Feb 23, 2026
@xtineskim
Copy link
Contributor

xtineskim commented Feb 25, 2026

🔥 🌟
this is great! I'm glad that the data from the table is being put to good use :)
I think the wording of Good to Have and Want to have could be a bit confusing, maybe something firmer, like Must have and Preferred?

nits/nice to have (non blocker)

  • a way to select the version
  • gateway api logo on the page somewhere? (lol) or a way to show the main menu? I know this may be tricky the way that this page is spun up/use of wasm 🤔

# Feature definitions for the wizard: id and label match v1.4 conformance table columns
# https://gateway-api.sigs.k8s.io/implementations/v1.4/
FEATURE_DEFINITIONS = {
"httpGateway": [
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

more of a todo: will be worth getting the ids and labels generated rather than hard coded

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idk exactly how to do it. Feature names are not as descriptive in reports, so hard coded for later parsing.

Feel free to propose something

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be able to just get the label from the id, adding a space between the words. But this is not a blocker, so can be done in a later pr 👍

for the Controller Recommendation Wizard. Supports --all (one object keyed by version) or
--version vX.Y.Z (single array for that version). Output path defaults to
site-src/wizard/data/controller-wizard-data.json. The output directory is created if it does not exist.
"""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so the version that lives on the website will be probably the most recent version? the version flag will have to be manually set to generate the json file - maybe we should make grabbing the version more automated? 🤔 this can be done manually for now

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just updated the mkdocs. So on each run, a new version will be grabbed, and the data will be generated for the latest three versions

Copy link
Member

@robscott robscott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @bexxmodd!

Comment on lines +14 to +17
<p id="version-row">
<label for="version-select"><strong>Gateway API version:</strong></label>
<select id="version-select"></select>
</p>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make this a "min version" instead of ==

Copy link
Contributor Author

@bexxmodd bexxmodd Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Version selection allows us to cleanly filter features and conformance reports. It's a redesign of how recommendation functions (including the data generation script) if users select min version instead of a specific one.

@bexxmodd
Copy link
Contributor Author

🔥 🌟 this is great! I'm glad that the data from the table is being put to good use :) I think the wording of Good to Have and Want to have could be a bit confusing, maybe something firmer, like Must have and Preferred?

nits/nice to have (non blocker)

  • a way to select the version
  • gateway api logo on the page somewhere? (lol) or a way to show the main menu? I know this may be tricky the way that this page is spun up/use of wasm 🤔
  • At the top wizard should have a drop-down menu for the latest three versions.
  • made it part of the docs, so it reuses the header and table list of the general page.

@bexxmodd bexxmodd changed the title [Draft] Controller recommendation wizard Controller recommendation wizard Feb 26, 2026
@bexxmodd bexxmodd changed the title Controller recommendation wizard Controller matching wizard Feb 26, 2026
return
}

must, good := getSelections()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may want to consider the deployment of the gateway. For example, if I am on AWS I cannot use GKE so its a bad recommendation. Likewise, if I don't want to pay a vendor I may need an open source implementation,

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I see the potential usefulness of this, I think we want to limit the inputs to what's in conformance reports. Given the relatively small proportion of implementations from Cloud Providers, I'd expect this to be pretty easy to filter out/manually ignore when looking at the results.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have to agree with Rob. That seems a good evolution of the wizard, but that will require tying that information to conformance, as those reports serve source of truth for what the wizard shows

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

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/documentation Categorizes issue or PR as related to documentation. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants