Skip to content

Commit 20c7f4d

Browse files
committed
feat(ingress): Record an event when annotation parsing fails
1 parent 35ab468 commit 20c7f4d

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

cmd/main.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,9 @@ func main() {
149149
setupLog.Error(err, "unable to create controller", "controller", "Account")
150150
}
151151
if err = (&controller.IngressReconciler{
152-
Client: mgr.GetClient(),
153-
Scheme: mgr.GetScheme(),
152+
Client: mgr.GetClient(),
153+
Scheme: mgr.GetScheme(),
154+
Recorder: mgr.GetEventRecorderFor("uptime-robot-controller"),
154155
}).SetupWithManager(mgr); err != nil {
155156
setupLog.Error(err, "unable to create controller", "controller", "Ingress")
156157
os.Exit(1)

config/rbac/role.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ rules:
1212
- get
1313
- list
1414
- watch
15+
- apiGroups:
16+
- ""
17+
resources:
18+
- events
19+
verbs:
20+
- create
21+
- patch
1522
- apiGroups:
1623
- networking.k8s.io
1724
resources:

internal/controller/ingress_controller.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3232
"k8s.io/apimachinery/pkg/fields"
3333
"k8s.io/apimachinery/pkg/runtime"
34+
"k8s.io/client-go/tools/record"
3435
ctrl "sigs.k8s.io/controller-runtime"
3536
"sigs.k8s.io/controller-runtime/pkg/builder"
3637
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -44,12 +45,14 @@ var IngressAnnotationPrefix = "uptime-robot.clevyr.com/"
4445
// IngressReconciler reconciles a Ingress object
4546
type IngressReconciler struct {
4647
client.Client
47-
Scheme *runtime.Scheme
48+
Scheme *runtime.Scheme
49+
Recorder record.EventRecorder
4850
}
4951

5052
//+kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses,verbs=get;list;watch;create;update;patch;delete
5153
//+kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses/status,verbs=get;update;patch
5254
//+kubebuilder:rbac:groups=networking.k8s.io,resources=ingresses/finalizers,verbs=update
55+
//+kubebuilder:rbac:groups=core,resources=events,verbs=create;patch
5356

5457
// Reconcile is part of the main kubernetes reconciliation loop which aims to
5558
// move the current state of the cluster closer to the desired state.
@@ -132,6 +135,7 @@ func (r *IngressReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
132135

133136
for _, monitor := range list.Items {
134137
if err := r.updateValues(ingress, &monitor, annotations); err != nil {
138+
r.Recorder.Event(ingress, "Warning", "Sync", err.Error())
135139
return ctrl.Result{}, err
136140
}
137141

0 commit comments

Comments
 (0)