From 04076a4833bc458bc0510b4443ddfb6798ce99eb Mon Sep 17 00:00:00 2001 From: lou-lan Date: Fri, 24 Nov 2023 17:07:18 +0800 Subject: [PATCH] Add event for egress tunnel status changed (#1010) --- pkg/controller/egress_tunnel.go | 10 ++++++++++ pkg/k8s/apis/v1beta1/egresstunnel_types.go | 2 ++ 2 files changed, 12 insertions(+) diff --git a/pkg/controller/egress_tunnel.go b/pkg/controller/egress_tunnel.go index 18b0e78b9..4bc39758d 100644 --- a/pkg/controller/egress_tunnel.go +++ b/pkg/controller/egress_tunnel.go @@ -19,6 +19,7 @@ import ( k8serr "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" + "k8s.io/client-go/tools/record" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" "sigs.k8s.io/controller-runtime/pkg/handler" @@ -81,6 +82,7 @@ type egReconciler struct { allocatorV4 *ipallocator.Range allocatorV6 *ipallocator.Range initDone chan struct{} + recorder record.EventRecorder } func (r *egReconciler) Reconcile(ctx context.Context, req reconcile.Request) (reconcile.Result, error) { @@ -629,6 +631,12 @@ func (r *egReconciler) tunnelListCheck(ctx context.Context) error { r.log.Error(err, "update tunnel status to TunnelHeartbeatTimeout") continue } + + r.recorder.Event( + tunnel, corev1.EventTypeNormal, + egressv1.ReasonStatusChanged, + "EgressTunnel status changes to HeartbeatTimeout.", + ) } } return nil @@ -710,5 +718,7 @@ func newEgressTunnelController(mgr manager.Manager, log logr.Logger, cfg *config return fmt.Errorf("failed to watch Node: %w", err) } + r.recorder = mgr.GetEventRecorderFor("egress-tunnel") + return nil } diff --git a/pkg/k8s/apis/v1beta1/egresstunnel_types.go b/pkg/k8s/apis/v1beta1/egresstunnel_types.go index 97c199e16..5e75dbb0e 100644 --- a/pkg/k8s/apis/v1beta1/egresstunnel_types.go +++ b/pkg/k8s/apis/v1beta1/egresstunnel_types.go @@ -83,6 +83,8 @@ const ( EgressTunnelReady EgressTunnelPhase = "Ready" ) +var ReasonStatusChanged = "StatusChanged" + func init() { SchemeBuilder.Register(&EgressTunnel{}, &EgressTunnelList{}) }