...
1
16
17 package tests
18
19 import (
20 "testing"
21
22 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23 "k8s.io/apimachinery/pkg/types"
24
25 v1 "sigs.k8s.io/gateway-api/apis/v1"
26 "sigs.k8s.io/gateway-api/conformance/utils/kubernetes"
27 "sigs.k8s.io/gateway-api/conformance/utils/suite"
28 )
29
30 func init() {
31 ConformanceTests = append(ConformanceTests, GatewaySecretInvalidReferenceGrant)
32 }
33
34 var GatewaySecretInvalidReferenceGrant = suite.ConformanceTest{
35 ShortName: "GatewaySecretInvalidReferenceGrant",
36 Description: "A Gateway in the gateway-conformance-infra namespace should fail to become ready if the Gateway has a certificateRef for a Secret in the gateway-conformance-web-backend namespace and a ReferenceGrant exists but does not grant permission to that specific Secret",
37 Features: []suite.SupportedFeature{
38 suite.SupportGateway,
39 suite.SupportReferenceGrant,
40 },
41 Manifests: []string{"tests/gateway-secret-invalid-reference-grant.yaml"},
42 Test: func(t *testing.T, s *suite.ConformanceTestSuite) {
43 gwNN := types.NamespacedName{Name: "gateway-secret-invalid-reference-grant", Namespace: "gateway-conformance-infra"}
44
45 t.Run("Gateway listener should have a false ResolvedRefs condition with reason RefNotPermitted", func(t *testing.T) {
46 listeners := []v1.ListenerStatus{{
47 Name: v1.SectionName("https"),
48 SupportedKinds: []v1.RouteGroupKind{{
49 Group: (*v1.Group)(&v1.GroupVersion.Group),
50 Kind: v1.Kind("HTTPRoute"),
51 }},
52 Conditions: []metav1.Condition{{
53 Type: string(v1.ListenerConditionResolvedRefs),
54 Status: metav1.ConditionFalse,
55 Reason: string(v1.ListenerReasonRefNotPermitted),
56 }},
57 AttachedRoutes: 0,
58 }}
59
60 kubernetes.GatewayStatusMustHaveListeners(t, s.Client, s.TimeoutConfig, gwNN, listeners)
61 })
62 },
63 }
64
View as plain text