Skip to content

Commit 71f5b49

Browse files
authored
feat: bump ReferenceGrant to v1beta1 (#142)
Signed-off-by: Liang Deng <[email protected]>
1 parent 1eceba6 commit 71f5b49

File tree

7 files changed

+33
-28
lines changed

7 files changed

+33
-28
lines changed

pkg/i2gw/ingress2gateway.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"sigs.k8s.io/controller-runtime/pkg/client/config"
2828
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
2929
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
30+
gatewayv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
3031
)
3132

3233
func ToGatewayAPIResources(ctx context.Context, namespace string, inputFile string, providers []string) ([]GatewayResources, error) {
@@ -150,7 +151,7 @@ func MergeGatewayResources(gatewayResources ...GatewayResources) (GatewayResourc
150151
TLSRoutes: make(map[types.NamespacedName]gatewayv1alpha2.TLSRoute),
151152
TCPRoutes: make(map[types.NamespacedName]gatewayv1alpha2.TCPRoute),
152153
UDPRoutes: make(map[types.NamespacedName]gatewayv1alpha2.UDPRoute),
153-
ReferenceGrants: make(map[types.NamespacedName]gatewayv1alpha2.ReferenceGrant),
154+
ReferenceGrants: make(map[types.NamespacedName]gatewayv1beta1.ReferenceGrant),
154155
}
155156
var errs field.ErrorList
156157
mergedGatewayResources.Gateways, errs = mergeGateways(gatewayResources)

pkg/i2gw/provider.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"sigs.k8s.io/controller-runtime/pkg/client"
2626
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
2727
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
28+
gatewayv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
2829
)
2930

3031
// ProviderConstructorByName is a map of ProviderConstructor functions by a
@@ -100,7 +101,7 @@ type GatewayResources struct {
100101
TCPRoutes map[types.NamespacedName]gatewayv1alpha2.TCPRoute
101102
UDPRoutes map[types.NamespacedName]gatewayv1alpha2.UDPRoute
102103

103-
ReferenceGrants map[types.NamespacedName]gatewayv1alpha2.ReferenceGrant
104+
ReferenceGrants map[types.NamespacedName]gatewayv1beta1.ReferenceGrant
104105
}
105106

106107
// FeatureParser is a function that reads the InputResources, and applies

pkg/i2gw/providers/common/converter.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ var (
9393

9494
ReferenceGrantGVK = schema.GroupVersionKind{
9595
Group: "gateway.networking.k8s.io",
96-
Version: "v1alpha2",
96+
Version: "v1beta1",
9797
Kind: "ReferenceGrant",
9898
}
9999
)

pkg/i2gw/providers/istio/converter.go

+12-11
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"k8s.io/klog/v2"
3232
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
3333
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
34+
gatewayv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
3435
)
3536

