Skip to content

Commit ceb2253

Browse files
Upgrade to v1beta1 APIs (#127)
* Add v0.6.1 gateway APIs CRD, which support beta API * Update model_build_xxx to use betav1 * Update controllers/* to use v1beta1 * Add gatewayclass to use v1beta1 * Update to use v1beta APIs * Update to use v1beta API * Fix unit tests * Update to lock down gateway api version and controller runtime version * Update to use v1beta1 APIs * Update to use v1beta gateway APIs * Update to v1beta1 * Update to use v1beta1 gateway API * Fixed typo
1 parent 5c9516a commit ceb2253

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+5414
-504
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ make toolchain
1515
make presubmit
1616

1717
# Install CRDs (which only need once)
18-
kubectl apply -f config/crds/bases/k8s-gateway-v1alpha2.yaml
18+
kubectl apply -f config/crds/bases/k8s-gateway-v0.6.1.yaml
1919
kubectl apply -f config/crds/bases/multicluster.x-k8s.io_serviceexports.yaml
2020
kubectl apply -f config/crds/bases/multicluster.x-k8s.io_serviceimports.yaml
2121

config/crds/bases/k8s-gateway-v0.6.1.yaml

Lines changed: 4657 additions & 0 deletions
Large diffs are not rendered by default.

config/crds/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33
resources:
4-
- bases/k8s-gateway-v1alpha2.yaml
4+
- bases/k8s-gateway-v0.6.1.yaml
55
- bases/multicluster.x-k8s.io_serviceexports.yaml
66
- bases/multicluster.x-k8s.io_serviceimports.yaml

config/manager/kustomization.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ configMapGenerator:
1313
images:
1414
- name: controller
1515
newName: public.ecr.aws/m7r9p7b3/aws-gateway-controller
16-
newTag: v0.0.3

controllers/eventhandlers/gateway.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
"sigs.k8s.io/controller-runtime/pkg/handler"
1616
"sigs.k8s.io/controller-runtime/pkg/reconcile"
1717

18-
"sigs.k8s.io/gateway-api/apis/v1alpha2"
18+
gateway_api "sigs.k8s.io/gateway-api/apis/v1beta1"
1919

2020
"github.com/aws/aws-application-networking-k8s/pkg/config"
2121
)
@@ -34,7 +34,7 @@ var ZeroTransitionTime = metav1.NewTime(time.Time{})
3434

3535
func (h *enqueueRequestsForGatewayEvent) Create(e event.CreateEvent, queue workqueue.RateLimitingInterface) {
3636
glog.V(6).Info("Gateway Create")
37-
gwNew := e.Object.(*v1alpha2.Gateway)
37+
gwNew := e.Object.(*gateway_api.Gateway)
3838

3939
// initialize transition time
4040
gwNew.Status.Conditions[0].LastTransitionTime = ZeroTransitionTime
@@ -44,8 +44,8 @@ func (h *enqueueRequestsForGatewayEvent) Create(e event.CreateEvent, queue workq
4444
func (h *enqueueRequestsForGatewayEvent) Update(e event.UpdateEvent, queue workqueue.RateLimitingInterface) {
4545
glog.V(6).Info("Gateway Update ")
4646

47-
gwOld := e.ObjectOld.(*v1alpha2.Gateway)
48-
gwNew := e.ObjectNew.(*v1alpha2.Gateway)
47+
gwOld := e.ObjectOld.(*gateway_api.Gateway)
48+
gwNew := e.ObjectNew.(*gateway_api.Gateway)
4949

5050
if !equality.Semantic.DeepEqual(gwOld.Spec, gwNew.Spec) {
5151
// initialize transition time
@@ -62,8 +62,8 @@ func (h *enqueueRequestsForGatewayEvent) Generic(e event.GenericEvent, queue wor
6262

6363
}
6464

65-
func (h *enqueueRequestsForGatewayEvent) enqueueImpactedHTTPRoute(queue workqueue.RateLimitingInterface, gw *v1alpha2.Gateway) {
66-
httpRouteList := &v1alpha2.HTTPRouteList{}
65+
func (h *enqueueRequestsForGatewayEvent) enqueueImpactedHTTPRoute(queue workqueue.RateLimitingInterface, gw *gateway_api.Gateway) {
66+
httpRouteList := &gateway_api.HTTPRouteList{}
6767

6868
h.client.List(context.TODO(), httpRouteList)
6969

@@ -81,15 +81,15 @@ func (h *enqueueRequestsForGatewayEvent) enqueueImpactedHTTPRoute(queue workqueu
8181
Name: string(httpRoute.Spec.ParentRefs[0].Name),
8282
}
8383

84-
gw := &v1alpha2.Gateway{}
84+
gw := &gateway_api.Gateway{}
8585

8686
if err := h.client.Get(context.TODO(), gwName, gw); err != nil {
8787
glog.V(6).Infof("Ignore HTTPRoute with unknow parentRef %s\n", httpRoute.Name)
8888
continue
8989
}
9090

9191
// find the parent gateway class name
92-
gwClass := &v1alpha2.GatewayClass{}
92+
gwClass := &gateway_api.GatewayClass{}
9393
gwClassName := types.NamespacedName{
9494
Namespace: "default",
9595
Name: string(gw.Spec.GatewayClassName),

controllers/eventhandlers/gatewayclass.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"sigs.k8s.io/controller-runtime/pkg/event"
1111
"sigs.k8s.io/controller-runtime/pkg/handler"
1212
"sigs.k8s.io/controller-runtime/pkg/reconcile"
13-
"sigs.k8s.io/gateway-api/apis/v1alpha2"
13+
gateway_api "sigs.k8s.io/gateway-api/apis/v1beta1"
1414

1515
"github.com/aws/aws-application-networking-k8s/pkg/config"
1616
)
@@ -26,7 +26,7 @@ type enqueueRequestsForGatewayClassEvent struct {
2626
}
2727

2828
func (h *enqueueRequestsForGatewayClassEvent) Create(e event.CreateEvent, queue workqueue.RateLimitingInterface) {
29-
gwClassNew := e.Object.(*v1alpha2.GatewayClass)
29+
gwClassNew := e.Object.(*gateway_api.GatewayClass)
3030
h.enqueueImpactedGateway(queue, gwClassNew)
3131
}
3232

@@ -41,9 +41,9 @@ func (h *enqueueRequestsForGatewayClassEvent) Delete(e event.DeleteEvent, queue
4141
func (h *enqueueRequestsForGatewayClassEvent) Generic(e event.GenericEvent, queue workqueue.RateLimitingInterface) {
4242
}
4343

44-
func (h *enqueueRequestsForGatewayClassEvent) enqueueImpactedGateway(queue workqueue.RateLimitingInterface, gwclass *v1alpha2.GatewayClass) {
44+
func (h *enqueueRequestsForGatewayClassEvent) enqueueImpactedGateway(queue workqueue.RateLimitingInterface, gwclass *gateway_api.GatewayClass) {
4545

46-
gwList := &v1alpha2.GatewayList{}
46+
gwList := &gateway_api.GatewayList{}
4747

4848
h.client.List(context.TODO(), gwList)
4949

controllers/eventhandlers/httproute.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"sigs.k8s.io/controller-runtime/pkg/client"
1212
"sigs.k8s.io/controller-runtime/pkg/handler"
1313
"sigs.k8s.io/controller-runtime/pkg/reconcile"
14-
"sigs.k8s.io/gateway-api/apis/v1alpha2"
14+
gateway_api "sigs.k8s.io/gateway-api/apis/v1beta1"
1515

1616
"k8s.io/client-go/util/workqueue"
1717
"sigs.k8s.io/controller-runtime/pkg/event"
@@ -30,15 +30,15 @@ func NewEnqueueRequestHTTPRouteEvent(client client.Client) handler.EventHandler
3030
func (h *enqueueRequestsForHTTPRouteEvent) Create(e event.CreateEvent, queue workqueue.RateLimitingInterface) {
3131
glog.V(6).Info("HTTPRoute create")
3232

33-
newHTTPRoute := e.Object.(*v1alpha2.HTTPRoute)
33+
newHTTPRoute := e.Object.(*gateway_api.HTTPRoute)
3434
h.enqueueImpactedService(queue, newHTTPRoute)
3535
}
3636

3737
func (h *enqueueRequestsForHTTPRouteEvent) Update(e event.UpdateEvent, queue workqueue.RateLimitingInterface) {
3838
glog.V(6).Info("HTTPRoute update ")
3939

40-
oldHTTPRoute := e.ObjectOld.(*v1alpha2.HTTPRoute)
41-
newHTTPRoute := e.ObjectNew.(*v1alpha2.HTTPRoute)
40+
oldHTTPRoute := e.ObjectOld.(*gateway_api.HTTPRoute)
41+
newHTTPRoute := e.ObjectNew.(*gateway_api.HTTPRoute)
4242

4343
if !equality.Semantic.DeepEqual(oldHTTPRoute.Spec, newHTTPRoute.Spec) {
4444
glog.V(6).Infof("--oldHTTPRoute %v \n", oldHTTPRoute.Spec)
@@ -61,7 +61,7 @@ func (h *enqueueRequestsForHTTPRouteEvent) Generic(e event.GenericEvent, queue w
6161

6262
}
6363

64-
func (h *enqueueRequestsForHTTPRouteEvent) enqueueImpactedService(queue workqueue.RateLimitingInterface, httpRoute *v1alpha2.HTTPRoute) {
64+
func (h *enqueueRequestsForHTTPRouteEvent) enqueueImpactedService(queue workqueue.RateLimitingInterface, httpRoute *gateway_api.HTTPRoute) {
6565
glog.V(6).Infof("enqueueImpactedService [%v]\n", httpRoute)
6666

6767
for _, httpRule := range httpRoute.Spec.Rules {

controllers/eventhandlers/service.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
"k8s.io/client-go/util/workqueue"
1515
"sigs.k8s.io/controller-runtime/pkg/event"
16-
"sigs.k8s.io/gateway-api/apis/v1alpha2"
16+
gateway_api "sigs.k8s.io/gateway-api/apis/v1beta1"
1717
mcs_api "sigs.k8s.io/mcs-api/pkg/apis/v1alpha1"
1818
)
1919

@@ -93,7 +93,7 @@ func (h *enqueueHTTPRequetsForServiceEvent) Generic(e event.GenericEvent, queue
9393
func (h *enqueueHTTPRequetsForServiceEvent) enqueueImpactedHTTPRoute(queue workqueue.RateLimitingInterface, ep *corev1.Service) {
9494
glog.V(6).Infof("enqueueImpactedHTTPRoute: %v\n", ep)
9595

96-
httpRouteList := &v1alpha2.HTTPRouteList{}
96+
httpRouteList := &gateway_api.HTTPRouteList{}
9797

9898
h.client.List(context.TODO(), httpRouteList)
9999

@@ -114,7 +114,7 @@ func (h *enqueueHTTPRequetsForServiceEvent) enqueueImpactedHTTPRoute(queue workq
114114

115115
}
116116

117-
func isServiceUsedByHTTPRoute(httpRoute v1alpha2.HTTPRoute, ep *corev1.Service) bool {
117+
func isServiceUsedByHTTPRoute(httpRoute gateway_api.HTTPRoute, ep *corev1.Service) bool {
118118
for _, httpRule := range httpRoute.Spec.Rules {
119119
for _, httpBackendRef := range httpRule.BackendRefs {
120120
//glog.V(6).Infof("isServiceUsedByHTTPRoute httpBackendRef %v, %v\n", httpBackendRef.BackendObjectReference, ep.Name)

controllers/eventhandlers/serviceimport.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
"k8s.io/client-go/util/workqueue"
1515
"sigs.k8s.io/controller-runtime/pkg/event"
16-
"sigs.k8s.io/gateway-api/apis/v1alpha2"
16+
gateway_api "sigs.k8s.io/gateway-api/apis/v1beta1"
1717
mcs_api "sigs.k8s.io/mcs-api/pkg/apis/v1alpha1"
1818
)
1919

@@ -55,7 +55,7 @@ func (h *enqueueRequestsForServiceImportEvent) Generic(e event.GenericEvent, que
5555
func (h *enqueueRequestsForServiceImportEvent) enqueueImpactedService(queue workqueue.RateLimitingInterface, serviceImport *mcs_api.ServiceImport) {
5656
glog.V(6).Infof("enqueueImpactedHTTPRoute, serviceImport[%v]\n", serviceImport)
5757

58-
httpRouteList := &v1alpha2.HTTPRouteList{}
58+
httpRouteList := &gateway_api.HTTPRouteList{}
5959

6060
h.client.List(context.TODO(), httpRouteList)
6161

@@ -78,7 +78,7 @@ func (h *enqueueRequestsForServiceImportEvent) enqueueImpactedService(queue work
7878

7979
}
8080

81-
func isServiceImportUsedByHTTPRoute(httpRoute v1alpha2.HTTPRoute, serviceImport *mcs_api.ServiceImport) bool {
81+
func isServiceImportUsedByHTTPRoute(httpRoute gateway_api.HTTPRoute, serviceImport *mcs_api.ServiceImport) bool {
8282
for _, httpRule := range httpRoute.Spec.Rules {
8383
for _, httpBackendRef := range httpRule.BackendRefs {
8484
if string(*httpBackendRef.BackendObjectReference.Kind) != "serviceimport" {

controllers/gateway_controller.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import (
3434
"sigs.k8s.io/controller-runtime/pkg/client"
3535
"sigs.k8s.io/controller-runtime/pkg/log"
3636
"sigs.k8s.io/controller-runtime/pkg/source"
37-
v1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
37+
gateway_api "sigs.k8s.io/gateway-api/apis/v1beta1"
3838

3939
"github.com/aws/aws-application-networking-k8s/controllers/eventhandlers"
4040
"github.com/aws/aws-application-networking-k8s/pkg/aws"
@@ -112,13 +112,13 @@ func (r *GatewayReconciler) reconcile(ctx context.Context, req ctrl.Request) err
112112
gwLog := log.FromContext(ctx)
113113

114114
gwLog.Info("GatewayReconciler")
115-
gw := &v1alpha2.Gateway{}
115+
gw := &gateway_api.Gateway{}
116116

117117
if err := r.Client.Get(ctx, req.NamespacedName, gw); err != nil {
118118
return client.IgnoreNotFound(err)
119119
}
120120

121-
gwClass := &v1alpha2.GatewayClass{}
121+
gwClass := &gateway_api.GatewayClass{}
122122
gwClassName := types.NamespacedName{
123123
Namespace: "default",
124124
Name: string(gw.Spec.GatewayClassName),
@@ -135,7 +135,7 @@ func (r *GatewayReconciler) reconcile(ctx context.Context, req ctrl.Request) err
135135

136136
glog.V(6).Info(fmt.Sprintf("Checking if gateway can be deleted %v\n", gw.Name))
137137

138-
httpRouteList := &v1alpha2.HTTPRouteList{}
138+
httpRouteList := &gateway_api.HTTPRouteList{}
139139

140140
r.Client.List(context.TODO(), httpRouteList)
141141
for _, httpRoute := range httpRouteList.Items {
@@ -148,7 +148,7 @@ func (r *GatewayReconciler) reconcile(ctx context.Context, req ctrl.Request) err
148148
Name: string(httpRoute.Spec.ParentRefs[0].Name),
149149
}
150150

151-
httpGW := &v1alpha2.Gateway{}
151+
httpGW := &gateway_api.Gateway{}
152152

153153
if err := r.Client.Get(context.TODO(), gwName, httpGW); err != nil {
154154
continue
@@ -179,7 +179,7 @@ func (r *GatewayReconciler) reconcile(ctx context.Context, req ctrl.Request) err
179179
return nil
180180
}
181181

182-
func (r *GatewayReconciler) buildAndDeployModel(ctx context.Context, gw *v1alpha2.Gateway) (core.Stack, *latticemodel.ServiceNetwork, error) {
182+
func (r *GatewayReconciler) buildAndDeployModel(ctx context.Context, gw *gateway_api.Gateway) (core.Stack, *latticemodel.ServiceNetwork, error) {
183183
gwLog := log.FromContext(ctx)
184184

185185
stack, serviceNetwork, err := r.modelBuilder.Build(ctx, gw)
@@ -204,7 +204,7 @@ func (r *GatewayReconciler) buildAndDeployModel(ctx context.Context, gw *v1alpha
204204

205205
return stack, serviceNetwork, err
206206
}
207-
func (r *GatewayReconciler) reconcileGatewayResources(ctx context.Context, gw *v1alpha2.Gateway) error {
207+
func (r *GatewayReconciler) reconcileGatewayResources(ctx context.Context, gw *gateway_api.Gateway) error {
208208
gwLog := log.FromContext(ctx)
209209

210210
gwLog.Info("reconcile gateway resource")
@@ -238,13 +238,13 @@ func (r *GatewayReconciler) reconcileGatewayResources(ctx context.Context, gw *v
238238

239239
}
240240

241-
func (r *GatewayReconciler) cleanupGatewayResources(ctx context.Context, gw *v1alpha2.Gateway) error {
241+
func (r *GatewayReconciler) cleanupGatewayResources(ctx context.Context, gw *gateway_api.Gateway) error {
242242
_, _, err := r.buildAndDeployModel(ctx, gw)
243243
return err
244244

245245
}
246246

247-
func (r *GatewayReconciler) updateGatewayStatus(ctx context.Context, serviceNetworkStatus *latticestore.ServiceNetwork, gw *v1alpha2.Gateway) error {
247+
func (r *GatewayReconciler) updateGatewayStatus(ctx context.Context, serviceNetworkStatus *latticestore.ServiceNetwork, gw *gateway_api.Gateway) error {
248248

249249
gwOld := gw.DeepCopy()
250250

@@ -272,9 +272,9 @@ func (r *GatewayReconciler) SetupWithManager(mgr ctrl.Manager) error {
272272
gwClassEventHandler := eventhandlers.NewEnqueueRequestsForGatewayClassEvent(r.Client)
273273
return ctrl.NewControllerManagedBy(mgr).
274274
// Uncomment the following line adding a pointer to an instance of the controlled resource as an argument
275-
For(&v1alpha2.Gateway{}).
275+
For(&gateway_api.Gateway{}).
276276
Watches(
277-
&source.Kind{Type: &v1alpha2.GatewayClass{}},
277+
&source.Kind{Type: &gateway_api.GatewayClass{}},
278278
gwClassEventHandler).
279279
Complete(r)
280280
}

0 commit comments

Comments
 (0)