@@ -952,4 +952,67 @@ spec:
952952 Expect (rewriteConfig ["body_base64" ]).To (BeTrue (), "checking body_base64" )
953953 })
954954 })
955+
956+ Context ("Service Namespace" , func () {
957+ var (
958+ ns string
959+ svc = `
960+ apiVersion: v1
961+ kind: Service
962+ metadata:
963+ name: httpbin-external-domain
964+ spec:
965+ type: ExternalName
966+ externalName: httpbin-service-e2e-test.%s.svc
967+ `
968+ ingressSvcNamespace = `
969+ apiVersion: networking.k8s.io/v1
970+ kind: Ingress
971+ metadata:
972+ name: retries
973+ annotations:
974+ k8s.apisix.apache.org/svc-namespace: %s
975+ spec:
976+ ingressClassName: %s
977+ rules:
978+ - host: httpbin.example
979+ http:
980+ paths:
981+ - path: /get
982+ pathType: Exact
983+ backend:
984+ service:
985+ name: httpbin-external-domain
986+ port:
987+ number: 80
988+ `
989+ )
990+ BeforeEach (func () {
991+ ns = s .Namespace () + "-v2"
992+ s .CreateNamespace (ns )
993+ err := s .CreateResourceFromStringWithNamespace (fmt .Sprintf (svc , s .Namespace ()), ns )
994+ Expect (err ).NotTo (HaveOccurred (), "creating Service in custom namespace" )
995+
996+ By ("create GatewayProxy" )
997+ Expect (s .CreateResourceFromString (s .GetGatewayProxySpec ())).NotTo (HaveOccurred (), "creating GatewayProxy" )
998+
999+ By ("create IngressClass" )
1000+ err = s .CreateResourceFromStringWithNamespace (s .GetIngressClassYaml (), "" )
1001+ Expect (err ).NotTo (HaveOccurred (), "creating IngressClass" )
1002+ time .Sleep (5 * time .Second )
1003+ })
1004+ AfterEach (func () {
1005+ s .DeleteNamespace (ns )
1006+ })
1007+ It ("svc-namespace" , func () {
1008+ Expect (s .CreateResourceFromString (fmt .Sprintf (ingressSvcNamespace , ns , s .Namespace ()))).ShouldNot (HaveOccurred (), "creating Ingress" )
1009+
1010+ s .RequestAssert (& scaffold.RequestAssert {
1011+ Method : "GET" ,
1012+ Path : "/get" ,
1013+ Host : "httpbin.example" ,
1014+ Check : scaffold .WithExpectedStatus (http .StatusOK ),
1015+ })
1016+ })
1017+ })
9551018})
0 commit comments