Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 16 additions & 10 deletions conformance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,16 +93,22 @@ go test -v ./conformance \
- `--skip-tests`: Comma-separated list of tests to skip


## Exempt Features

Features not yet implemented (tests will be skipped):
- `GatewayStaticAddresses`
- `GatewayHTTPListenerIsolation`
- `HTTPRouteRequestMultipleMirrors`
- `HTTPRouteRequestTimeout`
- `HTTPRouteBackendTimeout`
- `HTTPRouteParentRefPort`
- continue updating...
## Generate Conformance Test Report
Tests under `options.SkipTests` are test cases that we know will not pass due to ELB limitations. Using command below will generate a report `conformance-report.yaml` under conformance folder

```bash
go test -v -timeout=60m ./conformance -run TestConformance -args \
--report-output=./conformance-report.yaml \
--gateway-class=REPLACE_WITH_GATEWAY_CLASS_NAME \
--organization=aws \
--project=aws-load-balancer-controller \
--url=https://github.com/kubernetes-sigs/aws-load-balancer-controller \
--version=v2.16.0 \
--contact=https://github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/OWNERS#L6 \
--conformance-profiles=GATEWAY-HTTP \
--allow-crds-mismatch=true \
--cleanup-base-resources=false
```

## Troubleshooting

Expand Down
64 changes: 64 additions & 0 deletions conformance/conformance-report.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
apiVersion: gateway.networking.k8s.io/v1
date: "2025-12-07T23:35:46-08:00"
gatewayAPIChannel: experimental
gatewayAPIVersion: v1.3.0
implementation:
contact:
- https://github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/OWNERS#L6
organization: aws
project: aws-load-balancer-controller
url: https://github.com/kubernetes-sigs/aws-load-balancer-controller
version: v2.16.0
kind: ConformanceReport
mode: default
profiles:
- core:
result: partial
skippedTests:
- GatewayInvalidTLSConfiguration
- GatewaySecretInvalidReferenceGrant
- GatewaySecretMissingReferenceGrant
- GatewaySecretReferenceGrantAllInNamespace
- GatewaySecretReferenceGrantSpecific
- GatewayWithAttachedRoutes
- HTTPRouteHTTPSListener
- HTTPRouteHostnameIntersection
- HTTPRouteRequestHeaderModifier
- HTTPRouteServiceTypes
statistics:
Failed: 0
Passed: 23
Skipped: 10
extended:
result: success
statistics:
Failed: 0
Passed: 5
Skipped: 0
supportedFeatures:
- HTTPRouteDestinationPortMatching
- HTTPRouteMethodMatching
- HTTPRouteParentRefPort
- HTTPRoutePortRedirect
unsupportedFeatures:
- GatewayAddressEmpty
- GatewayHTTPListenerIsolation
- GatewayInfrastructurePropagation
- GatewayPort8080
- GatewayStaticAddresses
- HTTPRouteBackendProtocolH2C
- HTTPRouteBackendProtocolWebSocket
- HTTPRouteBackendRequestHeaderModification
- HTTPRouteBackendTimeout
- HTTPRouteHostRewrite
- HTTPRoutePathRedirect
- HTTPRoutePathRewrite
- HTTPRouteQueryParamMatching
- HTTPRouteRequestMirror
- HTTPRouteRequestMultipleMirrors
- HTTPRouteRequestPercentageMirror
- HTTPRouteRequestTimeout
- HTTPRouteResponseHeaderModification
- HTTPRouteSchemeRedirect
name: GATEWAY-HTTP
summary: Core tests partially succeeded with 10 test skips. Extended tests succeeded.
29 changes: 19 additions & 10 deletions conformance/conformance_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,27 @@ import (
func TestConformance(t *testing.T) {
options := conformance.DefaultOptions(t)

// TODO: SkipTests, SupportedFeatures, ExemptFeatures needs to be updated after we conduct all conformance tests
// Below is only an example for now
// Configure skip tests, supported features and exempt features
options.SkipTests = suite.ParseSkipTests("GatewaySecretInvalidReferenceGrant")
options.SupportedFeatures = suite.ParseSupportedFeatures("Gateway,HTTPRoute")
options.ExemptFeatures = suite.ParseSupportedFeatures("GatewayStaticAddresses,GatewayHTTPListenerIsolation")
// Configure skip tests and supported features
options.SkipTests = []string{
"GatewayInvalidTLSConfiguration",
"GatewaySecretInvalidReferenceGrant",
"GatewaySecretMissingReferenceGrant",
"GatewaySecretReferenceGrantAllInNamespace",
"GatewaySecretReferenceGrantSpecific",
"GatewayWithAttachedRoutes",
"HTTPRouteBackendRequestHeaderModifier",
"HTTPRouteHTTPSListener",
"HTTPRouteRequestHeaderModifier",
"HTTPRouteHostnameIntersection",
"HTTPRouteServiceTypes",
}
options.SupportedFeatures = suite.ParseSupportedFeatures("Gateway,HTTPRoute,ReferenceGrant,HTTPRoutePortRedirect,HTTPRouteMethodMatching,HTTPRouteParentRefPort,HTTPRouteDestinationPortMatching")

// Configure timeout config
options.TimeoutConfig.GatewayStatusMustHaveListeners = 10 * time.Minute // we need to wait for LB to be provisioned before updating gateway listener status
options.TimeoutConfig.GatewayListenersMustHaveConditions = 10 * time.Minute
options.TimeoutConfig.NamespacesMustBeReady = 10 * time.Minute
options.TimeoutConfig.DefaultTestTimeout = 10 * time.Minute
options.TimeoutConfig.GatewayStatusMustHaveListeners = 8 * time.Minute // we need to wait for LB to be provisioned before updating gateway listener status
options.TimeoutConfig.GatewayListenersMustHaveConditions = 8 * time.Minute
options.TimeoutConfig.NamespacesMustBeReady = 8 * time.Minute
options.TimeoutConfig.DefaultTestTimeout = 8 * time.Minute

conformance.RunConformanceWithOptions(t, options)
}
Loading