9
9
"k8s.io/apimachinery/pkg/api/errors"
10
10
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11
11
"k8s.io/apimachinery/pkg/runtime"
12
+ "k8s.io/apimachinery/pkg/runtime/schema"
12
13
"k8s.io/apimachinery/pkg/types"
13
14
ctrl "sigs.k8s.io/controller-runtime"
14
15
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -21,6 +22,7 @@ import (
21
22
gatewayv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2"
22
23
23
24
"github.com/kong/kubernetes-ingress-controller/v2/internal/dataplane"
25
+ "github.com/kong/kubernetes-ingress-controller/v2/internal/util/kubernetes/object/status"
24
26
)
25
27
26
28
// -----------------------------------------------------------------------------
@@ -34,6 +36,7 @@ type HTTPRouteReconciler struct {
34
36
Log logr.Logger
35
37
Scheme * runtime.Scheme
36
38
DataplaneClient * dataplane.KongClient
39
+ StatusQueue * status.Queue
37
40
}
38
41
39
42
// SetupWithManager sets up the controller with the Manager.
@@ -76,6 +79,19 @@ func (r *HTTPRouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
76
79
return err
77
80
}
78
81
82
+ if r .StatusQueue != nil {
83
+ if err := c .Watch (
84
+ & source.Channel {Source : r .StatusQueue .Subscribe (schema.GroupVersionKind {
85
+ Group : gatewayv1alpha2 .GroupVersion .Group ,
86
+ Version : gatewayv1alpha2 .GroupVersion .Version ,
87
+ Kind : "TLSRoute" ,
88
+ })},
89
+ & handler.EnqueueRequestForObject {},
90
+ ); err != nil {
91
+ return err
92
+ }
93
+ }
94
+
79
95
// because of the additional burden of having to manage reference data-plane
80
96
// configurations for HTTPRoute objects in the underlying Kong Gateway, we
81
97
// simply reconcile ALL HTTPRoute objects. This allows us to drop the backend
@@ -223,8 +239,8 @@ func (r *HTTPRouteReconciler) listHTTPRoutesForGateway(obj client.Object) []reco
223
239
// HTTPRoute Controller - Reconciliation
224
240
// -----------------------------------------------------------------------------
225
241
226
- //+kubebuilder:rbac:groups=gateway.networking.k8s.io,resources=httproutes,verbs=get;list;watch
227
- //+kubebuilder:rbac:groups=gateway.networking.k8s.io,resources=httproutes/status,verbs=get;update
242
+ // +kubebuilder:rbac:groups=gateway.networking.k8s.io,resources=httproutes,verbs=get;list;watch
243
+ // +kubebuilder:rbac:groups=gateway.networking.k8s.io,resources=httproutes/status,verbs=get;update
228
244
229
245
// Reconcile is part of the main kubernetes reconciliation loop which aims to
230
246
// move the current state of the cluster closer to the desired state.
0 commit comments