Skip to content

Commit 0c771c3

Browse files
committed
pathprefix case added
Signed-off-by: Mattia Lavacca <[email protected]>
1 parent 5047dd8 commit 0c771c3

File tree

4 files changed

+39
-39
lines changed

4 files changed

+39
-39
lines changed

pkg/i2gw/providers/common/converter_test.go

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
8585
Name: "example-com-http",
8686
Port: 80,
8787
Protocol: gatewayv1beta1.HTTPProtocolType,
88-
Hostname: ptrTo(gatewayv1beta1.Hostname("example.com")),
88+
Hostname: PtrTo(gatewayv1beta1.Hostname("example.com")),
8989
}},
9090
},
9191
},
@@ -104,14 +104,14 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
104104
Matches: []gatewayv1beta1.HTTPRouteMatch{{
105105
Path: &gatewayv1beta1.HTTPPathMatch{
106106
Type: &gPathPrefix,
107-
Value: ptrTo("/foo"),
107+
Value: PtrTo("/foo"),
108108
},
109109
}},
110110
BackendRefs: []gatewayv1beta1.HTTPBackendRef{{
111111
BackendRef: gatewayv1beta1.BackendRef{
112112
BackendObjectReference: gatewayv1beta1.BackendObjectReference{
113113
Name: "example",
114-
Port: ptrTo(gatewayv1beta1.PortNumber(3000)),
114+
Port: PtrTo(gatewayv1beta1.PortNumber(3000)),
115115
},
116116
},
117117
}},
@@ -162,12 +162,12 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
162162
Name: "example-com-http",
163163
Port: 80,
164164
Protocol: gatewayv1beta1.HTTPProtocolType,
165-
Hostname: ptrTo(gatewayv1beta1.Hostname("example.com")),
165+
Hostname: PtrTo(gatewayv1beta1.Hostname("example.com")),
166166
}, {
167167
Name: "example-com-https",
168168
Port: 443,
169169
Protocol: gatewayv1beta1.HTTPSProtocolType,
170-
Hostname: ptrTo(gatewayv1beta1.Hostname("example.com")),
170+
Hostname: PtrTo(gatewayv1beta1.Hostname("example.com")),
171171
TLS: &gatewayv1beta1.GatewayTLSConfig{
172172
CertificateRefs: []gatewayv1beta1.SecretObjectReference{{
173173
Name: "example-cert",
@@ -191,14 +191,14 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
191191
Matches: []gatewayv1beta1.HTTPRouteMatch{{
192192
Path: &gatewayv1beta1.HTTPPathMatch{
193193
Type: &gPathPrefix,
194-
Value: ptrTo("/foo"),
194+
Value: PtrTo("/foo"),
195195
},
196196
}},
197197
BackendRefs: []gatewayv1beta1.HTTPBackendRef{{
198198
BackendRef: gatewayv1beta1.BackendRef{
199199
BackendObjectReference: gatewayv1beta1.BackendObjectReference{
200200
Name: "example",
201-
Port: ptrTo(gatewayv1beta1.PortNumber(3000)),
201+
Port: PtrTo(gatewayv1beta1.PortNumber(3000)),
202202
},
203203
},
204204
}},
@@ -214,7 +214,7 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
214214
ingresses: []networkingv1.Ingress{{
215215
ObjectMeta: metav1.ObjectMeta{Name: "net", Namespace: "different"},
216216
Spec: networkingv1.IngressSpec{
217-
IngressClassName: ptrTo("example-proxy"),
217+
IngressClassName: PtrTo("example-proxy"),
218218
Rules: []networkingv1.IngressRule{{
219219
Host: "example.net",
220220
IngressRuleValue: networkingv1.IngressRuleValue{
@@ -226,7 +226,7 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
226226
Resource: &corev1.TypedLocalObjectReference{
227227
Name: "custom",
228228
Kind: "StorageBucket",
229-
APIGroup: ptrTo("vendor.example.com"),
229+
APIGroup: PtrTo("vendor.example.com"),
230230
},
231231
},
232232
}},
@@ -253,7 +253,7 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
253253
Name: "example-net-http",
254254
Port: 80,
255255
Protocol: gatewayv1beta1.HTTPProtocolType,
256-
Hostname: ptrTo(gatewayv1beta1.Hostname("example.net")),
256+
Hostname: PtrTo(gatewayv1beta1.Hostname("example.net")),
257257
}},
258258
},
259259
},
@@ -272,15 +272,15 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
272272
Matches: []gatewayv1beta1.HTTPRouteMatch{{
273273
Path: &gatewayv1beta1.HTTPPathMatch{
274274
Type: &gExact,
275-
Value: ptrTo("/bar"),
275+
Value: PtrTo("/bar"),
276276
},
277277
}},
278278
BackendRefs: []gatewayv1beta1.HTTPBackendRef{{
279279
BackendRef: gatewayv1beta1.BackendRef{
280280
BackendObjectReference: gatewayv1beta1.BackendObjectReference{
281281
Name: "custom",
282-
Group: ptrTo(gatewayv1beta1.Group("vendor.example.com")),
283-
Kind: ptrTo(gatewayv1beta1.Kind("StorageBucket")),
282+
Group: PtrTo(gatewayv1beta1.Group("vendor.example.com")),
283+
Kind: PtrTo(gatewayv1beta1.Kind("StorageBucket")),
284284
},
285285
},
286286
}},
@@ -300,7 +300,7 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
300300
BackendRef: gatewayv1beta1.BackendRef{
301301
BackendObjectReference: gatewayv1beta1.BackendObjectReference{
302302
Name: "default",
303-
Port: ptrTo(gatewayv1beta1.PortNumber(8080)),
303+
Port: PtrTo(gatewayv1beta1.PortNumber(8080)),
304304
},
305305
}},
306306
}},
@@ -358,7 +358,3 @@ func Test_ingresses2GatewaysAndHttpRoutes(t *testing.T) {
358358
})
359359
}
360360
}
361-
362-
func ptrTo[T any](a T) *T {
363-
return &a
364-
}

