...
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 "sigs.k8s.io/gateway-api/apis/v1beta1"
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, TLSRouteInvalidReferenceGrant)
32 }
33
34 var TLSRouteInvalidReferenceGrant = suite.ConformanceTest{
35 ShortName: "TLSRouteInvalidReferenceGrant",
36 Description: "A single TLSRoute in the gateway-conformance-infra namespace, with a backendRef in another namespace without valid ReferenceGrant, should have the ResolvedRefs condition set to False",
37 Features: []suite.SupportedFeature{
38 suite.SupportGateway,
39 suite.SupportTLSRoute,
40 suite.SupportReferenceGrant,
41 },
42 Manifests: []string{"tests/tlsroute-invalid-reference-grant.yaml"},
43 Test: func(t *testing.T, suite *suite.ConformanceTestSuite) {
44 routeNN := types.NamespacedName{Name: "gateway-conformance-infra-test", Namespace: "gateway-conformance-infra"}
45 gwNN := types.NamespacedName{Name: "gateway-tlsroute-referencegrant", Namespace: "gateway-conformance-infra"}
46
47 kubernetes.GatewayAndTLSRoutesMustBeAccepted(t, suite.Client, suite.TimeoutConfig, suite.ControllerName, kubernetes.NewGatewayRef(gwNN), routeNN)
48
49 t.Run("TLSRoute with BackendRef in another namespace and no ReferenceGrant covering the Service has a ResolvedRefs Condition with status False and Reason RefNotPermitted", func(t *testing.T) {
50 resolvedRefsCond := metav1.Condition{
51 Type: string(v1beta1.RouteConditionResolvedRefs),
52 Status: metav1.ConditionFalse,
53 Reason: string(v1beta1.RouteReasonRefNotPermitted),
54 }
55
56 kubernetes.TLSRouteMustHaveCondition(t, suite.Client, suite.TimeoutConfig, routeNN, gwNN, resolvedRefsCond)
57 })
58 },
59 }
60
View as plain text