Skip to content

Commit

Permalink
fix build
Browse files Browse the repository at this point in the history
Signed-off-by: Huabing Zhao <[email protected]>
  • Loading branch information
zhaohuabing committed Sep 25, 2024
1 parent 92c170b commit abdaefd
Show file tree
Hide file tree
Showing 13 changed files with 1,225 additions and 2,151 deletions.
3,245 changes: 1,136 additions & 2,109 deletions charts/gateway-helm/crds/gatewayapi-crds.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion examples/extension-server/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ require (
google.golang.org/protobuf v1.34.2
k8s.io/apimachinery v0.31.1
sigs.k8s.io/controller-runtime v0.19.0
sigs.k8s.io/gateway-api v1.1.0
sigs.k8s.io/gateway-api v1.2.0-rc1
)

require (
Expand Down
4 changes: 2 additions & 2 deletions examples/extension-server/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q=
sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4=
sigs.k8s.io/gateway-api v1.1.0 h1:DsLDXCi6jR+Xz8/xd0Z1PYl2Pn0TyaFMOPPZIj4inDM=
sigs.k8s.io/gateway-api v1.1.0/go.mod h1:ZH4lHrL2sDi0FHZ9jjneb8kKnGzFWyrTya35sWUTrRs=
sigs.k8s.io/gateway-api v1.2.0-rc1 h1:ZcqCEype0Mrt3ax46t2QB+VSm8ic4/WUQkbcc6xtAOI=
sigs.k8s.io/gateway-api v1.2.0-rc1/go.mod h1:EpNfEXNjiYfUJypf0eZ0P5iXA9ekSGWaS1WgPaM42X0=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
Expand Down
27 changes: 22 additions & 5 deletions internal/gatewayapi/conformance/suite.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,26 @@ func skipTestsShortNames(skipTests []suite.ConformanceTest) []string {

// EnvoyGatewaySuite is the conformance suite configuration for the Gateway API.
var EnvoyGatewaySuite = suite.ConformanceOptions{
SupportedFeatures: features.AllFeatures,
ExemptFeatures: sets.New[features.SupportedFeature]().
Insert(features.MeshCoreFeatures.UnsortedList()...).
Insert(features.MeshExtendedFeatures.UnsortedList()...),
SkipTests: skipTestsShortNames(SkipTests),
SupportedFeatures: allFeatures(),
ExemptFeatures: meshFeatures(),
SkipTests: skipTestsShortNames(SkipTests),
}

func allFeatures() sets.Set[features.FeatureName] {
allFeatures := sets.New[features.FeatureName]()
for _, feature := range features.AllFeatures.UnsortedList() {
allFeatures.Insert(feature.Name)
}
return allFeatures
}

func meshFeatures() sets.Set[features.FeatureName] {
meshFeatures := sets.New[features.FeatureName]()
for _, feature := range features.MeshCoreFeatures.UnsortedList() {
meshFeatures.Insert(feature.Name)
}
for _, feature := range features.MeshExtendedFeatures.UnsortedList() {
meshFeatures.Insert(feature.Name)
}
return meshFeatures
}
19 changes: 14 additions & 5 deletions internal/gatewayapi/conformance/support_level.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,19 @@ const (
)

// ExtendedFeatures is a list of supported Gateway-API features that are considered Extended.
var ExtendedFeatures = sets.New[features.SupportedFeature]().
Insert(features.GatewayExtendedFeatures.UnsortedList()...).
Insert(features.HTTPRouteExtendedFeatures.UnsortedList()...).
Insert(features.MeshExtendedFeatures.UnsortedList()...)
var ExtendedFeatures = sets.New[features.FeatureName]()

func init() {
for _, feature := range features.GatewayExtendedFeatures.UnsortedList() {
ExtendedFeatures.Insert(feature.Name)
}
for _, feature := range features.HTTPRouteExtendedFeatures.UnsortedList() {
ExtendedFeatures.Insert(feature.Name)
}
for _, feature := range features.MeshExtendedFeatures.UnsortedList() {
ExtendedFeatures.Insert(feature.Name)
}
}

// GetTestSupportLevel returns the SupportLevel for a conformance test.
// The support level is determined by the highest support level of the features.
Expand All @@ -44,7 +53,7 @@ func GetTestSupportLevel(test suite.ConformanceTest) SupportLevel {
}

// GetFeatureSupportLevel returns the SupportLevel for a feature.
func GetFeatureSupportLevel(feature features.SupportedFeature) SupportLevel {
func GetFeatureSupportLevel(feature features.FeatureName) SupportLevel {
supportLevel := Core

if ExtendedFeatures.Has(feature) {
Expand Down
1 change: 1 addition & 0 deletions internal/gatewayapi/helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ var (
PathMatchTypeDerefOr = ptr.Deref[gwapiv1.PathMatchType]
GRPCMethodMatchTypeDerefOr = ptr.Deref[gwapiv1.GRPCMethodMatchType]
HeaderMatchTypeDerefOr = ptr.Deref[gwapiv1.HeaderMatchType]
GRPCHeaderMatchTypeDerefOr = ptr.Deref[gwapiv1.GRPCHeaderMatchType]
QueryParamMatchTypeDerefOr = ptr.Deref[gwapiv1.QueryParamMatchType]
)

Expand Down
6 changes: 3 additions & 3 deletions internal/gatewayapi/route.go
Original file line number Diff line number Diff line change
Expand Up @@ -608,13 +608,13 @@ func (t *Translator) processGRPCRouteRule(grpcRoute *GRPCRouteContext, ruleIdx i
}

for _, headerMatch := range match.Headers {
switch HeaderMatchTypeDerefOr(headerMatch.Type, gwapiv1.HeaderMatchExact) {
case gwapiv1.HeaderMatchExact:
switch GRPCHeaderMatchTypeDerefOr(headerMatch.Type, gwapiv1.GRPCHeaderMatchExact) {
case gwapiv1.GRPCHeaderMatchExact:
irRoute.HeaderMatches = append(irRoute.HeaderMatches, &ir.StringMatch{
Name: string(headerMatch.Name),
Exact: ptr.To(headerMatch.Value),
})
case gwapiv1.HeaderMatchRegularExpression:
case gwapiv1.GRPCHeaderMatchRegularExpression:

Check warning on line 617 in internal/gatewayapi/route.go

View check run for this annotation

Codecov / codecov/patch

internal/gatewayapi/route.go#L617

Added line #L617 was not covered by tests
if err := regex.Validate(headerMatch.Value); err != nil {
return nil, err
}
Expand Down
13 changes: 10 additions & 3 deletions internal/gatewayapi/status/gatewayclass.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,19 @@ func getSupportedFeatures(gatewaySuite suite.ConformanceOptions, skippedTests []

ret := sets.New[gwapiv1.SupportedFeature]()
for _, feature := range supportedFeatures.UnsortedList() {
ret.Insert(gwapiv1.SupportedFeature(feature))
ret.Insert(gwapiv1.SupportedFeature{
Name: gwapiv1.FeatureName(feature),
})
}
return sets.List(ret)

var featureList []gwapiv1.SupportedFeature
for feature := range ret {
featureList = append(featureList, feature)
}
return featureList
}

func getUnsupportedFeatures(gatewaySuite suite.ConformanceOptions, skippedTests []suite.ConformanceTest) []features.SupportedFeature {
func getUnsupportedFeatures(gatewaySuite suite.ConformanceOptions, skippedTests []suite.ConformanceTest) []features.FeatureName {
unsupportedFeatures := gatewaySuite.ExemptFeatures.UnsortedList()

for _, skippedTest := range skippedTests {
Expand Down
49 changes: 31 additions & 18 deletions internal/gatewayapi/status/gatewayclass_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,63 +80,76 @@ func TestGetSupportedFeatures(t *testing.T) {
{
name: "No exempt features",
gatewaySuite: suite.ConformanceOptions{
SupportedFeatures: sets.New[features.SupportedFeature]("Gateway", "HTTPRoute"),
ExemptFeatures: sets.New[features.SupportedFeature](),
SupportedFeatures: sets.New[features.FeatureName]("Gateway", "HTTPRoute"),
ExemptFeatures: sets.New[features.FeatureName](),
},
expectedResult: []gwapiv1.SupportedFeature{
{Name: "Gateway"},
{Name: "HTTPRoute"},
},
expectedResult: []gwapiv1.SupportedFeature{"Gateway", "HTTPRoute"},
},
{
name: "All features exempt",
gatewaySuite: suite.ConformanceOptions{
SupportedFeatures: sets.New[features.SupportedFeature]("Gateway", "HTTPRoute"),
ExemptFeatures: sets.New[features.SupportedFeature]("Gateway", "HTTPRoute"),
SupportedFeatures: sets.New[features.FeatureName]("Gateway", "HTTPRoute"),
ExemptFeatures: sets.New[features.FeatureName]("Gateway", "HTTPRoute"),
},
expectedResult: []gwapiv1.SupportedFeature{},
},
{
name: "Some features exempt",
gatewaySuite: suite.ConformanceOptions{
SupportedFeatures: sets.New[features.SupportedFeature]("Gateway", "HTTPRoute", "GRPCRoute"),
ExemptFeatures: sets.New[features.SupportedFeature]("GRPCRoute"),
SupportedFeatures: sets.New[features.FeatureName]("Gateway", "HTTPRoute", "GRPCRoute"),
ExemptFeatures: sets.New[features.FeatureName]("GRPCRoute"),
},
expectedResult: []gwapiv1.SupportedFeature{
{Name: "Gateway"},
{Name: "HTTPRoute"},
},
expectedResult: []gwapiv1.SupportedFeature{"Gateway", "HTTPRoute"},
},
{
name: "Some features exempt with skipped tests",
gatewaySuite: suite.ConformanceOptions{
SupportedFeatures: sets.New[features.SupportedFeature]("Gateway", "HTTPRoute", "GRPCRoute"),
ExemptFeatures: sets.New[features.SupportedFeature]("GRPCRoute"),
SupportedFeatures: sets.New[features.FeatureName]("Gateway", "HTTPRoute", "GRPCRoute"),
ExemptFeatures: sets.New[features.FeatureName]("GRPCRoute"),
},
skippedTests: []suite.ConformanceTest{
{
Features: []features.SupportedFeature{"HTTPRoute"},
Features: []features.FeatureName{"HTTPRoute"},
},
},
expectedResult: []gwapiv1.SupportedFeature{"Gateway"},
expectedResult: []gwapiv1.SupportedFeature{
{Name: "Gateway"},
},
},
{
name: "Core features remain supported with skipped extended tests",
gatewaySuite: suite.ConformanceOptions{
SupportedFeatures: sets.New[features.SupportedFeature]("Gateway", "HTTPRoute", "GatewayHTTPListenerIsolation"),
SupportedFeatures: sets.New[features.FeatureName]("Gateway", "HTTPRoute", "GatewayHTTPListenerIsolation"),
},
skippedTests: []suite.ConformanceTest{
{
Features: []features.SupportedFeature{"Gateway", "GatewayHTTPListenerIsolation", "HTTPRoute"},
Features: []features.FeatureName{"Gateway", "GatewayHTTPListenerIsolation", "HTTPRoute"},
},
},
expectedResult: []gwapiv1.SupportedFeature{"Gateway", "HTTPRoute"},
expectedResult: []gwapiv1.SupportedFeature{
{Name: "Gateway"},
{Name: "HTTPRoute"},
},
},
{
name: "Core feature removed when skipping core test",
gatewaySuite: suite.ConformanceOptions{
SupportedFeatures: sets.New[features.SupportedFeature]("Gateway", "HTTPRoute"),
SupportedFeatures: sets.New[features.FeatureName]("Gateway", "HTTPRoute"),
},
skippedTests: []suite.ConformanceTest{
{
Features: []features.SupportedFeature{"HTTPRoute"},
Features: []features.FeatureName{"HTTPRoute"},
},
},
expectedResult: []gwapiv1.SupportedFeature{"Gateway"},
expectedResult: []gwapiv1.SupportedFeature{
{Name: "Gateway"},
},
},
}

Expand Down
2 changes: 1 addition & 1 deletion test/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func TestE2E(t *testing.T) {
RunTest: *flags.RunTest,
// SupportedFeatures cannot be empty, so we set it to SupportGateway
// All e2e tests should leave Features empty.
SupportedFeatures: sets.New[features.SupportedFeature](features.SupportGateway),
SupportedFeatures: sets.New[features.FeatureName](features.SupportGateway),
SkipTests: []string{
tests.GatewayInfraResourceTest.ShortName, // https://github.com/envoyproxy/gateway/issues/3191
},
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/merge_gateways/merge_gateways_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func TestMergeGateways(t *testing.T) {
RunTest: *flags.RunTest,
// SupportedFeatures cannot be empty, so we set it to SupportGateway
// All e2e tests should leave Features empty.
SupportedFeatures: sets.New[features.SupportedFeature](features.SupportGateway),
SupportedFeatures: sets.New[features.FeatureName](features.SupportGateway),
SkipTests: []string{},
})
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions test/e2e/multiple_gc/multiple_gc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func TestMultipleGC(t *testing.T) {
RunTest: *flags.RunTest,
// SupportedFeatures cannot be empty, so we set it to SupportGateway
// All e2e tests should leave Features empty.
SupportedFeatures: sets.New[features.SupportedFeature](features.SupportGateway),
SupportedFeatures: sets.New[features.FeatureName](features.SupportGateway),
SkipTests: []string{},
})
if err != nil {
Expand Down Expand Up @@ -82,7 +82,7 @@ func TestMultipleGC(t *testing.T) {
RunTest: *flags.RunTest,
// SupportedFeatures cannot be empty, so we set it to SupportGateway
// All e2e tests should leave Features empty.
SupportedFeatures: sets.New[features.SupportedFeature](features.SupportGateway),
SupportedFeatures: sets.New[features.FeatureName](features.SupportGateway),
SkipTests: []string{},
})
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/upgrade/eg_upgrade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func TestEGUpgrade(t *testing.T) {
ManifestFS: []fs.FS{e2e.UpgradeManifests},
RunTest: *flags.RunTest,
BaseManifests: "upgrade/manifests.yaml",
SupportedFeatures: sets.New[features.SupportedFeature](features.SupportGateway),
SupportedFeatures: sets.New[features.FeatureName](features.SupportGateway),
SkipTests: []string{},
})
if err != nil {
Expand Down

0 comments on commit abdaefd

Please sign in to comment.