-
Notifications
You must be signed in to change notification settings - Fork 472
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
Conformance profiles prototype #1967
Conformance profiles prototype #1967
Conversation
Skipping CI for Draft Pull Request. |
looks good @mlavacca, added some minor comments |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
interesting data point (run with all supported features enabled and a few skipped tests):
{
"implementation": {
"organization": "projectcontour",
"project": "contour",
"url": "https://github.com/projectcontour/contour",
"version": "foo",
"contact": [
"@bar"
]
},
"date": "2023-05-01T21:55:53Z",
"gatewayAPIVersion": "TODO",
"profiles": [
{
"name": "HTTP",
"core": {
"result": "failure",
"summary": "",
"statistics": {
"Passed": 27,
"Skipped": 1,
"Failed": 1
},
"skippedTests": [
"HTTPRouteRedirectHostAndStatus"
],
"failedTests": [
"GatewayObservedGenerationBump"
]
},
"extended": {
"status": {
"result": "partial",
"summary": "",
"statistics": {
"Passed": 6,
"Skipped": 2,
"Failed": 0
},
"skippedTests": [
"HTTPRouteRedirectScheme",
"HTTPRouteRedirectPath"
]
}
}
},
{
"name": "TLS",
"core": {
"result": "failure",
"summary": "",
"statistics": {
"Passed": 9,
"Skipped": 0,
"Failed": 1
},
"failedTests": [
"GatewayObservedGenerationBump"
...
looks like GatewayObservedGenerationBump
(or any other common test between multiple profiles) shows up in two separate profiles, which I guess makes sense but could be a bit confusing when we go over the summary stats
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for working on it @mlavacca !
Yes, all the failing tests for a specific profile are enumerated in their own |
This LGTM, so I'll approve and hold, and wait for further maintainer review. /approve |
@robscott Can you please take another look? All your comments should be addressed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @mlavacca! Sorry for the delay on getting back to this one. This LGTM, have one tiny non-blocking nit but that can be handled in a follow up.
/lgtm
/approve
/hold cancel
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: keithmattix, mlavacca, robscott, sunjayBhatia, Xunzhuo, youngnick The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This adds a prototype for conformance profiles, which are subscribable named profiles which indicate high level testing conformance features.
This adds a prototype for tooling which can be used to produce a ConformanceReport as defined in GEP-1709.
This introduces a prototype of the test suite which is conformance profiles and conformance reporting enabled.
This applies the needed changes to the commits above to make the code actually usable by any implementation. The changes have been tested with Kong Kubernetes Ingress Controller. Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com>
The HTTPExtendedFeatures from conformance/utils/features.go has been reused in the conformance profile. Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com>
conformanceProfile file renamed to profileReport. Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com>
Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com>
Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com>
Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com>
76dcc19
to
66298af
Compare
New changes are detected. LGTM label has been removed. |
@robscott there were conflicts, and the rebase removed the LGTM label. Can you please lgtm it again? |
Signed-off-by: Mattia Lavacca <lavacca.mattia@gmail.com>
What type of PR is this?
/kind feature
/area conformance
What this PR does / why we need it:
This PR introduces the conformance profile machinery to verify compliance with given conformance profiles. It should be considered an implementation of https://github.com/kubernetes-sigs/gateway-api/blob/main/geps/gep-1709.md. The conformance profile test suite has been integrated and tested with Kong Kubernetes Ingress Controller, and below it is possible to see the outcome of such a test:
The result above has been produced by using the following settings:
Which issue(s) this PR fixes:
Fixes #1784
Does this PR introduce a user-facing change?: