@@ -27,6 +27,7 @@ import (
2727 ctrlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
2828
2929 imagev1alpha1_reflect "github.com/fluxcd/image-reflector-controller/api/v1alpha1"
30+ "github.com/fluxcd/pkg/runtime/events"
3031 "github.com/fluxcd/pkg/runtime/logger"
3132 "github.com/fluxcd/pkg/runtime/metrics"
3233 "github.com/fluxcd/pkg/runtime/probes"
@@ -37,6 +38,8 @@ import (
3738 // +kubebuilder:scaffold:imports
3839)
3940
41+ const controllerName = "image-automation-controller"
42+
4043var (
4144 scheme = runtime .NewScheme ()
4245 setupLog = ctrl .Log .WithName ("setup" )
@@ -54,6 +57,7 @@ func init() {
5457func main () {
5558 var (
5659 metricsAddr string
60+ eventsAddr string
5761 healthAddr string
5862 enableLeaderElection bool
5963 logLevel string
@@ -62,6 +66,7 @@ func main() {
6266 )
6367
6468 flag .StringVar (& metricsAddr , "metrics-addr" , ":8080" , "The address the metric endpoint binds to." )
69+ flag .StringVar (& eventsAddr , "events-addr" , "" , "The address of the events receiver." )
6570 flag .StringVar (& healthAddr , "health-addr" , ":9440" , "The address the health endpoint binds to." )
6671 flag .BoolVar (& enableLeaderElection , "enable-leader-election" , false ,
6772 "Enable leader election for controller manager. " +
@@ -74,6 +79,16 @@ func main() {
7479
7580 ctrl .SetLogger (logger .NewLogger (logLevel , logJSON ))
7681
82+ var eventRecorder * events.Recorder
83+ if eventsAddr != "" {
84+ if er , err := events .NewRecorder (eventsAddr , controllerName ); err != nil {
85+ setupLog .Error (err , "unable to create event recorder" )
86+ os .Exit (1 )
87+ } else {
88+ eventRecorder = er
89+ }
90+ }
91+
7792 metricsRecorder := metrics .NewRecorder ()
7893 ctrlmetrics .Registry .MustRegister (metricsRecorder .Collectors ()... )
7994
@@ -99,11 +114,12 @@ func main() {
99114 probes .SetupChecks (mgr , setupLog )
100115
101116 if err = (& controllers.ImageUpdateAutomationReconciler {
102- Client : mgr .GetClient (),
103- Log : ctrl .Log .WithName ("controllers" ).WithName ("ImageUpdateAutomation" ),
104- Scheme : mgr .GetScheme (),
105- EventRecorder : mgr .GetEventRecorderFor ("image-automation-controller" ),
106- MetricsRecorder : metricsRecorder ,
117+ Client : mgr .GetClient (),
118+ Log : ctrl .Log .WithName ("controllers" ).WithName ("ImageUpdateAutomation" ),
119+ Scheme : mgr .GetScheme (),
120+ EventRecorder : mgr .GetEventRecorderFor (controllerName ),
121+ ExternalEventRecorder : eventRecorder ,
122+ MetricsRecorder : metricsRecorder ,
107123 }).SetupWithManager (mgr ); err != nil {
108124 setupLog .Error (err , "unable to create controller" , "controller" , "ImageUpdateAutomation" )
109125 os .Exit (1 )
0 commit comments