From 0100b6637a4130dabc95f1b54240f40e65b5b47f Mon Sep 17 00:00:00 2001 From: Andy Bursavich Date: Sat, 13 Jul 2024 13:04:43 -0700 Subject: [PATCH] source/gateway-api: revert v1.Gateway to v1beta1.Gateway --- source/gateway.go | 15 ++++---- source/gateway_grpcroute_test.go | 5 +-- source/gateway_httproute_test.go | 59 ++++++++++++++++---------------- source/gateway_tcproute_test.go | 5 +-- source/gateway_tlsroute_test.go | 5 +-- source/gateway_udproute_test.go | 5 +-- 6 files changed, 50 insertions(+), 44 deletions(-) diff --git a/source/gateway.go b/source/gateway.go index 8f8a624a5..33ca684af 100644 --- a/source/gateway.go +++ b/source/gateway.go @@ -34,9 +34,10 @@ import ( coreinformers "k8s.io/client-go/informers/core/v1" cache "k8s.io/client-go/tools/cache" v1 "sigs.k8s.io/gateway-api/apis/v1" + v1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" gateway "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned" informers "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions" - informers_v1 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1" + informers_v1beta1 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1beta1" "sigs.k8s.io/external-dns/endpoint" ) @@ -83,7 +84,7 @@ func newGatewayInformerFactory(client gateway.Interface, namespace string, label type gatewayRouteSource struct { gwNamespace string gwLabels labels.Selector - gwInformer informers_v1.GatewayInformer + gwInformer informers_v1beta1.GatewayInformer rtKind string rtNamespace string @@ -124,8 +125,8 @@ func newGatewayRouteSource(clients ClientGenerator, config *Config, kind string, } informerFactory := newGatewayInformerFactory(client, config.GatewayNamespace, gwLabels) - gwInformer := informerFactory.Gateway().V1().Gateways() // TODO: Gateway informer should be shared across gateway sources. - gwInformer.Informer() // Register with factory before starting. + gwInformer := informerFactory.Gateway().V1beta1().Gateways() // TODO: Gateway informer should be shared across gateway sources. + gwInformer.Informer() // Register with factory before starting. rtInformerFactory := informerFactory if config.Namespace != config.GatewayNamespace || !selectorsEqual(rtLabels, gwLabels) { @@ -251,11 +252,11 @@ type gatewayRouteResolver struct { } type gatewayListeners struct { - gateway *v1.Gateway + gateway *v1beta1.Gateway listeners map[v1.SectionName][]v1.Listener } -func newGatewayRouteResolver(src *gatewayRouteSource, gateways []*v1.Gateway, namespaces []*corev1.Namespace) *gatewayRouteResolver { +func newGatewayRouteResolver(src *gatewayRouteSource, gateways []*v1beta1.Gateway, namespaces []*corev1.Namespace) *gatewayRouteResolver { // Create Gateway Listener lookup table. gws := make(map[types.NamespacedName]gatewayListeners, len(gateways)) for _, gw := range gateways { @@ -395,7 +396,7 @@ func (c *gatewayRouteResolver) hosts(rt gatewayRoute) ([]string, error) { return hostnames, nil } -func (c *gatewayRouteResolver) routeIsAllowed(gw *v1.Gateway, lis *v1.Listener, rt gatewayRoute) bool { +func (c *gatewayRouteResolver) routeIsAllowed(gw *v1beta1.Gateway, lis *v1.Listener, rt gatewayRoute) bool { meta := rt.Metadata() allow := lis.AllowedRoutes diff --git a/source/gateway_grpcroute_test.go b/source/gateway_grpcroute_test.go index cfa1c4abc..f92070eb4 100644 --- a/source/gateway_grpcroute_test.go +++ b/source/gateway_grpcroute_test.go @@ -26,6 +26,7 @@ import ( kubefake "k8s.io/client-go/kubernetes/fake" "sigs.k8s.io/external-dns/endpoint" v1 "sigs.k8s.io/gateway-api/apis/v1" + v1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -48,7 +49,7 @@ func TestGatewayGRPCRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1.Gateway{ + gw := &v1beta1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", @@ -60,7 +61,7 @@ func TestGatewayGRPCRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1.GRPCRoute{ diff --git a/source/gateway_httproute_test.go b/source/gateway_httproute_test.go index 8f4e2b31f..418f9bd48 100644 --- a/source/gateway_httproute_test.go +++ b/source/gateway_httproute_test.go @@ -27,6 +27,7 @@ import ( kubefake "k8s.io/client-go/kubernetes/fake" "sigs.k8s.io/external-dns/endpoint" v1 "sigs.k8s.io/gateway-api/apis/v1" + v1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -135,7 +136,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title string config Config namespaces []*corev1.Namespace - gateways []*v1.Gateway + gateways []*v1beta1.Gateway routes []*v1.HTTPRoute endpoints []*endpoint.Endpoint }{ @@ -145,7 +146,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayNamespace: "gateway-namespace", }, namespaces: namespaces("gateway-namespace", "not-gateway-namespace", "route-namespace"), - gateways: []*v1.Gateway{ + gateways: []*v1beta1.Gateway{ { ObjectMeta: objectMeta("gateway-namespace", "test"), Spec: v1.GatewaySpec{ @@ -184,7 +185,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Namespace: "route-namespace", }, namespaces: namespaces("gateway-namespace", "route-namespace", "not-route-namespace"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("gateway-namespace", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -220,7 +221,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayLabelFilter: "foo=bar", }, namespaces: namespaces("default"), - gateways: []*v1.Gateway{ + gateways: []*v1beta1.Gateway{ { ObjectMeta: metav1.ObjectMeta{ Name: "labels-match", @@ -264,7 +265,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { LabelFilter: mustGetLabelSelector("foo=bar"), }, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -305,7 +306,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { AnnotationFilter: "foo=bar", }, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -344,7 +345,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "SkipControllerAnnotation", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -370,7 +371,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "MultipleGateways", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{ + gateways: []*v1beta1.Gateway{ { ObjectMeta: objectMeta("default", "one"), Spec: v1.GatewaySpec{ @@ -404,7 +405,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "MultipleListeners", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "one"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{ @@ -440,7 +441,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "SectionNameMatch", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{ @@ -476,7 +477,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "PortNumberMatch", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{ @@ -520,7 +521,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "WildcardInGateway", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -547,7 +548,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "WildcardInRoute", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -574,7 +575,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "WildcardInRouteAndGateway", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -601,7 +602,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "NoRouteHostname", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -640,7 +641,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "NoHostnames", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -660,7 +661,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "HostnameAnnotation", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -707,7 +708,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { IgnoreHostnameAnnotation: true, }, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -737,7 +738,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { FQDNTemplate: "{{.Name}}.zero.internal, {{.Name}}.one.internal. , {{.Name}}.two.internal ", }, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -774,7 +775,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { CombineFQDNAndAnnotation: true, }, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -797,7 +798,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "TTL", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -837,7 +838,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "ProviderAnnotations", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, @@ -868,7 +869,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "DifferentHostnameDifferentGateway", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1.Gateway{ + gateways: []*v1beta1.Gateway{ { ObjectMeta: objectMeta("default", "one"), Spec: v1.GatewaySpec{ @@ -909,7 +910,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "AllowedRoutesSameNamespace", config: Config{}, namespaces: namespaces("same-namespace", "other-namespace"), - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("same-namespace", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -965,7 +966,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, }, }, - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -1006,7 +1007,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "MissingNamespace", config: Config{}, namespaces: nil, - gateways: []*v1.Gateway{{ + gateways: []*v1beta1.Gateway{{ ObjectMeta: objectMeta("default", "test"), Spec: v1.GatewaySpec{ Listeners: []v1.Listener{{ @@ -1039,7 +1040,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayNamespace: "gateway-namespace", }, namespaces: namespaces("gateway-namespace", "route-namespace"), - gateways: []*v1.Gateway{ + gateways: []*v1beta1.Gateway{ { ObjectMeta: metav1.ObjectMeta{ Name: "overriden-gateway", @@ -1076,7 +1077,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayNamespace: "gateway-namespace", }, namespaces: namespaces("gateway-namespace", "route-namespace"), - gateways: []*v1.Gateway{ + gateways: []*v1beta1.Gateway{ { ObjectMeta: metav1.ObjectMeta{ Name: "overriden-gateway", @@ -1127,7 +1128,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { ctx := context.Background() gwClient := gatewayfake.NewSimpleClientset() for _, gw := range tt.gateways { - _, err := gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err := gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") } diff --git a/source/gateway_tcproute_test.go b/source/gateway_tcproute_test.go index 52e36034b..a6039ebf1 100644 --- a/source/gateway_tcproute_test.go +++ b/source/gateway_tcproute_test.go @@ -27,6 +27,7 @@ import ( "sigs.k8s.io/external-dns/endpoint" v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" + v1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -49,7 +50,7 @@ func TestGatewayTCPRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1.Gateway{ + gw := &v1beta1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", @@ -61,7 +62,7 @@ func TestGatewayTCPRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1alpha2.TCPRoute{ diff --git a/source/gateway_tlsroute_test.go b/source/gateway_tlsroute_test.go index 914c9c6a3..e6d4660e5 100644 --- a/source/gateway_tlsroute_test.go +++ b/source/gateway_tlsroute_test.go @@ -27,6 +27,7 @@ import ( "sigs.k8s.io/external-dns/endpoint" v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" + v1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -49,7 +50,7 @@ func TestGatewayTLSRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1.Gateway{ + gw := &v1beta1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", @@ -61,7 +62,7 @@ func TestGatewayTLSRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1alpha2.TLSRoute{ diff --git a/source/gateway_udproute_test.go b/source/gateway_udproute_test.go index 410832da3..570e3d10c 100644 --- a/source/gateway_udproute_test.go +++ b/source/gateway_udproute_test.go @@ -27,6 +27,7 @@ import ( "sigs.k8s.io/external-dns/endpoint" v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" + v1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -49,7 +50,7 @@ func TestGatewayUDPRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1.Gateway{ + gw := &v1beta1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", @@ -61,7 +62,7 @@ func TestGatewayUDPRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1alpha2.UDPRoute{