3637
type converter struct {
@@ -52,7 +53,7 @@ func (c *converter) convert(storage *storage) (i2gw.GatewayResources, field.Erro
5253
HTTPRoutes: make(map[types.NamespacedName]gatewayv1.HTTPRoute),
5354
TLSRoutes: make(map[types.NamespacedName]gatewayv1alpha2.TLSRoute),
5455
TCPRoutes: make(map[types.NamespacedName]gatewayv1alpha2.TCPRoute),
55-
ReferenceGrants: make(map[types.NamespacedName]gatewayv1alpha2.ReferenceGrant),
56+
ReferenceGrants: make(map[types.NamespacedName]gatewayv1beta1.ReferenceGrant),
5657
}
5758

5859
rootPath := field.NewPath(ProviderName)
@@ -919,10 +920,10 @@ func (c *converter) isVirtualServiceAllowedForGateway(gateway types.NamespacedNa
919920

920921
// Generate parentRefs and optionally ReferenceGrants for the given VirtualService and all required Gateways
921922
// We consider fields: vs.Spec.Gateways; gateway.Server[i].Hosts
922-
func (c *converter) generateReferences(vs *istioclientv1beta1.VirtualService, fieldPath *field.Path) ([]gatewayv1.ParentReference, []*gatewayv1alpha2.ReferenceGrant) {
923+
func (c *converter) generateReferences(vs *istioclientv1beta1.VirtualService, fieldPath *field.Path) ([]gatewayv1.ParentReference, []*gatewayv1beta1.ReferenceGrant) {
923924
var (
924925
parentRefs []gatewayv1.ParentReference
925-
referenceGrants []*gatewayv1alpha2.ReferenceGrant
926+
referenceGrants []*gatewayv1beta1.ReferenceGrant
926927
)
927928

928929
for _, allowedGateway := range vs.Spec.GetGateways() {
@@ -974,27 +975,27 @@ type generateReferenceGrantsParams struct {
974975
forHTTPRoute, forTLSRoute, forTCPRoute bool
975976
}
976977

977-
func (c *converter) generateReferenceGrant(params generateReferenceGrantsParams) *gatewayv1alpha2.ReferenceGrant {
978-
var fromGrants []gatewayv1alpha2.ReferenceGrantFrom
978+
func (c *converter) generateReferenceGrant(params generateReferenceGrantsParams) *gatewayv1beta1.ReferenceGrant {
979+
var fromGrants []gatewayv1beta1.ReferenceGrantFrom
979980

980981
if params.forHTTPRoute {
981-
fromGrants = append(fromGrants, gatewayv1alpha2.ReferenceGrantFrom{
982+
fromGrants = append(fromGrants, gatewayv1beta1.ReferenceGrantFrom{
982983
Group: gatewayv1.Group(common.HTTPRouteGVK.Group),
983984
Kind: gatewayv1.Kind(common.HTTPRouteGVK.Kind),
984985
Namespace: gatewayv1.Namespace(params.fromNamespace),
985986
})
986987
}
987988

988989
if params.forTLSRoute {
989-
fromGrants = append(fromGrants, gatewayv1alpha2.ReferenceGrantFrom{
990+
fromGrants = append(fromGrants, gatewayv1beta1.ReferenceGrantFrom{
990991
Group: gatewayv1.Group(common.TLSRouteGVK.Group),
991992
Kind: gatewayv1.Kind(common.TLSRouteGVK.Kind),
992993
Namespace: gatewayv1.Namespace(params.fromNamespace),
993994
})
994995
}
995996

996997
if params.forTCPRoute {
997-
fromGrants = append(fromGrants, gatewayv1alpha2.ReferenceGrantFrom{
998+
fromGrants = append(fromGrants, gatewayv1beta1.ReferenceGrantFrom{
998999
Group: gatewayv1.Group(common.TCPRouteGVK.Group),
9991000
Kind: gatewayv1.Kind(common.TCPRouteGVK.Kind),
10001001
Namespace: gatewayv1.Namespace(params.fromNamespace),
@@ -1003,7 +1004,7 @@ func (c *converter) generateReferenceGrant(params generateReferenceGrantsParams)
10031004

10041005
gwName := gatewayv1.ObjectName(params.gateway.Name)
10051006

1006-
return &gatewayv1alpha2.ReferenceGrant{
1007+
return &gatewayv1beta1.ReferenceGrant{
10071008
TypeMeta: metav1.TypeMeta{
10081009
APIVersion: common.ReferenceGrantGVK.GroupVersion().String(),
10091010
Kind: common.ReferenceGrantGVK.Kind,
@@ -1012,9 +1013,9 @@ func (c *converter) generateReferenceGrant(params generateReferenceGrantsParams)
10121013
Namespace: params.gateway.Namespace,
10131014
Name: fmt.Sprintf("generated-reference-grant-from-%v-to-%v", params.fromNamespace, params.gateway.Namespace),
10141015
},
1015-
Spec: gatewayv1alpha2.ReferenceGrantSpec{
1016+
Spec: gatewayv1beta1.ReferenceGrantSpec{
10161017
From: fromGrants,
1017-
To: []gatewayv1alpha2.ReferenceGrantTo{
1018+
To: []gatewayv1beta1.ReferenceGrantTo{
10181019
{
10191020
Group: gatewayv1.Group(common.GatewayGVK.Group),
10201021
Kind: gatewayv1.Kind(common.GatewayGVK.Kind),

pkg/i2gw/providers/istio/converter_test.go

+12-11
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"k8s.io/apimachinery/pkg/util/validation/field"
3434
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
3535
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
36+
gatewayv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
3637
)
3738

3839
func Test_converter_convertGateway(t *testing.T) {
@@ -1565,7 +1566,7 @@ func Test_converter_generateReferenceGrants(t *testing.T) {
15651566
tests := []struct {
15661567
name string
15671568
args args
1568-
want *gatewayv1alpha2.ReferenceGrant
1569+
want *gatewayv1beta1.ReferenceGrant
15691570
}{
15701571
{
15711572
name: "generate reference grant for HTTPRoute,TLSRoute,TCPRoute",
@@ -1581,7 +1582,7 @@ func Test_converter_generateReferenceGrants(t *testing.T) {
15811582
forTCPRoute: true,
15821583
},
15831584
},
1584-
want: &gatewayv1alpha2.ReferenceGrant{
1585+
want: &gatewayv1beta1.ReferenceGrant{
15851586
TypeMeta: metav1.TypeMeta{
15861587
APIVersion: common.ReferenceGrantGVK.GroupVersion().String(),
15871588
Kind: common.ReferenceGrantGVK.Kind,
@@ -1590,8 +1591,8 @@ func Test_converter_generateReferenceGrants(t *testing.T) {
15901591
Namespace: "test",
15911592
Name: "generated-reference-grant-from-ns1-to-test",
15921593
},
1593-
Spec: gatewayv1alpha2.ReferenceGrantSpec{
1594-
From: []gatewayv1alpha2.ReferenceGrantFrom{
1594+
Spec: gatewayv1beta1.ReferenceGrantSpec{
1595+
From: []gatewayv1beta1.ReferenceGrantFrom{
15951596
{
15961597
Group: gatewayv1.Group(common.HTTPRouteGVK.Group),
15971598
Kind: gatewayv1.Kind(common.HTTPRouteGVK.Kind),
@@ -1608,7 +1609,7 @@ func Test_converter_generateReferenceGrants(t *testing.T) {
16081609
Namespace: gatewayv1.Namespace("ns1"),
16091610
},
16101611
},
1611-
To: []gatewayv1alpha2.ReferenceGrantTo{
1612+
To: []gatewayv1beta1.ReferenceGrantTo{
16121613
{
16131614
Group: gatewayv1.Group(common.GatewayGVK.Group),
16141615
Kind: gatewayv1.Kind(common.GatewayGVK.Kind),
@@ -1825,7 +1826,7 @@ func Test_converter_generateReferences(t *testing.T) {
18251826
fields fields
18261827
args args
18271828
wantParentReferences []gatewayv1.ParentReference
1828-
wantReferenceGrants []*gatewayv1alpha2.ReferenceGrant
1829+
wantReferenceGrants []*gatewayv1beta1.ReferenceGrant
18291830
}{
18301831
{
18311832
name: "nothing is generated if Gateway is not listed in the VirtualService",
@@ -1882,12 +1883,12 @@ func Test_converter_generateReferences(t *testing.T) {
18821883
Name: "gateway",
18831884
},
18841885
},
1885-
wantReferenceGrants: []*gatewayv1alpha2.ReferenceGrant{
1886+
wantReferenceGrants: []*gatewayv1beta1.ReferenceGrant{
18861887
{
1887-
TypeMeta: metav1.TypeMeta{Kind: "ReferenceGrant", APIVersion: "gateway.networking.k8s.io/v1alpha2"},
1888+
TypeMeta: metav1.TypeMeta{Kind: "ReferenceGrant", APIVersion: "gateway.networking.k8s.io/v1beta1"},
18881889
ObjectMeta: metav1.ObjectMeta{Name: "generated-reference-grant-from-test-to-prod", Namespace: "prod"},
1889-
Spec: gatewayv1alpha2.ReferenceGrantSpec{
1890-
To: []gatewayv1alpha2.ReferenceGrantTo{
1890+
Spec: gatewayv1beta1.ReferenceGrantSpec{
1891+
To: []gatewayv1beta1.ReferenceGrantTo{
18911892
{
18921893
Group: "gateway.networking.k8s.io", Kind: "Gateway", Name: common.PtrTo[gatewayv1.ObjectName]("gateway"),
18931894
},
@@ -1926,7 +1927,7 @@ func Test_converter_generateReferences(t *testing.T) {
19261927
Name: "gateway",
19271928
},
19281929
},
1929-
wantReferenceGrants: []*gatewayv1alpha2.ReferenceGrant{},
1930+
wantReferenceGrants: []*gatewayv1beta1.ReferenceGrant{},
19301931
},
19311932
}
19321933
for _, tt := range tests {

pkg/i2gw/providers/istio/e2e_file_converter_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import (
3333
"k8s.io/apimachinery/pkg/types"
3434
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
3535
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
36+
gatewayv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1"
3637
)
3738

3839
const fixturesDir = "./fixtures"
@@ -108,7 +109,7 @@ func readGatewayResourcesFromFile(t *testing.T, filename string) (*i2gw.GatewayR
108109
HTTPRoutes: make(map[types.NamespacedName]gatewayv1.HTTPRoute),
109110
TLSRoutes: make(map[types.NamespacedName]gatewayv1alpha2.TLSRoute),
110111
TCPRoutes: make(map[types.NamespacedName]gatewayv1alpha2.TCPRoute),
111-
ReferenceGrants: make(map[types.NamespacedName]gatewayv1alpha2.ReferenceGrant),
112+
ReferenceGrants: make(map[types.NamespacedName]gatewayv1beta1.ReferenceGrant),
112113
}
113114

114115
for _, obj := range unstructuredObjects {
@@ -153,7 +154,7 @@ func readGatewayResourcesFromFile(t *testing.T, filename string) (*i2gw.GatewayR
153154
Name: tcpRoute.Name,
154155
}] = tcpRoute
155156
case "ReferenceGrant":
156-
var referenceGrant gatewayv1alpha2.ReferenceGrant
157+
var referenceGrant gatewayv1beta1.ReferenceGrant
157158
if err := runtime.DefaultUnstructuredConverter.FromUnstructured(obj.UnstructuredContent(), &referenceGrant); err != nil {
158159
return nil, fmt.Errorf("failed to parse k8s gateway ReferenceGrant object: %w", err)
159160
}

pkg/i2gw/providers/istio/fixtures/output/5-referencegrants.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ spec:
4646
name: test
4747
weight: 1
4848
---
49-
apiVersion: gateway.networking.k8s.io/v1alpha2
49+
apiVersion: gateway.networking.k8s.io/v1beta1
5050
kind: ReferenceGrant
5151
metadata:
5252
name: generated-reference-grant-from-custom-ns-to-prod

0 commit comments

Comments
 (0)