Skip to content

Commit 51488fa

Browse files
authored
Change to ignore Mesh features in GWC instead of erroring out. (#3938)
* Change to ignore Mesh features in GWC instead of erroring out. * Added comment on what new code does. * Punctuation. * Added extended mesh feture for test suite unit test.
1 parent 372a5b0 commit 51488fa

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

conformance/utils/suite/suite.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,13 @@ func NewConformanceTestSuite(options ConformanceOptions) (*ConformanceTestSuite,
211211
return nil, fmt.Errorf("cannot infer supported features: %w", err)
212212
}
213213

214-
if hasMeshFeatures(supportedFeatures) {
215-
return nil, fmt.Errorf("mesh features should not be populated in GatewayClass")
214+
// If Mesh features are populated in the GatewayClass we remove them from the supported features set.
215+
meshFeatureNames := features.SetsToNamesSet(features.MeshCoreFeatures, features.MeshExtendedFeatures)
216+
for _, f := range supportedFeatures.UnsortedList() {
217+
if meshFeatureNames.Has(f) {
218+
supportedFeatures.Delete(f)
219+
fmt.Printf("WARNING: Mesh feature %q should not be populated in GatewayClass, skipping...", f)
220+
}
216221
}
217222
source = supportedFeaturesSourceInferred
218223
}
@@ -660,7 +665,3 @@ func getAPIVersionAndChannel(crds []apiextensionsv1.CustomResourceDefinition) (v
660665

661666
return version, channel, nil
662667
}
663-
664-
func hasMeshFeatures(f FeaturesSet) bool {
665-
return f.HasAny(features.SetsToNamesSet(features.MeshCoreFeatures, features.MeshExtendedFeatures).UnsortedList()...)
666-
}

conformance/utils/suite/suite_test.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222

2323
"github.com/stretchr/testify/assert"
2424
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
25-
2625
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2726
"k8s.io/apimachinery/pkg/runtime"
2827
"k8s.io/apimachinery/pkg/util/sets"
@@ -545,9 +544,8 @@ func TestGWCPublishedMeshFeatures(t *testing.T) {
545544
},
546545
SupportedFeatures: featureNamesToSet([]string{
547546
string(features.SupportGateway),
548-
string(features.SupportGatewayStaticAddresses),
547+
string(features.SupportMesh),
549548
string(features.SupportMeshClusterIPMatching),
550-
string(features.SupportMeshConsumerRoute),
551549
}),
552550
},
553551
}
@@ -568,9 +566,12 @@ func TestGWCPublishedMeshFeatures(t *testing.T) {
568566
Client: fakeClient,
569567
}
570568

571-
_, err := NewConformanceTestSuite(options)
572-
if err == nil {
573-
t.Fatalf("expected an error but got nil")
569+
suite, err := NewConformanceTestSuite(options)
570+
if err != nil {
571+
t.Fatalf("error initializing conformance suite: %v", err)
572+
}
573+
if suite.SupportedFeatures.HasAny(features.SetsToNamesSet(features.MeshCoreFeatures, features.MeshExtendedFeatures).UnsortedList()...) {
574+
t.Errorf("Mesh features should be skipped, got: %v", suite.SupportedFeatures.UnsortedList())
574575
}
575576
}
576577

0 commit comments

Comments
 (0)