Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose CEL/OpenAPI validation rules as documentation to users #3209

Open
howardjohn opened this issue Jul 22, 2024 · 3 comments
Open

Expose CEL/OpenAPI validation rules as documentation to users #3209

howardjohn opened this issue Jul 22, 2024 · 3 comments
Labels
kind/documentation Categorizes issue or PR as related to documentation. triage/needs-information Indicates an issue needs more information in order to work on it.

Comments

@howardjohn
Copy link
Contributor

What would you like to be added:

Expose validation rules to reference documentation on the website (and/or so it shows up in kubectl explain

Why this is needed:

Users have asked for this: istio/istio#52225

@howardjohn howardjohn added the kind/documentation Categorizes issue or PR as related to documentation. label Jul 22, 2024
@kovaxur
Copy link

kovaxur commented Jul 23, 2024

Is there a reason why we have this limit in the API? Shouldn't the limits be enforced by the implementation of the gateway controller?

@youngnick
Copy link
Contributor

The main reasons to have this in the API rather than the implementations are:

  • Users get feedback earlier, at apply time, rather than having the apply succeed and then their configuration (or even worse, only some of their configuration), fail to work.
  • Allowing implementations to control this themselves would allow implementations to choose their own numbers here, which would break portability - since a Gateway that was valid in one implementation might not be in another, based on the number of Listeners.

That's why this is done at the API level.

As to why there are limits - the main reasons are the etcd size limit (records stored in etcd can't be over a certain size, which is 1MB by default, and records that exceed this size simply won't be accepted by Kubernetes), and the complexity which would ensue if you could have n Listeners x m Attached Routes x l Route rules x o Matches inside Rules. The complexity goes up very quickly with that sort of multiplicative relationship.

@shaneutt
Copy link
Member

/triage needs-information

@k8s-ci-robot k8s-ci-robot added the triage/needs-information Indicates an issue needs more information in order to work on it. label Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/documentation Categorizes issue or PR as related to documentation. triage/needs-information Indicates an issue needs more information in order to work on it.
Projects
Status: Triage
Development

No branches or pull requests

5 participants