pkg/i2gw/providers/common/utils.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,7 @@ func ToBackendRef(ib networkingv1.IngressBackend, path *field.Path) (*gatewayv1b
120120
},
121121
}, nil
122122
}
123+
124+
func PtrTo[T any](a T) *T {
125+
return &a
126+
}

pkg/i2gw/providers/kong/converter.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ import (
2424
"github.com/kubernetes-sigs/ingress2gateway/pkg/i2gw/providers/common"
2525
networkingv1 "k8s.io/api/networking/v1"
2626
"k8s.io/apimachinery/pkg/util/validation/field"
27-
"k8s.io/utils/ptr"
28-
"knative.dev/pkg/ptr"
2927
gatewayv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
3028
)
3129

@@ -83,9 +81,9 @@ func toHTTPRouteMatchOption(routePath networkingv1.HTTPIngressPath, path *field.
8381
case networkingv1.PathTypeImplementationSpecific:
8482
if strings.HasPrefix(routePath.Path, "/~") {
8583
match.Path.Type = &pmRegex
86-
match.Path.Value = ptr.String(strings.TrimPrefix(*match.Path.Value, "/~"))
84+
match.Path.Value = common.PtrTo(strings.TrimPrefix(*match.Path.Value, "/~"))
8785
} else {
88-
match.Path.Type = &pmExact
86+
match.Path.Type = &pmPrefix
8987
}
9088

9189
default:

pkg/i2gw/providers/kong/converter_test.go

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func Test_ToGateway(t *testing.T) {
3535
iPrefix := networkingv1.PathTypePrefix
3636
isPathType := networkingv1.PathTypeImplementationSpecific
3737
gPathPrefix := gatewayv1beta1.PathMatchPathPrefix
38-
regexPath := gatewayv1beta1.PathMatchRegularExpression
38+
gPathRegex := gatewayv1beta1.PathMatchRegularExpression
3939

4040
testCases := []struct {
4141
name string
@@ -329,7 +329,7 @@ func Test_ToGateway(t *testing.T) {
329329
ingresses: []networkingv1.Ingress{
330330
{
331331
ObjectMeta: metav1.ObjectMeta{
332-
Name: "implementation-specific",
332+
Name: "implementation-specific-regex",
333333
Namespace: "default",
334334
},
335335
Spec: networkingv1.IngressSpec{
@@ -339,7 +339,7 @@ func Test_ToGateway(t *testing.T) {
339339
IngressRuleValue: networkingv1.IngressRuleValue{
340340
HTTP: &networkingv1.HTTPIngressRuleValue{
341341
Paths: []networkingv1.HTTPIngressPath{{
342-
Path: "/",
342+
Path: "/~/echo/**/test",
343343
PathType: &isPathType,
344344
Backend: networkingv1.IngressBackend{
345345
Service: &networkingv1.IngressServiceBackend{
@@ -381,26 +381,28 @@ func Test_ToGateway(t *testing.T) {
381381
}},
382382
},
383383
Hostnames: []gatewayv1beta1.Hostname{"test.mydomain.com"},
384-
Rules: []gatewayv1beta1.HTTPRouteRule{{
385-
Matches: []gatewayv1beta1.HTTPRouteMatch{
386-
{
387-
Path: &gatewayv1beta1.HTTPPathMatch{
388-
Type: &regexPath,
389-
Value: ptrTo("/"),
384+
Rules: []gatewayv1beta1.HTTPRouteRule{
385+
{
386+
Matches: []gatewayv1beta1.HTTPRouteMatch{
387+
{
388+
Path: &gatewayv1beta1.HTTPPathMatch{
389+
Type: &gPathRegex,
390+
Value: ptrTo("/echo/**/test"),
391+
},
390392
},
391393
},
392-
},
393-
BackendRefs: []gatewayv1beta1.HTTPBackendRef{
394-
{
395-
BackendRef: gatewayv1beta1.BackendRef{
396-
BackendObjectReference: gatewayv1beta1.BackendObjectReference{
397-
Name: "test",
398-
Port: ptrTo(gatewayv1beta1.PortNumber(80)),
394+
BackendRefs: []gatewayv1beta1.HTTPBackendRef{
395+
{
396+
BackendRef: gatewayv1beta1.BackendRef{
397+
BackendObjectReference: gatewayv1beta1.BackendObjectReference{
398+
Name: "test",
399+
Port: ptrTo(gatewayv1beta1.PortNumber(80)),
400+
},
399401
},
400402
},
401403
},
402404
},
403-
}},
405+
},
404406
},
405407
},
406408
},

0 commit comments

Comments
 (0)